Office Scriptsとは?Excel自動化でできること・使い方を初心者向けに解説

当ページのリンクには広告 (Amazonアソシエイト含む) が含まれています。
Excel自動化は保存場所と実行タイミングで選ぶ

「Office Scripts(オフィススクリプト)」という言葉を見かけたものの、「VBAと何が違うの?」「自分のExcelでも使えるの?」と迷っていませんか。

先に結論をいうと、Office ScriptsはExcelで毎回くり返している操作を記録し、同じ処理をもう一度動かせる自動化機能です。特に、OneDrive for BusinessやSharePointに置いた共有Excelを、Power Automateで「毎朝実行」「メールが来たら実行」のように動かしたいときに力を発揮します。

ただし、ここが少しややこしいところです。Office Scriptsは、Excelを使っていれば誰でも必ず使える機能ではありません。会社のMicrosoft 365プラン、管理者の設定、ファイルの保存場所によっては、そもそも「自動化」タブが出ない場合があります。

この記事では、まず「自分のExcelで使えるか」を確認し、そのうえでVBA・Python・Power Automate Desktopとの使い分け、最初に試すコード、学習順までまとめます。

先に確認: Excelに「自動化」タブはありますか?

Office Scriptsを始める前に、まずExcelの画面上部に「自動化」タブがあるか確認してください。タブが見えていれば、Office Scriptsを使える可能性が高いです。

もし「自動化」タブが見当たらない場合は、使っているMicrosoft 365のプラン、会社や学校の設定、Excelファイルの保存場所が原因になっていることがあります。個人用のExcelでは使えない、または機能が限られる場合もあるため、業務で使うなら会社のMicrosoft 365環境で確認するのが安全です。

Microsoft 365のプランの違いを先に整理したい方は、Microsoft 365のプラン比較記事も参考にしてください。「自動化」タブが出ない段階でコードや講座に進んでも、環境が合わなければ途中で止まります。先にプランの違いを見ておくと、遠回りを減らせます。

詳しい条件はMicrosoft LearnのOffice Scriptsのプラットフォーム制限と要件でも確認できます。

よく使う度
難しさ
実務重要度

※本記事の情報は2026年5月時点のものです。Microsoft 365のライセンス条件、Office Scriptsの対応環境、動画講座の価格・内容は変わる可能性があるため、最新情報は各公式ページでご確認ください。

目次

Office Scripts(オフィススクリプト)とは?Excel自動化の全体像

Office Scriptsをひとことでいうと、「Excelでやった操作を記録して、同じ作業をあとからもう一度動かす機能」です。毎回同じ列幅に整える、見出しに色を付ける、集計結果を書き出す、といった作業をスクリプトとして残せます。

Microsoft LearnのExcel の Office スクリプトでも、アクションレコーダー、コードエディター、共有、Power Automate連携がOffice Scriptsの主な入口として説明されています。細かい仕様は公式で確認しつつ、この記事では「実務でどう使い始めるか」に絞って説明します。

どれから使う?2つの判断軸

Office Scriptsの基本的な仕組み

Office Scriptsの始め方は、思っているよりシンプルです。まずExcelの操作をアクションレコーダーで記録します。すると、その操作が裏側でコードに変わります。慣れてきたら、コードエディターでセル範囲やシート名だけ少し直します。

コードはTypeScriptで書かれますが、最初からTypeScriptを全部覚える必要はありません。初心者はまず「操作を記録する」「生成されたコードを少し読む」「A1をB1に変える」のような小さな変更からで十分です。

自動化からレコーディングから作成(R)を押す

なお、Office ScriptsはExcel on the web、Windows版Excel、Mac版Excelで使える環境が広がっています。ただし、実際に使えるかどうかはMicrosoft 365のプランや会社の設定で変わります。細かい対応条件はMicrosoft公式のOffice Scriptsのプラットフォーム対応一覧を確認してください。

VBAとの違いを一段落で理解する

