生産性向上ガイド:Office スクリプトで Excel Online のワークフローを自動化する方法

Office スクリプトは、Excel for the web(Excel Online)に搭載された機能で、JavaScript ベースのスクリプトを使って反復的なタスクやワークフローを自動化できます。従来の Excel マクロ(デスクトップ版でのみ動作)とは異なり、Office スクリプトはクラウドベースのため、ブラウザー上でシームレスに実行できるのが大きな特長です。データ処理、書式設定、レポート作成の自動化はもちろん、Power Automate をはじめとする Microsoft 365 の各種ツールとの連携にも最適です。
本記事では、Office スクリプトを使用して Excel Online のワークフローを自動化する具体的な手順を解説します。
Office スクリプトとは?
Office スクリプトは、Excel Online 上のタスクやワークフローを自動化するための JavaScript / TypeScript ベースのスクリプトです。書式設定、計算、データ操作など、さまざまな処理をコードで制御できます。
- 反復的なタスクを自動化:時間を節約し、人的ミスを削減できます。
- クラウドで動作:デスクトップ版 Excel は不要。Excel Online が利用できる環境ならどこでも実行できます。
- Power Automate との連携:Microsoft 365 全体にまたがる複数ステップのワークフローの一部としてスクリプトをトリガーできます。
- 共同作業の強化:アクセス権を持つメンバーなら誰でも、スクリプトの実行や編集が可能です。
はじめに:事前準備と起動方法
必要な条件:
- Microsoft 365 Business または Education サブスクリプション。
- Excel for the web へのアクセス権。
- 管理者による Office Scripts 機能の有効化。
Office Scripts を見つける場所:
- Excel Online を開き、対象のブックを開きます。
- 上部リボンの [自動化(Automate)] タブを選択します。
- [アクションの記録] と [新しいスクリプト] のオプションが表示されます。
初めての Office スクリプトを作成する
まずはシンプルなワークフローを自動化してみましょう。「古いデータのクリア → 新しいデータの取り込み → 表の書式設定」という一連の流れを題材にします。
ステップ 1:スクリプトを記録する
アクションの記録:
- [自動化] タブ >> [アクションの記録] をクリックします。
- Excel 上で実行したい操作を行います(セルの書式設定、数式の挿入など)。
- 操作が完了したら [停止] をクリックします。これで一連の操作がスクリプトとして記録されます。
- スクリプトは自動的に保存され、後からコードの確認や編集もできます。
自動化する操作の例:
- [自動化] タブ >> [アクションの記録] をクリックします。

- 見出し行を選択して 太字 にします。
- OrderDate 列を選択し、短い日付形式 に書式設定します。
- Unit Price 列を選択し、通貨 形式に書式設定します。
- 隣の列(E 列)に Sales という見出しを追加します。
- セル E2 に次の数式を入力します。
- その数式を残りの行へオートフィルします。
- [停止] をクリックします。

- コード エディター で記録されたスクリプトを確認できます。

スクリプトの編集:
記録されたスクリプトは、以下のように JavaScript として表示・編集できます。

Office スクリプトのコード例:
function main(workbook: ExcelScript.Workbook) {
let selectedSheet = workbook.getActiveWorksheet();
// Set font bold to true for range A1:D1 on selectedSheet
selectedSheet.getRange("A1:D1").getFormat().getFont().setBold(true);
// Set format for range A2:A11 on selectedSheet
selectedSheet.getRange("A2:A11").setNumberFormatLocal("m/d/yyyy");
// Auto fit the columns of range A:A on selectedSheet
selectedSheet.getRange("A:A").getFormat().autofitColumns();
// Set format for range D2:D11 on selectedSheet
selectedSheet.getRange("D2:D11").setNumberFormatLocal("$#,##0.00");
// An error occurred while recording this event.
// Set range E2 on selectedSheet
selectedSheet.getRange("E2").setFormulaLocal("=C2*D2");
// Auto fill range
selectedSheet.getRange("E2").autoFill("E2:E11", ExcelScript.AutoFillType.fillDefault);
}
ステップ 2:データ更新と書式設定を自動化する
次に、「データの定期更新と整形」を自動化するケースを見てみましょう。想定する流れは次のとおりです。
- 既存のデータをクリアする。
- 別のワークシート(RawData シート)から新しいデータをコピーする。
- Report シートにデータを転記する。
- 転記した範囲をテーブルとして書式設定する。
スクリプトを手動で作成する:
- [自動化] タブ >> [新しいスクリプト] をクリックします。
- 基本となる関数のひな形が含まれたコード エディターが開きます。

