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

Office Scriptsの基本!ループ処理(for / for…of)を使ってExcel操作を自動化する方法

ループ処理(for/for…of)をExcel操作に応用
ループ処理(for/for…of)をExcel操作に応用

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

生徒

「Office Scriptsでたくさんのセルを一気に操作したいんですが、1つずつ書くしかないんですか?」

先生

「同じ作業を何度も行うときは、ループ処理を使うと一気に自動化できます。」

生徒

「ループって聞いたことはありますが、難しそうで不安です……。」

先生

「Excelで行を上から順番に処理する感覚と同じです。forやfor…ofを使えば、初心者でもすぐ理解できますよ。」

1. Office Scriptsとは?

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

Office Scriptsは、Excel Onlineで使えるExcel自動化の仕組みです。 セル入力、行や列の処理、データの整理などを、TypeScriptのコードでまとめて実行できます。

特に行数が多いExcelファイルでは、ループ処理を使うことで、 人が1行ずつ操作していた作業を一瞬で終わらせられます。

2. ループ処理とは何かをやさしく理解する

2. ループ処理とは何かをやさしく理解する
2. ループ処理とは何かをやさしく理解する

ループ処理とは、「同じ作業を決められた回数だけ繰り返す」仕組みです。 例えるなら、スタンプを1枚ずつ順番に押していく作業と似ています。

Excelで言えば、「1行目から10行目まで同じ処理をする」といった操作が、 ループ処理の得意分野です。

3. for文の基本とExcel操作への応用

3. for文の基本とExcel操作への応用
3. for文の基本とExcel操作への応用

for文は、「何回繰り返すか」が決まっているときに使います。 行番号を使ってセルを順番に処理する場合にとても便利です。


function main(workbook: ExcelScript.Workbook) {
  const sheet = workbook.getActiveWorksheet();
  for (let i = 1; i <= 5; i++) {
    sheet.getRange(`A${i}`).setValue("チェック済み");
  }
}

このコードでは、A1からA5までのセルに同じ文字を順番に書き込みます。 人が1セルずつ入力する必要はありません。

4. for文は行番号を扱うときに強い

4. for文は行番号を扱うときに強い
4. for文は行番号を扱うときに強い

for文は、行番号や列番号を数で管理するのが得意です。 「何行目から何行目まで」といった指定がある処理に向いています。

Excelの行数が決まっている帳票や、固定フォーマットの表では、 for文を使うことで処理を簡単に書けます。

5. for…of文とは何かを理解する

5. for…of文とは何かを理解する
5. for…of文とは何かを理解する

for…of文は、「配列の中身を1つずつ取り出す」ためのループ処理です。 行番号を意識せず、データそのものを順番に扱えます。

Excelの表データを配列として扱う場合に、とても読みやすい書き方になります。

6. for…of文を使ったExcel操作の例

6. for…of文を使ったExcel操作の例
6. for…of文を使ったExcel操作の例

次は、配列に入った値を順番にExcelへ書き込む例です。 for…of文を使うことで、処理内容が直感的になります。


function main(workbook: ExcelScript.Workbook) {
  const sheet = workbook.getActiveWorksheet();
  const names = ["田中", "佐藤", "鈴木"];
  let row = 1;
  for (const name of names) {
    sheet.getRange(`B${row}`).setValue(name);
    row++;
  }
}

配列の中身を順番に処理するため、 「誰の名前を処理しているか」が分かりやすいのが特徴です。

7. forとfor…ofの使い分けポイント

7. forとfor…ofの使い分けポイント
7. forとfor…ofの使い分けポイント

for文は「回数」や「行番号」を重視する処理に向いています。 一方、for…of文は「データの中身」を順番に扱いたいときに便利です。

Office ScriptsでExcel操作をするときは、 表の構造や処理内容に合わせて使い分けることが大切です。

8. ループ処理を理解するとExcel自動化が一気に楽になる

8. ループ処理を理解するとExcel自動化が一気に楽になる
8. ループ処理を理解するとExcel自動化が一気に楽になる