VBAとOffice Scriptsは、どちらもExcelを自動化する道具です。ただし、得意な場所が違います。VBAは、手元のPCにあるExcelや、昔から社内で使っているマクロに強いです。Office Scriptsは、OneDrive for BusinessやSharePointに置いたExcelを、チームで共有しながら動かす場面に向いています。

サクッと結論

「Office Scriptsが出たからVBAはもう不要」という話ではありません。MicrosoftのOffice スクリプトと VBA マクロの違いでも、両者は別の自動化手段として整理されています。置き換えというより、使い分けです。

どんな人が使うべきか

  1. ExcelファイルをOneDrive for BusinessまたはSharePoint上で扱っている
  2. チーム共有のExcelを定期的に整形・集計している
  3. Power Automateで「毎朝自動実行」「メール受信時に処理」まで広げたい
  4. VBAだけでなく、クラウド前提のExcel自動化も学んでおきたい

反対に、個人PC内のExcelファイルだけを自動化したい場合や、既存のVBAマクロをたくさん使っている場合は、まずVBAを優先したほうが実務に合いやすいです。

判断フロー: 自分はどれから使うべきか

スクロールできます
質問YESの場合NOの場合
Q1. Excelファイルは主にOneDrive for Business / SharePoint上にありますか?Office Scripts候補Q2へ
Q2. 既存のVBAマクロを何本も使っていますか?まずVBAを維持Q3へ
Q3. 毎朝実行、メール受信時実行、Teams通知までやりたいですか?Office Scripts + Power AutomateQ4へ
Q4. Excel以外のアプリ操作もまとめて自動化したいですか?Power Automate Desktop候補小さなOffice Scriptsから試す
ポイント

Office Scriptsは「クラウド共有のExcelに向いた選択肢」と覚えると判断しやすくなります。言語名で選ぶより、ファイルの置き場所と自動実行したいかで選ぶほうが失敗しにくいです。

ここで迷った人の次アクション

スクロールできます
迷っていること先に見るもの
Excelに「自動化」タブが出ないMicrosoft 365のプラン比較記事で、自分のプランと業務向けプランの違いを確認する
VBAとOffice Scriptsのどちらを学ぶか迷うVBA入門の学習ロードマップと、本記事の比較表を見比べる
画面操作やPower Automate連携で迷いそう後半の「学習ロードマップ」で、動画講座を使うタイミングを確認する

Office Scriptsでできること・できないこと

Office Scriptsは便利ですが、何でもできる万能ツールではありません。先に「得意なこと」と「苦手なこと」を知っておくと、VBAやPythonと迷ったときに判断しやすくなります。

できること・注意点の境界

できること(代表例3つ)

できることの例
  • 定型集計の自動化
    • 毎日同じ形の表を整える、不要な列を消す、見出しを整える、別シートへ結果を書き出す。
  • 複数行・複数シートをまたぐ処理
    • 最終行まで繰り返す、複数シートを順番に処理する。
  • 罫線・色・書式の自動整形
    • 報告書や申請書の見た目を整え、不要な値や書式をクリアする。

セル範囲の取得はgetRange・getValueでセルを取得する記事、変数の使い方はlet・const・varの違いと型指定の記事で個別に解説しています。繰り返し処理はfor文でExcelの繰り返し処理をする記事、最終行・最終列の取得は最終行・最終列を正確に取得する記事を参考にしてください。

実務シーンに置き換えると
  • 経理
    • 月次予実表にCSVを貼り付けたあと、見出し・列幅・No列を整えて確認作業に集中する
  • 営業
    • SharePoint上の日報一覧を整形し、未提出者や更新日を見やすくする
  • チーム管理
    • 共有タスク表に期限切れマーカーを付け、毎朝の確認漏れを減らす

Office Scriptsは「すごいアプリを作る道具」というより、毎回同じExcel整形を数分ずつ減らす道具として見ると使いどころが見えてきます。

