2022年2月 9日 (水)

[Excel] Office Script のスクリプト ボタン機能

2021年11月に Office Script にボタン機能が登場しました。

Announcing buttons for Office Scripts: Run scripts with a workbook button - Microsoft Tech Community

Office Scripts は 次のライセンスを持っているユーザーが利用できる Excel for the web (Excel の Web版)で利用できるスクリプトであり、OneDrive for Business や SharePoint サイトに保存した Excel ワークブック上でスクリプトを書いて実行します。使用する言語は基本的に TypeScriptです。テナントの管理者によってはこの機能をオフにしてあることがあるので、自分の組織で利用できるかどうかは確認しておきましょう。

  • Office 365 Business
  • Office 365 Business Premium
  • Office 365 ProPlus
  • Office 365 ProPlus デバイス用
  • Office 365 Enterprise E3
  • Office 365 Enterprise E5
  • Office 365 A3
  • Office 365 A5

ちなみに、Office Scripts に関しては過去に次のような記事も公開しています。

[Office Scripts] Excel 内のデータを使って SharePoint ライブラリのプロパティを自動設定しよう

SharePoint のドキュメント ライブラリでは任意のプロパティを持たせることができます。

このスクリプトの実行は、上記記事でも紹介したように Power Automate から呼び出すことができるためExcel 外部からデータを渡して、Excelワークシート内にデータを挿入していくことなどが可能です。これに加えて、先に紹介したブログにあるように新たに Office Scripts を Excel シート内に配置したボタンから呼び出せるようになったのです。

[参考] Create a button to run an Office Script (microsoft.com)

簡単なコードで試してみました。今回は OneDrive for Business に作成した Excel ファイルをブラウザーで開き、[自動化]タブからスクリプトを用意します。今回は簡単なおみくじ機能。この例では "おみくじ" という名前で保存しています。

2022-02-09_12-55-55

さて、シート内でボタンを配置したい位置付近の任意のセルを選択したら、コード編集ペインから ... をクリックして[ボタンの追加]をクリックします。

2022-02-09_11-51-13

これでシート内にボタンが追加されます。見た目などはボタンを右クリックすると変更できます。

2022-02-09_11-51-38

では実行してみましょう。※ちなみに、今日の運勢の横に表示される絵文字は単に Excel の式で書いているだけで、Office Scripts はつかっていません。

SharePoint 上のページに埋め込めるのか? 

Excel ファイルはファイルビューアー Webパーツを使えば SharePoint 内のページに埋め込めます。また Excel for the web の共有機能を使えば埋め込みタグを生成できるので、これを埋め込みWebパーツに配置することもできる。では、こうしたページ内からボタン スクリプトは実行できるのだろうかと実験してみました。

が、残念ながら動きませんでした。まぁ、欲を言えば、ボタンクリックで Power Automate のフローが呼べるといいなぁと個人的には思っています。Power Automate からは呼び出せますが、逆が手軽にはいかない。。。

ボタンの削除

ちなみに、このボタンの削除ですがスクリプトの[共有停止]で削除されます。

2022-02-09_14-33-12

つまり、ボタンを追加したときに、共有されているということですね。なるほど。では、どのように共有されているのか? と確認してみると Office Script ファイルの実体が格納されている OneDrive for Business 上のファイルの共有リンクが生成されています。既定では組織内のすべてのユーザーがこのファイルにアクセスできるようになっています。

2022-02-09_15-01-41

ファイルの共有

試しにファイルを共有し、他のユーザーでファイルにアクセスしてみます。このスクリプトは Excel ワークシートに直接書き込むことになるため、閲覧のみの権限だとボタンを実行することができません。編集が可能な権限を付与する必要があります。実際に実行しようとすると、毎回、このスクリプトの実行許可を求められます。Allow または 許可をクリックすると実行できます。

2022-02-09_18-53-37

なお、Excel ファイルを複数ユーザーで同時編集しているときもボタンを押すことができません。

 

Windows 版の Excel 上からの実行


スクリプトおよびボタンの追加は Excel for the web 上から行う必要がありますが、新機能として2022年1月26日付で、Microsoft社の Office Insider サイトのブログに "Run your Office Scripts using a button in Excel for Windows (Windows版Excelのボタンを使ってOfficeスクリプトを実行する)"  という記事が公開されました。

Office Insiders

Become an Insider: be one of the first to explore new Microsoft 365 features for you and your business.

ボタンによるスクリプト実行は Webブラウザー上からはだけでなく Windows版の Excel からも行えるようになる!

ただし、この Windows 版の Excel からの呼び出しは、2022年2月現在 Office Insider の Beta Channel Version 2202 (Build 14922.2000)以降に限定されており、まだ正式リリースではありません。また、現在順次ロールアウト中とのことで、まだ私の環境では試せていません

確認が取れ次第、この記事は、適宜アップデートしたいと思います。

 

コメント