Office スクリプトのコード例:
function main(workbook: ExcelScript.Workbook) {
// Select the 'Report' worksheet
let reportSheet = workbook.getWorksheet("Report");
// Clear everything in A1:E15
let clearRange = reportSheet.getRange("A1:E15");
clearRange.clear(ExcelScript.ClearApplyTo.all);
// Get the new data from 'RawData'!A1:E15
let rawSheet = workbook.getWorksheet("RawData");
let sourceRange = rawSheet.getRange("A1:E15");
// Copy values, formulas, and number formats
let values = sourceRange.getValues();
let formulas = sourceRange.getFormulas();
let numberFormats = sourceRange.getNumberFormats();
// Paste new data into 'Report'
let targetRange = reportSheet.getRange("A1:E15");
targetRange.setValues(values);
targetRange.setFormulas(formulas);
targetRange.setNumberFormats(numberFormats);
// Format as table
let lastRow = values.filter(row => row[0] !== "").length + 1; // header + non-empty rows
let tableRange = `A1:E${lastRow}`;
let table = reportSheet.addTable(tableRange, true);
table.setName("SalesReport");
// Optional: Auto-fit columns
reportSheet.getUsedRange().getFormat().autofitColumns();
}
このスクリプトは、次のような処理を一括で実行します。
- 古いレポートデータをクリアする。
- 生データ用ワークシートから、値・数式・表示形式ごと新しいデータを取り込む。
- 取り込んだデータをテーブルとして書式設定する。
- 列幅を自動調整し、読みやすさを確保する。
ステップ 3:スクリプトを保存して実行する
- [スクリプトの保存] をクリックし、わかりやすい名前を付けます(例:「Refresh Sales Report」)。
- [実行] をクリックすると即座に処理が走り、レポートが一瞬で更新されます。

Power Automate でスクリプトの実行をさらに自動化する
Power Automate を組み合わせれば、Office スクリプトを条件に応じて自動実行することも可能です。
- Power Automate を開き、新しいフローを作成します。
- トリガーを設定します(例:「OneDrive にファイルが作成されたとき」)。
- [スクリプトの実行] アクションを追加し、対象の Excel ブックとスクリプトを指定します。
- 「データ取得 → 加工 → メール送信 → チームへの通知」など、複数ステップのプロセスをまとめて自動化できます。
活用例:毎週月曜日の朝に決まった時刻でスクリプトを実行し、更新済みのレポートを関係者へメールで自動送信する、といった運用が実現できます。
押さえておきたいヒントとベストプラクティス
- 可読性を高めるために、スクリプト内には適切なコメントを残しましょう。
- 本番データで実行する前に、必ずコピー環境でテストしましょう。
- テーブルやセル範囲には、内容がひと目でわかる名前を付けましょう。
- アプリ横断のワークフローが必要な場合は、Power Automate との組み合わせを検討しましょう。
- エラーハンドリングを組み込み、予期しない入力にも耐えられる堅牢なスクリプトを目指しましょう。
実務で役立つ活用例
- 週次売上レポートの更新:生データの取得から、クリーンアップ、集計、表の整形までをワンクリックで完結。
- 自動データ検証:欠損値や重複データをチェックし、問題があればユーザーへアラート通知。
- 書式の一貫性確保:社内標準のスタイル、見出し、ロゴなどを一括適用。
- バッチデータ処理:複数のシートやブックに散在するデータを効率的に統合。
まとめ
Office スクリプトを活用すれば、Excel の反復作業は大幅に簡素化され、迅速かつ一貫性のあるデータ処理とレポート作成が実現します。さらに Power Automate といった広範な自動化基盤と組み合わせれば、業務全体をつなぐシームレスなワークフローを構築できます。まずは「アクションの記録」から気軽に始めて、徐々に高度な自動化や外部サービスとの連携へとステップアップしていきましょう。
-
Microsoft公式サイトから無料のWord・Excel・PowerPoint・Access・Visioテンプレートをダウンロードする方法
Office.comでは、さらに充実したテンプレートが無料で公開されるようになりました。このサイトでは、履歴書、プレゼンテーション、パンフレット、家族向けアクティビティ、カレンダー、予算管理、プランナー、トラッカー、ニュースレターなど、さまざまな用途に活用できるWord、Excel、PowerPoint、Access、Visioの無料テンプレートをダウンロードできます。 Word、Excel、PowerPoint、Access、Visioの無料テンプレート Microsoftは、業務でもプライベートでも使い勝手の良い、豊富な種類のOfficeテンプレートを提供しています。 Microsof
-
Outlook.comやデスクトップ版でメールにファイルを添付できないときの対処法
Outlookでメールにファイルを添付できないお悩みをお持ちの方に、この記事が役立つかもしれません。Outlookを使って添付ファイル付きのメールを送信しようとした際、多くのユーザーがこの問題に直面しています。問題が発生しているのがOutlook.comなのかデスクトップアプリなのかは問わず、このチュートリアルの手順に従えばトラブルシューティングが可能です。 Outlookでファイルを送信するには、守るべき特定のルールや制限があります。急いでファイルを送りたいのに、一般的な規制のせいで送れないという場面もあるでしょう。そんなとき、ここで紹介するテクニックがきっと役立ちます。 Outlookでメ