こんにちは。アーティサン株式会社の小刀稱(ことね)です。
Power Automateを用いて業務を自動化していく中で、Excelに入力した値をデータベース化したい思ったことはありませんか?
本連載ではPower Automateを用いて、Excelに入力されたデータをSharePointへ値を転記する際の対応方針についてお伝えします。
これにより、Excelに入力された値を、SharePointにてデータベース化することができます。
内容としては、既にPower Automateでフローを作成したことがある方に向けた記事です。
また、少々コーディングの知識も必要となります。
Power Automate初心者の方は、以下の記事も参考にしてください。
Power AutomateでExcelデータをSharePointにインポートするために考えること(第1回)
前回は、Excelファイル内のテーブルを用いて、ExcelのデータをSharePointへ転記する方法を説明しました。
Power AutomateでExcelからSharePointへ値を転記する際の対応方針(1):Excelのテーブル編
今回は、Officeスクリプトを用いて、ExcelのデータをSharePointへ転記する方法を説明します。
ExcelからSharePointへ値を転記する際の対応方針
ExcelからSharePointへ値を転記する際には、Power Automateと以下の方法を組み合わせた2パターンが考えられます。
Excelファイル内のテーブルを用いる
Office スクリプトを用いる
今回は、「Officeスクリプトを用いる」方法について説明します。
Office スクリプトを用いる
Office スクリプトを用いてExcelの該当する値を取得し、SharePointへ転記する方法です。
この方法は、既存のExcelを加工せずに、使用することができます。
Office スクリプトとは、Web版のExcel(Excel on the web)での処理をスクリプトで自動化する機能です。
デスクトップ版のExcelでは、VBA(Visual Basic for Application)がありますが、こちらはPower Automateと連携できません。
一方、Office スクリプトはPower Automateと連携可能ですので、こちらを用いて値を転記します。
Office スクリプトについては、以下のURLを参照してください。
Microsoft:Excel on the web の Office スクリプト
手順としては以下です。
(1)Excelのセル名を変更
Excelのセル名を変更します。
詳細な内容は前回の記事を参考にしてください。
Power AutomateでExcelからSharePointへ値を転記する際の対応方針(1)
Excelのテーブル編【Excelのセル名を変更】
(2)Excelの各値をPower Automateへ返すOffice スクリプトを作成。
Office スクリプトを作成します。
ExcelをWeb上で開き、自動化タブ→新しいスクリプトをクリックします。
すると、画面右側にコードエディターが表示されます。
スクリプト名はgetValuesにしました。 また、コードエディターに以下を記載してください。
function main(workbook: ExcelScript.Workbook)
{
// 「申請書」シートを取得
let applySheet = workbook.getWorksheet("申請書");
// 各値の取得
let name = applySheet.getRange("Name").getValue();
let mailAddress = applySheet.getRange("MailAddress").getValue();
let contents = applySheet.getRange("Contents").getValue();
// 値を返す
return {
氏名: String(name),
メールアドレス: String(mailAddress),
内容: String(contents)
}
}
「申請書」シート上のセルを指定し、各値を取得します。
また、取得した値をreturnオブジェクトにてPower Automateへ返します。
こちらでOffice スクリプトは完成です。
(3)Power AutomateからOffice スクリプトを実行し、各値を取得。その後、SharePointへ転記。
続いて、Power Automateを作成していきます。
スクリプトの実行アクションを用いて、Excelの各値を取得します。
その後、ファイルのプロパティの更新アクションにて、SharePointへ値を転記しています。
実行結果
それでは作成したフローを実行しましょう。
実行方法は前回と同様に、保存しているExcelファイルの横にある三点リーダーから自動化→作成したフロー名をクリックしてください。
SharePoint ドキュメントライブラリをご覧いただき、Excelの各値が転記されていることを確認してください。
注意点(フローを共有する場合)
Office スクリプトは作成されると、作成者のOneDrive上に保存されます。(2021年12月時点)
よって、基本的にはOffice スクリプトは作成した本人しか実行することができません。
そのため、Power Automateを他の人と共有する際、「所有者」に設定してしまうと、共有された人はOffice スクリプトを実行することができず、エラーとなります。
(Officeスクリプトファイルを共有しても、実行することはできません。)
次に、手順を詳しく紹介します。
共有するユーザーは「実行のみのユーザー」として登録
Power Automateの設定画面にて、所有者ではなく実行のみのユーザーにて共有します。
「実行のみのユーザー」の編集リンクをクリックし、ユーザーを追加します。
「使用する接続」を「この接続 (フローの作成者のアカウント) を使用する」に変更
表示された画面内で共有するユーザーやグループを選択します。
また、「使用する接続」を「この接続 (フローの作成者のアカウント) を使用する」に変更します。
これにより、共有された人がフローを実行しても、Office スクリプトの実行はフローの作成者とすることができます。
それぞれの方法におけるメリット・デメリット
本連載で紹介した2パターンについて、メリット・デメリットを以下にまとめました
| メリット | デメリット |
---|---|---|
テーブルを用いる |
・コーディングの知識が不要 |
・Excel内に別途シート、テーブルを準備する必要あり |
Office スクリプトを用いる |
・Excelの改変が不要 |
・コーディングの知識が必要 |
Office スクリプトはコーディングの知識が必要となります。
よって、コーディングをしなくても対応できる「テーブルを用いる」方法だと、比較的簡単に実装できます。
一方「Office スクリプトを用いる」方法の場合は、Excelにシートやテーブルを追加する必要がありません。
Excelに余計なデータを追加したくない場合は、Office スクリプトを用いるとよいでしょう。
さいごに
本連載ではPower Appsを用いることなく、ExcelからSharePointへ値を転記する際の対応方針についてお伝えしました。
それぞれの方法でメリット・デメリットがありますので、皆さんの要件に合わせて選択していただけますと幸いです。
【このシリーズの過去回一覧】
【こちらも合わせて読みたい】
小刀稱知哉
大分県出身(温泉大好き)、現在は東京都在住
1990年生まれ
30才でメーカーの技術営業からIT業界にジョブチェンジ!!!
趣味は読書
主にMicrosoftのローコード(SharePoint・Power Platform)に関するに関する営業活動や設計、開発などを担当しております!
持ってる資格はPL-200/PL-300/PL-400/PL-600/MS-700/AZ-104/AZ-305/SC-200