できないこと・注意点

  • VBAマクロをそのまま読み込んで実行することはできません。
  • VBAのUserFormのような独自の入力画面は、Office Scriptsでは作りにくいです。
  • Windows APIや外部DLLを直接呼び出すような、PCに深く入り込む処理には向きません。
  • 線や四角などの図形、画像の追加・配置は一部できますが、既存図形を細かく編集したり、画像加工まで含めたりする用途はVBAやPythonの方が向く場合があります。
  • Power Automateから実行する場合、スクリプト内の fetch などで外部APIを直接呼び出す処理は避け、HTTP連携はPower Automate側のアクションで行います。
  • Power Automate連携では、ファイルの保存場所、実行ユーザー、アクセス権限で詰まりやすいです。
  • 会社や学校の設定によっては、Office ScriptsやPower Automate連携が使えない場合があります。

特に「VBAをOffice Scriptsへ一括変換したい」という期待は持たないほうが安全です。移行ではなく、用途ごとに書き直す前提で考えてください。

VBA・Power Automate Desktop・Pythonとの位置関係

スクロールできます
比較項目VBAOffice ScriptsPython(openpyxl等)Power Automate Desktop
向いているExcelローカルPC上のExcel、既存マクロ資産OneDrive for Business / SharePoint上の共有Excel大量ファイル、CSV、外部データ処理Excel以外の画面操作も含む作業
セル・表の処理得意得意得意画面操作として対応
図形・画像の処理Shapesを使った細かい操作に強い追加・配置は一部可能。ただし細かい編集は主目的ではない画像加工やファイル処理に強い画面上の操作を再現する用途に向く
自動実行Excelを開く運用が中心Power Automate連携が得意タスクスケジューラ等と組み合わせやすいPC上の定型操作に向く
先に選ぶ場面既存VBAを活かしたい、ローカルExcel中心共有Excelをクラウドで動かしたいExcel外の大量データも処理したいブラウザや業務ソフトも一緒に操作したい

既存のマクロ資産が多い場合や、図形・帳票・ローカルファイル操作を細かく制御したい場合は、Office ScriptsよりVBAの方が合うことがあります。VBAから始める場合は、VBA入門の学習ロードマップも参考にしてください。

コードを書く前の整理に PR・自社製品 無料Liteあり

Office Scriptsで自動化する前に、作業の流れをマインドマップで整理しておくと迷いにくいです

日報作成、転記、集計、進捗表づくりなどをいきなりコード化しようとすると、「どこまで自動化するか」があいまいになりがちです。まず作業手順をマインドマップで分解し、Office Scriptsに任せる部分を決めておくと、最初の1本を作りやすくなります。

TsunaGraphの実画面。左に箇条書き入力、右にマインドマップを表示している
使いどころ 自動化したいExcel作業の流れを整理
Excelとの相性 CSVやExcel補助ブックで後工程につなげやすい
向いている人 作業手順を見える化してからコードを書きたい人

※TsunaGraphはPCブラウザ向けのローカルアプリです。無料Lite版やStandard版の違いはリンク先で確認できます。

Office Scriptsの始め方と基本の使い方

最初は、コードを書くよりも「記録して動かす」ことを優先してください。小さく1回動かすだけで、「Office Scriptsってこういうものか」が一気につかみやすくなります。

10分テスト
始める前の確認
  • Excelに「自動化」タブが表示される
  • ファイルがOneDrive for BusinessまたはSharePointなど、Microsoft 365上に保存されている
  • 組織の設定でOffice Scriptsが無効化されていない