ループ処理を使えるようになると、 数十行、数百行のExcel操作を一瞬で終わらせられます。

Office ScriptsとTypeScriptのfor文・for…of文は、 Excel自動化の基礎であり、作業効率を大きく変える重要なポイントです。 Excelの画面を思い浮かべながらコードを書くことで、自然と理解が深まります。

まとめ

まとめ
まとめ

今回の記事では、Excel Onlineの自動化ツールであるOffice Scriptsを用いて、効率的に業務を改善するための「ループ処理」について詳しく解説しました。プログラミング初心者の方にとって、最初は「繰り返し」という概念が少し難しく感じるかもしれませんが、実は私たちが日常的にExcelで行っている「上から順番にデータを確認して、特定の文字を入力する」という作業そのものです。

Office Scriptsでの繰り返し処理の重要性

Excelの業務自動化において、ループ処理(for文やfor…of文)をマスターすることは、脱・初心者への第一歩と言えます。例えば、100行あるデータに対して、特定の条件に一致するものだけ色を変えたり、合計を計算したりする場合、手作業では時間がかかりますし、入力ミスも発生しやすくなります。しかし、Office Scriptsでループ処理を記述すれば、コンピューターが正確かつ一瞬で全ての行を処理してくれます。

特に現代のビジネスシーンでは、DX(デジタルトランスフォーメーション)が推進されており、クラウド上でのExcel操作を自動化できるOffice Scriptsの需要は非常に高まっています。VBA(Visual Basic for Applications)に慣れている方も、TypeScriptベースのOffice Scriptsを学ぶことで、Web版ExcelやPower Automateとの連携など、活用の幅が格段に広がります。

for文とfor…of文の使い分けを再確認

記事の中で紹介した通り、ループ処理には主に2つのパターンがあります。それぞれの特徴を理解して、状況に応じて使い分けるのがスマートなコードを書くコツです。

  • for文:「i」という変数を使って、「1行目から10行目まで」といった具合に回数やインデックス(番号)を細かく制御したい時に最適です。
  • for…of文:「データの集まり(配列)」から中身を一つずつ取り出す時に使います。行番号を意識せずに済むため、コードが読みやすく、ミスが減るメリットがあります。

実践的なサンプルコード:データの条件判定と自動入力

まとめとして、もう少し実戦に近いコードを見てみましょう。テストの点数が並んでいるリストを想定し、80点以上なら「合格」と入力する処理をfor文で書いてみます。Office Scriptsの基本構造であるmain関数の中に記述します。


function main(workbook: ExcelScript.Workbook) {
  // アクティブなワークシートを取得
  const sheet = workbook.getActiveWorksheet();
  
  // 1行目から10行目までをループで回す
  for (let i = 1; i <= 10; i++) {
    // A列のセルから点数を取得
    let score = sheet.getRange(`A${i}`).getValue() as number;
    
    // もし80点以上なら、B列に「合格」と書き込む
    if (score >= 80) {
      sheet.getRange(`B${i}`).setValue("合格");
      // セルの背景色を薄い青色に変更(おまけの装飾)
      sheet.getRange(`B${i}`).getFormat().getFill().setColor("#D9EAD3");
    } else {
      sheet.getRange(`B${i}`).setValue("不合格");
    }
  }
}

このコードでは、getRangeメソッドにテンプレートリテラル(バッククォートを使った書き方)を利用して、変数iを組み込んでいます。これにより、ループが回るたびに「A1」「A2」「A3」……と参照先が自動で切り替わります。これがループ処理の醍醐味ですね。

VBAから移行する方へのヒント

もしあなたがExcel VBAに慣れているなら、Office Scriptsの書き方に戸惑うかもしれません。VBAでのFor Next構文と比較してみましょう。考え方は全く同じです。


Sub CheckScores()
    Dim i As Integer
    For i = 1 To 10
        If Cells(i, 1).Value >= 80 Then
            Cells(i, 2).Value = "合格"
        Else
            Cells(i, 2).Value = "不合格"
        End If
    Next i
End Sub

