1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

本日は Office Scriptsを組織(チーム)で利用する方法についてのお話です。

Background

  • Office ScriptsはExcelで利用できる一種のマクロ機能。
  • Excelブック内のシートやテーブル、そこに格納されたデータをTypeScriptで参照したり更新したりできる機能。
  • 実態はExcel Onlineの仕組みの中で管理されるTypeScript関数なので、シートやテーブルやそこに格納されたデータを処理しない関数(例:引数で与えられた文字列に正規表現パターンマッチをして結果を返すだけの関数)も定義可能。
  • 引数として受け取ることができる型、戻り値として返すことができる型には制限あり。
  • PowerAutomateでワークフローを作るとき、ワークフローのネイティブなしくみでは実現が難しい機能をOffice Scriptsを利用して実現することができる。
function main(workbook: ExcelScript.Workbook /* ここに任意の引数 */) {
    /* ここにビジネスロジック */
}

Problem

  • Office Scriptsの関数はデフォルトではM365ユーザーの個人個人に属し、各ユーザーのOnDrive内で管理。SharePointで管理されている組織(チーム)で共有のExcelファイルで、他のユーザーが利用することはできない。
  • Office Scriptsの関数を「Excelブックに追加」することで、当該Excelファイルにアクセスできるユーザーに限り共有することができる。
  • この共有を行った状態であれば、PowerAutomateの「スクリプトを実行」アクションなどから、他のユーザーが定義した関数を実行することも可能。
  • ・・・なのだが、どういうわけかこの関数の「共有」がいつの間にかうまく行かない状態となり、 「スクリプトを実行」の設定画面で関数を選択できなかったり、すでに設定済みの「スクリプトを実行」アクションを実行するとエラーとなったり するケースがある。
  • そうでなくても、M365ユーザー個人が持つ関数をExcelブックに関連付けるような仕組みで、その関数もExcel Onineの「自動化」タブを表示してはじめて一覧できるというもののため、 可視性/アクセス性が低く、組織(チーム)で関数を共有して利用する上で課題 となる。

Solution

どうやら昨年(2022年)から、Office Scriptsの関数をファイルとしてSharePoint上で管理できるようになったらしい。
これを利用すると、個人所有ではなく組織(チーム)所有の関数が定義できる。
以下のUIで「スクリプトに名前をつけて保存」をクリックすると、従来のOnDriveに加えてSharePointサイトも保存先に選べるようになっていることが分かる:
image.png

ここからSharePointサイト上に保存すると、当該SharePointサイトにアクセスできる組織(チーム)のメンバーはこの関数を利用できるようになる。

そしてPowerAutomateからこのスクリプトを実行する場合は、「Run scrip from SharePoint library」アクションを利用する:
image.png

まだプレビュー版。ドキュメントも見つけられなかったが、このアクションを使用し以下の項目を設定すると組織(チーム)管理の関数を実行することができる:

項目名 説明
ブックの場所 関数による操作対象になるExcelファイルの保管されているSharePointサイト
ブックライブラリ 上記サイト内で、関数による操作対象になるExcelファイルの保管されているのドキュメントライブラリ
ブック 上記ライブラリ内で、関数による操作対象になるExcelファイルの保管されているパス
スクリプトの場所 関数の保管されているSharePointサイト
スクリプトライブラリ 上記サイト内で、関数の保管されているドキュメントライブラリ
スクリプト 上記ライブラリ内で、関数の保管されているパス
1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?