「自動化」タブが出ないときの切り分け
  1. ライセンスを確認する
    • 会社や学校のMicrosoft 365でOffice Scriptsが使えるか確認します。個人・家庭向けプランでは機能が限られる場合があります。プランの違いが不安な場合は、Microsoft 365のプラン比較記事で先に整理しておくと判断しやすくなります。細かい条件はMicrosoft公式のプラットフォーム制限と要件でも確認できます。
  2. 保存場所を確認する
    • ローカルPCだけにあるファイルではなく、OneDrive for BusinessやSharePoint上のブックで試します。
  3. 会社や学校の設定を確認する
    • 条件を満たしても表示されない場合、管理者がOffice Scriptsを無効化している可能性があります。Excel on the webでは、ブラウザーのサードパーティCookie設定が影響することもあります。

ステップ1: アクションレコーダーで操作を記録する

  1. Excelファイルを開く
  2. リボンの「自動化」タブを選ぶ
  3. 「新しいスクリプト」から「レコーディングから作成(R)」を選択する
  4. セル入力、書式変更、表の整形などを行う
  5. 記録を停止してスクリプトを保存する
自動化からレコーディングから作成(R)を押す

これだけで、操作内容がTypeScriptコードとして保存されます。最初の目的は、きれいなコードを書くことではなく「自分の操作が再実行できる」状態を作ることです。

ステップ2: コードエディターで内容を確認・編集する

記録したスクリプトは、コードエディターで確認できます。A1セルに「完了」と入れるだけでも仕組みは分かりますが、それだけでは実務で使える学びが少なめです。

ここでは、もう少し実務寄りに「1行目を見出し、2行目以降をデータとして、B列に連番を振る」コードを試します。B列を上書きするため、最初はコピーしたファイルで実行してください。

実行前 → 実行後のイメージ(A列に氏名が入った3行のシートを想定)

コード実行前と実行後をExcelで見る
function main(workbook: ExcelScript.Workbook) {
  // アクティブなシートを取得
  const sheet = workbook.getActiveWorksheet();
  // データが入っている範囲を取得(空シートならnull)
  const usedRange = sheet.getUsedRange();

  // シートが空のときはB1だけ "No" を入れて終了
  if (!usedRange) {
    sheet.getRange("B1").setValue("No");
    return;
  }

  // 使用範囲の行数(見出し含む)
  const rowCount = usedRange.getRowCount();
  // 見出ししかない場合もB1だけ "No" で終了
  if (rowCount < 2) {
    sheet.getRange("B1").setValue("No");
    return;
  }

  // 連番データを二次元配列で作成(setValuesは2D配列を要求するため)
  const serialValues: (string | number | boolean)[][] = [];
  for (let i = 1; i < rowCount; i++) {
    serialValues.push([i]);
  }

  // B1に見出しを入れる
  sheet.getRange("B1").setValue("No");
  // getRangeByIndexes(開始行, 開始列, 行数, 列数) ※0始まり。B2から下に書き込む
  sheet.getRangeByIndexes(1, 1, serialValues.length, 1).setValues(serialValues);
}

この1本で、getUsedRange() で使用範囲を取り、getRowCount() で行数を調べ、for 文で連番データを作り、setValues() でまとめて書き込む流れを体験できます。Office Scriptsの実務コードでよく使う部品が一通り入っているので、この記事内で「動かしてみた」まで進めやすいサンプルです。

このコードに出てくる sheetusedRangerowCountserialValues は、あとで使う値に名前を付けたものです。これが変数です。Office Scriptsでは、セル範囲や行数を毎回長い式で書くより、変数に入れてから処理すると読みやすくなります。詳しくはOffice Scriptsの変数設定の記事で解説しています。

動かない・想定どおりにならないとき
  • B列に何も書かれない
    • サンプル通りA1:A4に見出しとデータが入っているか、コピーしたシートが空ではないか確認します。
  • 1行ぶん連番がずれる
    • 見出し行がない場合は、for の開始を i = 1 から i = 0 に変えるか、見出し行を追加してください。
  • B列の既存データが消えた
    • 仕様どおりの上書きです。必ずコピーしたファイルで試してください。

