Office Scriptsの基本!Excel自動化で使う関数とコードの書き方
生徒
「Office Scriptsを実行しようとしたら、権限が必要ですって表示されました。これって何ですか?」
先生
「それは実行権限、つまりランタイム権限と呼ばれる仕組みですね。」
生徒
「コードは書けているのに、なぜ実行できないんでしょうか?」
先生
「今日はOffice Scriptsの実行権限について、超基本から説明します。」
1. Office Scriptsとは?
Office Scriptsは、Excel Onlineで使える自動化スクリプトです。 手で行っているExcel作業を、文字で書いた命令として保存し、自動で実行できます。 セルの入力、行の削除、シートの追加など、日常業務を効率化できるのが特徴です。
2. 実行権限(ランタイム権限)とは何か
実行権限とは、「このスクリプトを実際に動かしてよいかどうか」という許可のことです。 Office Scriptsでは、コードを書くだけではExcelは動きません。 実行するときに「この操作を許可しますか?」という確認が行われます。
ランタイムという言葉は「実行している最中」という意味です。 つまりランタイム権限とは、「実行中にExcelを操作してよいか」という許可だと考えてください。
3. なぜ実行時に権限確認が必要なのか
Office ScriptsはExcelの中身を直接変更できます。 行を削除したり、シートを増やしたり、計算結果を書き換えたりも可能です。 そのため、勝手に実行されると大事なデータが消えてしまう危険があります。
これはスマートフォンのアプリが、初回起動時に「写真へのアクセスを許可しますか?」と聞いてくるのと同じ仕組みです。 安全のために、実行時に確認が入るようになっています。
4. 実行権限が必要になる操作の例
実行権限は、Excelの内容を変更する操作で特に重要になります。 たとえばセルに値を書き込むだけでも、実行権限が必要です。
function main(workbook: ExcelScript.Workbook) {
const sheet = workbook.getActiveWorksheet();
sheet.getRange("A1").setValue("実行権限が必要");
}
このコードはシンプルですが、Excelに変更を加えるため、実行時に権限の確認が行われます。
5. 強い操作ほど権限の意味が大きくなる
行の削除やシートの追加などは、特に影響の大きい操作です。 これらを自動で行うスクリプトは、実行権限の理解がとても重要になります。
function main(workbook: ExcelScript.Workbook) {
const sheet = workbook.getActiveWorksheet();
sheet.getRange("2:2").delete(ExcelScript.DeleteShiftDirection.up);
}
このようなコードは便利ですが、誤って実行すると元に戻せません。 そのため、実行前に必ず権限確認が入るようになっています。
6. Power Automate実行時の権限の考え方
Office Scriptsは、Power Automateから自動実行されることもあります。 この場合、実行権限は「誰の権限で動くか」が重要になります。
基本的には、フローを作成したユーザーの権限でスクリプトが実行されます。 そのため、作成者に権限がない操作は、自動実行でも失敗します。
function main(workbook: ExcelScript.Workbook) {
const newSheet = workbook.addWorksheet("自動実行シート");
newSheet.getRange("A1").setValue("権限がある場合のみ作成されます");
}
7. 実行権限と管理者設定の関係
実行権限は、個人の確認だけでなく、企業環境の管理者設定とも関係します。 管理者がOffice Scripts自体を無効にしている場合、権限確認以前に実行できません。
また、特定のユーザーだけが実行できるよう制限されているケースもあります。 これは会社全体の安全を守るための仕組みです。
8. 初心者が知っておくべき安心ポイント
実行権限の確認が出たからといって、何か悪いことをしているわけではありません。 Office Scriptsが正しく安全に動こうとしている証拠です。
まずは内容を理解し、テスト用のExcelで試すことから始めましょう。 実行権限を正しく理解することが、安心してExcel自動化を使う第一歩です。