Power Automateで実現するExcel業務効率化!
~Officeスクリプトをチェック~

はじめに

こんにちは。
日々の業務でExcelの作業を繰り返す方もいらっしゃるかと思います。
今回のコラムでは、こうした業務の効率化を図れるExcel on the webのOfficeスクリプトについてご紹介いたします。

Excel on the webのOfficeスクリプトとは?

Officeスクリプトとは?

まず初めにOfficeスクリプトについて簡単にご紹介します。このOfficeスクリプトは今年の5月末に正式リリースされたばかりの新しい機能です。OfficeスクリプトとはWeb版のExcelの作業を自動化するマクロ機能のことで、デスクトップアプリのExcelにあるマクロ機能と同じような役割を果たします。Power Automateと組み合わせてほかのサービスとも連携させることが可能です。

OfficeスクリプトとVBAマクロの違いは?

次にOfficeスクリプトとVBAマクロの違いについてご紹介します。OfficeスクリプトとVBAマクロはExcelの作業を自動化する点では同じですが、異なる点も多く存在します。VBAマクロを使ったことがある方もいると思うので、OfficeスクリプトとVBAマクロを比較していきたいと思います。

このようにOfficeスクリプトとVBAには異なるところも多くあります。OfficeスクリプトがPower Automateから実行できるということは一つの大きな特徴だと思います。

Officeスクリプトを使う要件は?

Officeスクリプトを使うためには以下の3点が必要です。 参考:Excel on the webのOfficeスクリプト

1.Excel on the web

Officeスクリプトは先ほどを記載したように、Web版のExcelでのみ使用できます。そのため、デスクトップアプリのExcelでは使用できません。

2.OneDrive for Business

Microsoftが提供するストレージサービス「OneDrive」のビジネス向けのサービスです。

3.Microsoft 365 Office デスクトップ アプリにアクセスできる、次のような商用または教育機関向けの Microsoft 365 ライセンス

  • Office 365 Business
  • Office 365 Business Premium
  • Office 365 ProPlus
  • Office 365 ProPlus for Devices
  • Office 365 Enterprise E3
  • Office 365 Enterprise E5
  • Office 365 A3
  • Office 365 A5

以上の条件を満たせば、Officeスクリプトを使用することができます。Officeスクリプトを使用することができる場合、Web版のExcelの自動化タブが表示されているはずです。(管理者がOfficeスクリプトの機能を無効化していて、表示されない場合もあるようです。)

Power Automateとは?

Power AutomateとはMicrosoftのRPAツールの一つです。Power Automateについて詳しくは以前のコラムをご参照ください。

ここではPower AutomateとOfficeスクリプトについて簡単に確認しておきましょう。OfficeスクリプトはPower Automateを利用することで自動実行することが可能になります。特に、特定のイベント(「メールが届いた」や「ファイルが配置された」など)が発生したときにOfficeスクリプトを実行したい場合にはPower Automateを利用する必要があります。

OfficeスクリプトをPower Automateで実行してみる

実際にPower AutomateでOfficeスクリプトを実行してみました。主な流れは下記の通りです。

1.社員AがOneDriveの指定フォルダに請求書を配置

2.社員Aが担当者に請求書配置の旨をメールで知らせる

3.特定の件名のメールをトリガーにPower Automateが実行

4.メール本文に記載されたファイル名の請求書の情報をOfficeスクリプトで取得

5.Power Automateが取得した情報を請求書一覧に転記

このように、メールを受信したら、自動で指定した請求書の情報を転記することができました。

以下はPower Automateのフローです。メール本文に記載されているファイル名でフォルダ内を検索して、その検索結果を用いてOfficeスクリプトを実行することで、指定したファイルに対してスクリプトを実行することができます。(これに気が付くのに少し時間がかかりました...)

以下はOfficeスクリプトのソースコードです。

interface Seikyusho{ DocNum:string Destination:string BillingDate:string Manager:string Total:string RegDate:string } function main(workbook: ExcelScript.Workbook): Seikyusho { let selectedSheet = workbook.getActiveWorksheet(); let SeikyushoData: Seikyusho; let date = new Date(Date.now()); let docnum: string = selectedSheet.getRange("AC3:AI3").getValue().toString(); let destination: string = selectedSheet.getRange("A6:K6").getValue().toString(); let billingDate:string = selectedSheet.getRange("AC4:AI4").getValue().toString(); let manager:string = selectedSheet.getRange("AB12:AI12").getValue().toString(); let total: string = selectedSheet.getRange("K14:U14").getValue().toString(); let regDate: string = date.toLocaleDateString(); SeikyushoData = { DocNum: docnum, Destination: destination, BillingDate:billingDate,Manager:manager,Total: total,RegDate: regDate} return SeikyushoData; }

請求書のセルの値を取得して、変数に格納して返すようになっています。

まとめ

今回は、主にOfficeスクリプトについてご紹介しました。Officeスクリプトは触ったことが無かったため少し時間がかかりましたが、そこが実装できてしまえばあまり時間がかかりませんでした。メールを受信してから15秒程度で請求書の情報の転記ができたので、業務効率化の部分で非常に有効だと思います。日々の作業でExcelを使っていて、繰り返し同じ作業をする方にはおすすめです。例えば、次のような作業が考えられます。

  • Excelファイルの内容を基幹システムに入力する
  • ダウンロードしたExcelファイルを編集して、テーブルを作成する。

Officeスクリプトを利用することで日々の作業の効率化を図れるかもしれません。業務効率化をご検討の際にはぜひBTCにご相談ください。

関連記事

もっと知りたい方はこちら


ページトップ