ステップ3: ボタンやPower Automateと組み合わせる

  • 自動化タブから手動実行する
  • シート上にボタンを置いて、同僚でも実行できるようにする
  • Power Automateから決まった時間やイベントで実行する

ボタン化すると、コードを書けない人にも同じ処理を渡せます。Power Automateと組み合わせると、Excelを開かずに処理を走らせる業務フローまで広げられます。

 Office Scriptsのスクリプトをボタン化する

Office ScriptsをPower Automateで自動実行する・学習ロードマップ

Office Scriptsは単体でも便利ですが、本当に便利になるのはPower Automateと組み合わせる段階です。毎朝の集計、メール受信後の処理、Teams通知までつなげると、「Excelを開いて作業する時間」を減らしやすくなります。

Power Automateで広がる流れ

Office ScriptsをPower Automateと連携するとできることが広がる

Power Automateは、複数のアプリやサービスをつなぐMicrosoftの自動化サービスです。Office Scriptsを呼び出すことで、次のような処理に広げられます。

  • 毎朝決まった時刻にExcel集計を実行する
  • メール添付のExcelを保存し、整形スクリプトを実行する
  • SharePoint上のExcelを更新し、Teamsへ通知する

Microsoft LearnのPower Automateを使用したOffice スクリプトの実行では、Excelコネクタの「スクリプトの実行」アクションなどが案内されています。ただ、初心者が詰まりやすいのはコードよりも、保存場所、接続アカウント、権限です。最初は1つのファイル、1つの簡単なフローから試すのが安全です。

Power Automateで実行できないときの確認順
  1. ビジネスライセンスを確認する
    • Power AutomateでOffice Scriptsを使うには、Microsoft 365のビジネスライセンスが必要です。
  2. ファイルの場所を確認する
    • 個人のローカルファイルではなく、OneDrive for BusinessまたはSharePoint上のファイルを指定しているか確認します。
  3. 接続アカウントを確認する
    • フローの接続アカウントと、Excelファイルへアクセスできるアカウントが一致しているか確認します。
  4. 共有権限を確認する
    • スクリプト、ブック、SharePointライブラリの権限がずれていないか確認します。
  5. データ量と実行時間を確認する
    • 公式のプラットフォーム制限では、Excelの要求・応答サイズ5MB、範囲500万セル、同期Power Automate操作120秒などの制限があります。大きな表は範囲を分けて処理する前提で設計してください。

Office Scriptsを学ぶロードマップ:公式 → 実例 → 動画講座

最初の1週間プランをご紹介します。

スクロールできます
やること目安
Day1Excelに「自動化」タブが出るか、保存場所がOneDrive for Business / SharePointか確認する10分
Day2アクションレコーダーで、見出しの色変更や列幅調整を1回記録する20分
Day3記録されたコードの getRangesetValuesetValues を探して読む20分
Day4本記事の「B列に連番」コードをコピーしたファイルで動かす20分
Day5for 文、変数、最終行の記事を1つずつ開き、必要な部分だけ試す30分
Day6Power Automateの手動トリガーから、スクリプトを1回だけ実行する30分
Day7自分の業務で「毎回同じ整形」を1つ選び、次に自動化する候補としてメモする15分
スクロールできます
学習ステップやること向いている人
1. 公式ドキュメントMicrosoft LearnのOffice Scriptsドキュメントで、アクションレコーダー、
コードエディター、サンプル、Power Automate連携の位置関係を把握する
無料で全体像をつかみたい人
2. 個別記事の実例セル範囲、変数、for文、最終行、罫線、クリアなど小さな処理を試す仕事で使う処理から覚えたい人
3. 動画講座Office ScriptsとPower Automate連携の画面操作を通しで見る文字だけでは権限や保存場所の流れがつかみにくい人
動画で学ぶなら PR

Power Automate連携まで進めるなら、Udemyで講座を比較しておくと迷いにくいです