VBAのCells(i, 1)が、Office ScriptsではgetRange(`A${i}`)に対応しているイメージを持つと理解がスムーズです。Office ScriptsはWeb標準の技術(TypeScript)を使っているため、一度覚えてしまえば、将来的に他のWeb開発やアプリ開発にも役立つスキルとなります。

最後に:一歩ずつ自動化の幅を広げよう

プログラミングの学習で大切なのは、実際に手を動かしてコードを書いてみることです。まずは5行、10行といった短い範囲のループから試してみてください。自分の書いたコードでExcelのセルがパラパラと埋まっていく様子を見るのは、とても爽快で楽しい経験になるはずです。

Office Scriptsを使いこなせれば、毎日行っている定型業務を「ボタンひとつ」で終わらせることができます。浮いた時間でよりクリエイティブな仕事に取り組んだり、早めに帰宅してリフレッシュしたりと、あなたのワークスタイルをより良く変えていくきっかけにしてください。

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

生徒

「先生、ありがとうございました!for文を使うと、今まで手作業でコピペしていた作業がこんなに短いコードで書けるんですね。iが1、2、3……と増えていく仕組みが分かったら、なんだかパズルみたいで楽しくなってきました。」

先生

「その感覚、とても大切ですよ!パズルのピースを組み合わせるように、どの範囲を繰り返すかを指定してあげるだけです。最初はエラーが出ることもありますが、それはコンピューターが『指示が少し曖昧だよ』と教えてくれているだけなので、怖がる必要はありません。」

生徒

「そう言ってもらえると安心します。for…of文の方は、データのリストをそのまま扱えるから、名簿の処理とかに向いていそうですね。使い分けも意識してみます!」

先生

「素晴らしいですね。もし大量のデータを扱うときは、1セルずつ操作するよりも、一度に配列に読み込んで処理する『一括処理』というテクニックもあります。でも、まずは今回のループ処理で1行ずつ確実に操作できるようになることが、上達への最短ルートです。」

生徒

「はい!明日からの実務で、まずは簡単な進捗管理の表を自動化してみようと思います。Office Scriptsがあれば、Web版のExcelでも自動化できるから、場所を選ばずに仕事ができて便利ですね。」

先生

「その通り。クラウド時代の自動化スキルは、一生の武器になります。分からないことがあったら、またいつでも聞いてくださいね。応援しています!」

カテゴリの一覧へ
新着記事
New1
Office Scripts
Office Scriptsの基本!企業環境で安全にExcel自動化を使うための利用制限と管理者設定
New2
Office Scripts
Office Scriptsの基本!TypeScriptの型注釈を理解してExcel自動化を安全に書く方法
New3
Office Scripts
Office Scriptsの基本!Excel自動化で使うgetValues・setValues完全ガイド【初心者向け】
New4
Office Scripts
Office Scriptsの基本!エラー表示とログ確認でExcel自動化を安全に進める方法
人気記事
No.1
Java&Spring記事人気No1
Excel VBA
Excel VBAモジュール共有術!複数のブックでマクロを使い回す最適構成
No.2
Java&Spring記事人気No2
Excel VBA
Excel VBAのプロジェクト構成とモジュール管理!標準・シート・ThisWorkbookの違い
No.3
Java&Spring記事人気No3
Excel VBA
個人用マクロブック(PERSONAL.XLSB)で作る最強の共通ライブラリ化ガイド
No.4
Java&Spring記事人気No4
Excel VBA
VBAモジュールを安全にエクスポート・インポートする方法と注意点
No.5
Java&Spring記事人気No5
Excel VBA
Excel VBAのループ処理を徹底解説!For文とDo Loopで繰り返しを自動化
No.6
Java&Spring記事人気No6
Excel VBA
ThisWorkbookに書くべき処理とは?VBAプロジェクトの正しい構成方法
No.7
Java&Spring記事人気No7
Excel VBA
Excel VBAのブレークポイント設定と使い方!初心者でも理解できるデバッグの基本
No.8
Java&Spring記事人気No8
Office Scripts
Office Scriptsの基本!関数分割で読みやすいExcel自動化コードを設計する方法