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:記録する操作を決める
記録中の操作はそのままステップとして残るため、先に手順を書き出しておきます。例:
- 「売上」シートのG1セルに「税込金額」と入力する。
- G1セルを太字にする。
- G2セルに税込金額の数式を入れ、最終行までコピーする。
- G列の列幅を自動調整する。
手順2:アクションレコーダーで記録する
- OneDriveまたはSharePoint上にある対象ブックのテスト用コピーを、Web版のExcelで開く。
- 「Automate」タブ(日本語表示では「自動化」の場合があります)を開き、「操作を記録」を選ぶ。
- 画面の右側に記録用の作業ウィンドウが開き、記録が始まる。
- 書き出した手順どおりに操作する。操作するたびに、作業ウィンドウに記録されたステップが追加される。
- 終わったら、作業ウィンドウの「停止」を選ぶ。
操作の種類によっては記録されないものがあります。作業ウィンドウにステップが追加されなかった操作は、記録後にコードを書き足すか、手作業で行う前提にします。
手順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:別のデータで再実行する
- 同じ形の表を持つ別のテスト用ブックを開く。
- 「Automate」タブのスクリプト一覧から対象スクリプトを選び、コードエディターの「実行」を押す。
- 結果を確認する。続けてもう一度実行し、列が二重に追加されないかも確認する。
よく使うスクリプトは、スクリプトの詳細画面からブック内にボタンを追加し、ボタンから実行できるようにすることもできます(表示名は環境によって異なります)。
実務での確認チェック
- [ ] 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