「文字だけだと画面の流れがつかみにくい」「Power Automateの接続設定で止まりそう」と感じる場合は、動画講座でOffice ScriptsとPower Automate連携をまとめて確認すると、迷う時間を減らしやすくなります。

見るべきポイント Power Automate連携まで扱っているか
失敗しにくい選び方 更新日・無料プレビュー・レビューを確認
向いている人 文字だけだと設定画面で迷いやすい人

※価格・割引・返金条件・講座内容は変わる場合があります。購入前にUdemy上で最新情報をご確認ください。

よくある質問とまとめ

Office Scriptsは無料で使えますか?

対応するMicrosoft 365プランに含まれていれば、Office Scriptsだけを追加購入する必要はありません。ただし、個人・家庭向けプランでは機能が限られる場合があり、会社の環境でも管理者設定によって表示されないことがあります。まずExcelに「自動化」タブが出るか確認し、必要に応じてMicrosoft 365のプラン比較記事でプランの違いを確認してください。

デスクトップ版Excelでは使えませんか?

使える場合があります。Office ScriptsはExcel on the webだけの機能ではなく、Windows版ExcelやMac版Excelでも対応が整理されています。ただし、アクションレコーダーやPower Automate連携まで含めると環境差があるため、Microsoft公式のプラットフォーム対応一覧と自分のExcel画面で確認してください。

VBAとどちらを先に学ぶべきですか?

デスクトップExcel中心ならVBA、Microsoft 365上の共有ExcelやPower Automate連携が中心ならOffice Scriptsが向いています。既存VBA資産がある場合は、無理に置き換えず、クラウド化したい処理だけOffice Scriptsで試すのがおすすめです。

TypeScriptを知らないと無理ですか?

アクションレコーダーで記録するだけなら不要です。コードを編集する段階では、変数、関数、配列、for文だけ先に覚えると読みやすくなります。

覚えて帰る2つの判断軸

  • ①「言語名」ではなく「ファイルの置き場所+自動実行したいか」で選ぶ
    • OneDrive for Business/SharePoint上のExcelをPower Automateで動かしたいならOffice Scripts、ローカルExcel中心ならVBA。
  • ② Power Automate連携でつまずく原因の大半はコードではなく、保存場所・接続アカウント・共有権限
    • コードを疑う前に、まずこの3つをチェックする。

今日できる2つの行動

  1. 30秒テスト
    • Excelを開き、リボンに「自動化」タブが出るかを確認する。出なければライセンス・保存場所・組織設定のどれが原因かを切り分ける(本記事「自動化タブが出ないときの切り分け」参照)。
  2. 10分テスト
    • 適当なExcelをコピーし、本記事の「B列に連番」コードをコードエディターに貼って実行する。実行前/実行後の表どおりに動けば、Office Scriptsで定型作業が動かせる状態は確保できている。
Schedikaのガントチャート画面。タスク一覧と日付軸、進捗バーが表示されている
S Schedika ローカルガントチャート
PR・自社製品 無料Liteあり

工程表づくりは、自動化より専用ツール化した方が早い場合があります

Office ScriptsはExcelのくり返し操作を自動化するのに向いています。一方で、ガントチャートや工程表を毎回作り直している場合は、コードを書くよりも専用ツールで置き換えた方がラクな場面もあります。

  • 外部送信なし
  • Excelへ提出しやすい
  • インストール不要

※無料Lite版とStandard版の違い、動作環境、価格はリンク先で確認できます。

次の1本はこれ

「B列に連番」コードを動かせた人が、コードを少しでも読めるようにする最短ルートは getRangeでセルを指す感覚をつかむこと です。Office Scriptsのほぼすべての処理は「範囲を取る → 値や書式を変える」の組み合わせなので、ここを先に押さえると残りの記事が一気に読みやすくなります。

そのほかの深掘り記事(必要になったときに開く)

変数・繰り返し・最終行など、コードを書き始めたときに具体的な疑問が出てから読むと吸収しやすい記事群です。一度に全部読む必要はありません。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次