カテゴリ: Office Scripts 更新日: 2026/04/06

Office Scriptsの基本!Excel自動化で使う関数とコードの書き方

複数シートを効率的に管理するスクリプト集
複数シートを効率的に管理するスクリプト集

先生と生徒の会話形式で理解しよう

生徒

「Excelでシートがたくさん増えてきて、名前を変えたり並べ替えたりするのが大変です。自動でできませんか?」

先生

「できます。Office Scriptsを使えば、Excelのワークシートをまとめて整理したり、同じ作業を一気に実行できます。」

生徒

「プログラミングはやったことがなくて、パソコンもあまり触ったことがありません……。」

先生

「大丈夫です。Excelでいつも手でやっている操作を、文章みたいなコードにするだけです。今日は複数シートを効率的に管理する方法を見ていきましょう。」

1. Office Scriptsとは?

1. Office Scriptsとは?
1. Office Scriptsとは?

Office Scripts(オフィス スクリプト)とは、Excel Onlineで使える自動化の仕組みです。 Excelの画面にある「自動化」タブからスクリプトを実行すると、人がマウスで操作する代わりに、Excelが自動で作業してくれます。 たとえば「シートを作る」「シート名を変更する」「いらないシートを削除する」といった作業を、まとめて一瞬で終わらせることができます。

難しそうに見えますが、考え方はとてもシンプルです。 いつも自分がExcelでやっている操作を、順番に文章で指示するイメージです。 この指示を書くために使うのが、TypeScript(タイプスクリプト)という言語ですが、Office ScriptsではExcel専用の命令が用意されているため、初心者でも読みやすい形になっています。

2. 複数シート管理が大変になる理由

2. 複数シート管理が大変になる理由
2. 複数シート管理が大変になる理由

Excelで作業をしていると、「月別シート」「部署別シート」「日付ごとのシート」など、ワークシートがどんどん増えていきます。 最初は問題なくても、シートが10枚、20枚と増えると、管理がとても大変になります。

たとえば、次のような経験はありませんか。 毎回同じ名前のシートを作っている、並び順がバラバラで探しにくい、不要なシートを消し忘れる、すべてのシートに同じ文字を入力したい。 これらはすべて、Office Scriptsで自動化しやすい作業です。

Office Scriptsを使うと、Excelのワークブック全体(すべてのシートをまとめたもの)を一度に操作できます。 これが「複数シートを効率的に管理する」という意味です。

3. ワークブックとワークシートの基本

3. ワークブックとワークシートの基本
3. ワークブックとワークシートの基本

ここで、基本用語を整理します。 ワークブックとは、Excelファイル全体のことです。 一方で、下のタブに並んでいる一枚一枚のページをワークシートと呼びます。

Office Scriptsでは、まずワークブックを操作対象として受け取り、そこからワークシートを取り出して操作します。 これは「箱(ワークブック)の中に、たくさんのノート(ワークシート)が入っている」と考えると分かりやすいです。

複数シート管理のスクリプトでは、「すべてのシートを取得する」「特定の名前のシートを探す」といった処理がよく登場します。

4. すべてのシート名を取得するスクリプト

4. すべてのシート名を取得するスクリプト
4. すべてのシート名を取得するスクリプト

まずは、ワークブックの中にあるすべてのワークシート名を取得する基本的なスクリプトを見てみましょう。 これは複数シート管理の土台になります。


function main(workbook: ExcelScript.Workbook) {
  const sheets = workbook.getWorksheets();
  sheets.forEach(sheet => {
    console.log(sheet.getName());
  });
}

このコードでは、「ワークブックに入っているシートを全部集めて、順番に名前を表示する」ということをしています。 getWorksheetsは「すべてのシートを取得する」という命令です。 forEachは「一つずつ順番に見る」という意味で、初心者の方は「全部のシートに同じことをするための仕組み」と覚えれば十分です。

5. シートを自動で作成・名前変更する

5. シートを自動で作成・名前変更する
5. シートを自動で作成・名前変更する

次は、複数のシートをまとめて作成し、名前を付ける例です。 毎回同じようなシートを手で追加する作業は、Office Scriptsが得意とする分野です。


function main(workbook: ExcelScript.Workbook) {
  const sheet = workbook.addWorksheet("売上集計");
  sheet.getRange("A1").setValue("売上データ");
}

このスクリプトを実行すると、「売上集計」という名前のワークシートが自動で作られます。 addWorksheetは「新しいシートを追加する」命令です。 Excelで「+」ボタンを押しているのと同じことを、コードで行っています。

このように、シート作成と初期設定を一度に行えるため、作業のミスや手間を減らすことができます。

6. 不要なシートをまとめて削除する

6. 不要なシートをまとめて削除する
6. 不要なシートをまとめて削除する

複数シート管理では、「もう使わないシートを削除する」場面もよくあります。 Office Scriptsを使えば、条件に合うシートだけをまとめて削除できます。


function main(workbook: ExcelScript.Workbook) {
  const sheets = workbook.getWorksheets();
  sheets.forEach(sheet => {
    if (sheet.getName().includes("旧")) {
      sheet.delete();
    }
  });
}

この例では、シート名に「旧」という文字が含まれているシートを削除しています。 includesは「この文字が含まれているか」を調べる命令です。 「旧データ」「旧版」など、名前のルールを決めておくと、自動整理がとても楽になります。

7. すべてのシートに同じ内容を書き込む

7. すべてのシートに同じ内容を書き込む
7. すべてのシートに同じ内容を書き込む

最後に、複数のワークシートすべてに同じ文字を入力する例です。 これは「注意書き」や「作成日」などを一括で入れたいときに便利です。


