Office Scriptsのアクションレコーダーは、Excel上の操作をスクリプトとして記録し、後から再実行できます。VBAマクロとは別系統なので、利用環境を先に確認します。

この記事では、利用できる環境の確認から、Automateタブでの記録、記録したスクリプトの確認と再実行までを順に説明します。Web版などのExcelで、毎回同じ操作を繰り返している人向けです。

先に結論

  • まずAutomateタブが表示されるかを確認します。表示されない場合は、アカウントの種類・契約プラン・管理者設定が原因であることが多いです。
  • アクションレコーダーは1回分の操作をそのままコードにするだけなので、記録後に対象シートやセル範囲が固定されていないかを確認します。
  • スクリプトによる変更は元に戻せない場合があるため、テスト用のコピーで試します。

利用できる環境を確認する

  • Office Scriptsは、主に職場または学校向けのMicrosoft 365ライセンスで提供されている機能です。個人向けのMicrosoftアカウントでは表示されない場合があります。
  • Web版のExcel(ブラウザー)で利用できます。デスクトップ版(Windows/Mac)でも、バージョンによっては利用できます。
  • 組織の管理者がOffice Scriptsを無効にしている場合、Automateタブは表示されません。
  • 対象ブックはOneDriveまたはSharePointに保存しておきます。後でPower Automateから実行する場合にも必要になります。
  • 作成したスクリプトは、ブックの中ではなく、ブックとは別のファイル(拡張子 .osts)として自分のOneDriveに保存されます。

対応環境は変わることがあるため、Automateタブが表示されない場合は、Microsoftの公式ページと社内の管理者に確認してください。

手順1:記録する操作を決める

記録中の操作はそのままステップとして残るため、先に手順を書き出しておきます。例:

  1. 「売上」シートのG1セルに「税込金額」と入力する。
  2. G1セルを太字にする。
  3. G2セルに税込金額の数式を入れ、最終行までコピーする。
  4. G列の列幅を自動調整する。

手順2:アクションレコーダーで記録する

  1. OneDriveまたはSharePoint上にある対象ブックのテスト用コピーを、Web版のExcelで開く。
  2. 「Automate」タブ(日本語表示では「自動化」の場合があります)を開き、「操作を記録」を選ぶ。
  3. 画面の右側に記録用の作業ウィンドウが開き、記録が始まる。
  4. 書き出した手順どおりに操作する。操作するたびに、作業ウィンドウに記録されたステップが追加される。
  5. 終わったら、作業ウィンドウの「停止」を選ぶ。

操作の種類によっては記録されないものがあります。作業ウィンドウにステップが追加されなかった操作は、記録後にコードを書き足すか、手作業で行う前提にします。

手順3:スクリプト名を付け、コードを確認する

記録を停止すると、コードエディターに記録内容が表示されます。既定の名前(「Script 1」など)のままだと後で探しにくいため、スクリプト名をクリックして 売上_税込列追加 のようにわかる名前に変えます。

記録されたコードは、たとえば次のような形になります。

function main(workbook: ExcelScript.Workbook) {
  let selectedSheet = workbook.getActiveWorksheet();
  selectedSheet.getRange("G1").setValue("税込金額");
  selectedSheet.getRange("G1").getFormat().getFont().setBold(true);
}

ここで次の2点を確認します。

  • getActiveWorksheet():実行したときに開いているシートが対象になります。別のシートを開いたまま実行すると、そのシートが書き換わります。対象シートが決まっているなら、workbook.getWorksheet("売上") のようにシート名で指定する形に書き換えます。
  • getRange("G2:G100") のような固定範囲:行数が変わると処理漏れや余計な書き込みが起きます。表をExcelのテーブルにしておき、workbook.getTable("売上表") のようにテーブル名で扱うと、行数の変化に強くなります。

手順4:別のデータで再実行する

  1. 同じ形の表を持つ別のテスト用ブックを開く。
  2. 「Automate」タブのスクリプト一覧から対象スクリプトを選び、コードエディターの「実行」を押す。
  3. 結果を確認する。続けてもう一度実行し、列が二重に追加されないかも確認する。

よく使うスクリプトは、スクリプトの詳細画面からブック内にボタンを追加し、ボタンから実行できるようにすることもできます(表示名は環境によって異なります)。

実務での確認チェック

  • [ ] Automateタブが使える環境か
  • [ ] スクリプトが参照するシート名・テーブル名が実際のブックと一致しているか
  • [ ] 入力ブックを直接上書きする処理になっていないか
  • [ ] 2回続けて実行しても結果が同じか(二重処理にならないか)

具体例

毎回同じテーブルへ列を追加して書式を整える処理は記録しやすい一方、入力構造が毎回違う場合は記録だけで安定しないことがあります。

よくある失敗

  • 開いているシートに依存したまま使う:getActiveWorksheet() のままだと、たまたま開いていたシートを書き換えてしまいます。
  • 記録時の行数が固定される:記録した月より行が多い月に、最終行まで処理されません。
  • 本番ブックで試す:スクリプトの変更は元に戻せない場合があるため、失敗すると手作業での修復が必要になります。
  • VBAマクロと混同する:Office ScriptsはVBAとは別の仕組みで、TypeScriptという言語で書かれます。VBAマクロ(.xlsm)はWeb版のExcelでは実行できず、Office Scriptsはマクロ有効ブックにしなくても使えます。

このページでは扱わないこと

  • デスクトップ版ExcelでVBAマクロを記録する方法(「Excelの繰り返し操作をマクロ記録で自動化する方法」の記事を参照してください)
  • Power Automateを使って、時刻やメールをきっかけにスクリプトを自動実行する方法

関連ページ

  • Excelの繰り返し操作をマクロ記録で自動化する方法
  • Office ScriptsをPower Automateから実行する方法
  • Excel・CSVの記事一覧

参考

  • Microsoft サポート:操作をOffice Scriptsとして記録する(Record your actions as Office Scripts)

確認日: 2026-09-28

おすすめの記事