カテゴリ: Office Scripts 更新日: 2026/02/01

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

シートコピー処理を自動化するベストプラクティス
シートコピー処理を自動化するベストプラクティス

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

生徒

「毎回同じExcelシートをコピーして名前を変える作業が大変です。自動化できますか?」

先生

「できます。Office Scriptsを使えば、シートのコピー作業を一瞬で終わらせられます。」

生徒

「パソコンもあまり触ったことがないんですが、それでも大丈夫ですか?」

先生

「Excelの画面を操作する感覚で書けるので、順番に理解すれば問題ありません。今日はシートコピー自動化のコツを見ていきましょう。」

1. Office Scriptsとは?Excelシート操作を自動化する仕組み

1. Office Scriptsとは?Excelシート操作を自動化する仕組み
1. Office Scriptsとは?Excelシート操作を自動化する仕組み

Office Scriptsとは、Excel Onlineで使える自動化機能です。人がマウスで行っている操作を、文字で書いた命令としてExcelに伝えます。 たとえば「このシートをコピーする」「名前を変更する」といった作業を、ボタン一つで実行できるようになります。

プログラミングと聞くと難しそうですが、Office ScriptsはExcel専用に作られているため、 普段Excelを使っている人ほど理解しやすいのが特徴です。 Excelワークブック全体やワークシートを操作できるので、事務作業の効率化にとても向いています。

2. シートコピー処理とは?手作業との違いを理解する

2. シートコピー処理とは?手作業との違いを理解する
2. シートコピー処理とは?手作業との違いを理解する

シートコピー処理とは、既存のワークシートを複製して、新しいシートを作る操作のことです。 手作業では、シート名を右クリックして「移動またはコピー」を選び、チェックを入れて…と複数の手順が必要です。

Office Scriptsでは、この一連の流れを一行ずつの命令として書きます。 料理で例えるなら、「材料を切る」「炒める」「盛り付ける」を順番にレシピとして書くイメージです。 同じレシピを何度も使えるので、ミスも減り、作業時間も短くなります。

3. シートコピーの基本コードを書いてみよう

3. シートコピーの基本コードを書いてみよう
3. シートコピーの基本コードを書いてみよう

まずは一番シンプルなシートコピーの例です。 このコードは、今表示しているシートをコピーして、新しいシートを作成します。


function main(workbook: ExcelScript.Workbook) {
  const sheet = workbook.getActiveWorksheet();
  sheet.copy();
}

workbookはExcelファイル全体、worksheetはその中の1枚のシートを表します。 「copy」は「コピーしなさい」という命令です。 英単語の意味そのままなので、辞書感覚で覚えていくと理解しやすくなります。

4. コピーしたシートに名前を付けるベストな方法

4. コピーしたシートに名前を付けるベストな方法
4. コピーしたシートに名前を付けるベストな方法

シートをコピーしただけでは、同じような名前が並んでしまい、後から分かりにくくなります。 そこで、コピー後にシート名を変更するのがベストプラクティスです。


function main(workbook: ExcelScript.Workbook) {
  const baseSheet = workbook.getActiveWorksheet();
  const newSheet = baseSheet.copy();
  newSheet.setName("コピーしたシート");
}

「setName」は名前を付ける命令です。 ノートにタイトルを書くような感覚で、シートの役割がすぐ分かる名前を付けましょう。 これだけで、Excelワークブック全体の見やすさが大きく変わります。

5. 同じシートを何枚もコピーする場合の考え方

5. 同じシートを何枚もコピーする場合の考え方
5. 同じシートを何枚もコピーする場合の考え方

月別や日別のシートを作る場合、同じシートを何枚もコピーしたいことがあります。 そんなときは、同じ処理を繰り返す書き方を使います。 繰り返しとは「同じ作業を何回も行う」という意味です。


function main(workbook: ExcelScript.Workbook) {
  const sheet = workbook.getActiveWorksheet();
  for (let i = 1; i <= 3; i++) {
    const copied = sheet.copy();
    copied.setName("作業用シート" + i);
  }
}

「for」は回数を指定して繰り返すための書き方です。 ここでは3回コピーし、「作業用シート1」「作業用シート2」と順番に名前を付けています。 人が数字を書き換える代わりに、Excelが自動でやってくれます。

6. 既存シート名と重ならないようにする工夫

6. 既存シート名と重ならないようにする工夫
6. 既存シート名と重ならないようにする工夫

シート名がすでに存在すると、エラーになることがあります。 そのため、コピー前に「同じ名前があるか」を確認する考え方が大切です。 これは安全運転のようなものです。


function main(workbook: ExcelScript.Workbook) {
  const sheets = workbook.getWorksheets();
  const base = workbook.getActiveWorksheet();
  const newSheet = base.copy();
  newSheet.setName("バックアップ_" + sheets.length);
}

「getWorksheets」はすべてのシートを取得する命令です。 シートの枚数を使って名前を決めることで、重複を避けやすくなります。 初心者のうちは、このようなシンプルな工夫がとても重要です。

7. シートコピー自動化のベストプラクティスまとめ的考え方

7. シートコピー自動化のベストプラクティスまとめ的考え方
7. シートコピー自動化のベストプラクティスまとめ的考え方

Office Scriptsでシートコピー処理を自動化するときは、 「どのシートをコピーするのか」「コピー後に何をするのか」を最初に決めることが大切です。

手作業を紙に書き出してから、それをコードに置き換えると失敗しにくくなります。 Excel操作の延長線として考えることで、プログラミング未経験の人でも無理なく理解できます。 シートコピーはOffice Scripts学習の入り口として、とてもおすすめのテーマです。

カテゴリの一覧へ
新着記事
New1
Office Scripts
Office Scriptsで日付判定!Excel条件付き書式を自動化して期限管理をラクにする方法
New2
Office Scripts
Office Scripts普及の歴史とMicrosoftの方向性!Excel自動化が進化してきた流れをやさしく解説
New3
Excel VBA
Excel VBA関数を用途別に作成!計算・文字列処理の基本を初心者向けに解説
New4
Office Scripts
Office Scriptsで条件付き書式を自動化!数値変化に応じてExcelの書式を自動更新する方法
人気記事
No.1
Java&Spring記事人気No1
Excel VBA
Excelマクロのセキュリティ設定の基本!安全に実行するための信頼センター設定まとめ
No.2
Java&Spring記事人気No2
Office Scripts
Office Scriptsでできること・できないことを完全整理!Excel自動化の基本と限界をやさしく解説
No.3
Java&Spring記事人気No3
Excel VBA
目的別にモジュールを分割する方法!処理単位で整理して見やすくするテクニック
No.4
Java&Spring記事人気No4
Excel VBA
Excel VBAとOffice Scriptsの違いを比較!初心者でもわかる学ぶべきスキル
No.5
Java&Spring記事人気No5
Excel VBA
Excel VBA基本文法の総まとめ!初心者が必ず押さえるべき20の基礎ポイント完全ガイド
No.6
Java&Spring記事人気No6
Office Scripts
Office Scriptsで条件付き書式を自動化!Excel自動化初心者向けスクリプト操作の基本
No.7
Java&Spring記事人気No7
Excel VBA
Excel VBAの開発環境を最速で整える!VBEの開き方から基本操作まで完全ガイド
No.8
Java&Spring記事人気No8
Office Scripts
Office Scriptsで日付判定!Excel条件付き書式を自動化して期限管理をラクにする方法