function main(workbook: ExcelScript.Workbook) {
  const sheets = workbook.getWorksheets();
  sheets.forEach(sheet => {
    sheet.getRange("A1").setValue("このシートは自動生成されています");
  });
}

人の手で一枚ずつ入力すると時間がかかりますが、Office Scriptsなら一瞬です。 このような積み重ねが、Excel作業の大きな時短につながります。

複数シートを効率的に管理するスクリプト集は、Excel自動化の第一歩としてとても重要です。 まずは「シートを取得する」「順番に処理する」という考え方に慣れていきましょう。

まとめ

まとめ
まとめ

Office Scriptsは、Excel作業を効率化したい方にとって非常に強力な自動化機能です。これまで手作業で行っていたシートの作成や名前変更、削除、データ入力といった操作を、まとめて一括処理できる点が大きな特徴です。特に、複数シート管理においてはその効果が顕著であり、日々の業務の中で繰り返し発生する作業を短時間で正確に実行できます。

Excel自動化というと難しく感じるかもしれませんが、実際には「いつも行っている操作を順番に書くだけ」というシンプルな考え方で成り立っています。ワークブックという箱の中にあるワークシートを取り出し、一つずつ処理していく流れを理解すれば、応用範囲は一気に広がります。今回紹介した「シートの一覧取得」「シートの作成」「不要シートの削除」「全シートへの一括入力」といった基本操作は、どのような業務にも応用できる重要な基礎です。

また、forEachを使った繰り返し処理や、includesによる条件判定など、基本的な構文を覚えることで、より柔軟な自動化が可能になります。例えば「特定の文字を含むシートだけ処理する」「特定の条件に合うシートにだけ値を入力する」といった高度な処理も簡単に実現できます。こうした積み重ねが、Excel作業の品質向上と作業時間の大幅な削減につながります。

さらに、Office ScriptsはExcel Onlineで動作するため、環境に依存せずに利用できる点も魅力です。チームで同じスクリプトを共有することで、作業の標準化やミスの削減にもつながります。初心者の方でも、まずは簡単なスクリプトから始めて、少しずつ処理内容を増やしていくことで、自然と理解が深まっていきます。

サンプルプログラム(応用例)

ここでは、複数の処理を組み合わせた応用的なサンプルを紹介します。シート名の一覧を取得し、「旧」が含まれるシートを削除し、残ったシートに共通のメッセージを入力します。


function main(workbook: ExcelScript.Workbook) {
  const sheets = workbook.getWorksheets();

  sheets.forEach(sheet => {
    const name = sheet.getName();

    if (name.includes("旧")) {
      sheet.delete();
    } else {
      sheet.getRange("A1").setValue("最新データです");
    }
  });
}

このように、条件分岐と繰り返し処理を組み合わせることで、実務でそのまま使えるレベルの自動化が実現できます。単純な操作の積み重ねでも、全体としては非常に大きな効率化につながる点が、Office Scriptsの魅力です。

先生と生徒の振り返り会話

生徒

「Office Scriptsって難しそうだと思っていましたが、やっていることは意外とシンプルなんですね。」

先生

「その通りです。Excelで普段やっている操作を、そのままコードに置き換えているだけです。」

生徒

「シートをまとめて処理できるのが便利ですね。一枚ずつ操作する必要がなくなるのは助かります。」

先生

「複数シート管理は特に効果が出やすい部分です。繰り返し処理を覚えると、一気にできることが増えます。」

生徒

「条件を付けて削除したり、入力したりできるのも便利ですね。」

先生

「はい。includesのような条件判定を使えば、必要なシートだけを操作できます。これが自動化の基本です。」

生徒

「少しずつでも書けるようになれば、作業時間がかなり減りそうです。」

先生

「その実感が大切です。まずは簡単なスクリプトから始めて、少しずつ自分の作業に合わせて改良していきましょう。」

カテゴリの一覧へ
新着記事
New1
Excel VBA
Excel VBAで業務自動化!初心者でもわかる定型作業の自動化例
New2
Excel VBA
VBAの基本構造を理解しよう!モジュール・プロシージャ・関数の役割まとめ
New3
Office Scripts
Office Scriptsで大量シートを効率管理!Excelワークブック最適構造と自動化テクニック
New4
Excel VBA
Excel VBAが今でも使われ続ける理由とは?現場で評価されるポイントを徹底解説
人気記事
No.1
Java&Spring記事人気No1
Office Scripts
Office Scriptsで別ブックを開いてデータ取得する方法|OneDrive・SharePoint連携でExcel自動化
No.2
Java&Spring記事人気No2
Excel VBA
Excel VBA参照設定エラー「参照が見つかりません」を完全解説!初心者でも原因と対処法がわかる
No.3
Java&Spring記事人気No3
Excel VBA
Excel VBAの開発環境を最速で整える!VBEの開き方から基本操作まで完全ガイド
No.4
Java&Spring記事人気No4
Excel VBA
Excel VBAモジュール共有術!複数のブックでマクロを使い回す最適構成
No.5
Java&Spring記事人気No5
Excel VBA
Excel VBAは今後なくなる?将来性と企業での活用状況を詳しく解説
No.6
Java&Spring記事人気No6
Excel VBA
個人用マクロブック(PERSONAL.XLSB)で作る最強の共通ライブラリ化ガイド
No.7
Java&Spring記事人気No7
Excel VBA
Excel VBAで列の追加・行の削除を自動化!InsertとDeleteの使い方を初心者向けに徹底解説
No.8
Java&Spring記事人気No8
Excel VBA
VBAのコメントの書き方を完全ガイド!初心者でもわかる説明文の付け方