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

Office Scriptsの基本!配列・オブジェクト操作でExcel自動化をやさしく理解しよう

配列・オブジェクト操作の基礎
配列・オブジェクト操作の基礎

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

生徒

「Office Scriptsでたくさんのデータをまとめて処理したいんですが、どうやって扱えばいいんですか?」

先生

「その場合は、配列やオブジェクトを使うと、Excelのデータを整理しながら自動化できます。」

生徒

「配列とかオブジェクトって、聞いたことはありますが難しそうです……。」

先生

「Excelで表を扱う感覚と同じです。行や列をまとめて考えると、とても分かりやすくなりますよ。」

1. Office Scriptsとは?

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

Office Scriptsは、Excel Onlineで使えるExcel自動化の仕組みです。 手作業で行っているコピー、集計、入力作業を、TypeScriptというプログラミング言語でまとめて実行できます。

Excelのセルや行、表をまとめて扱う場面では、 配列やオブジェクトという考え方が自然に登場します。

2. 配列とは何かをやさしく理解する

2. 配列とは何かをやさしく理解する
2. 配列とは何かをやさしく理解する

配列とは、「同じ種類のものを順番に並べた箱」です。 Excelで言うと、1行分のデータや、1列分の数値をまとめたイメージです。

例えば、今日の売上金額を横に並べた行は、プログラムでは配列として扱えます。 番号順にデータが入っているのが特徴です。

3. 配列の基本的な書き方

3. 配列の基本的な書き方
3. 配列の基本的な書き方

Office Scriptsでは、配列を使って複数の値をまとめて扱えます。 数字や文字を並べるだけで簡単に作れます。


function main(workbook: ExcelScript.Workbook) {
  const numbers: number[] = [10, 20, 30];
  const sheet = workbook.getActiveWorksheet();
  sheet.getRange("A1").setValue(numbers[0]);
}

numbers[0]は、配列の一番最初の値を意味します。 Excelのセル番号のように、順番でデータを取り出せます。

4. 配列はExcelの行・列操作と相性が良い

4. 配列はExcelの行・列操作と相性が良い
4. 配列はExcelの行・列操作と相性が良い

Excelでは、行や列に同じ種類のデータが並びます。 そのため、配列はExcel自動化ととても相性が良い仕組みです。

セルを1つずつ操作するよりも、配列でまとめて考えることで、 コードが短くなり、読みやすくなります。

5. オブジェクトとは何かをイメージで理解する

5. オブジェクトとは何かをイメージで理解する
5. オブジェクトとは何かをイメージで理解する

オブジェクトは、「名前付きの箱が集まったもの」です。 Excelで言うと、1行の中に「名前」「数量」「金額」といった項目がある状態です。

配列が番号で管理するのに対して、 オブジェクトは「項目名」でデータを管理します。

6. オブジェクトの基本的な書き方

6. オブジェクトの基本的な書き方
6. オブジェクトの基本的な書き方

Office Scriptsでは、オブジェクトを使うことで、 データの意味がとても分かりやすくなります。


function main(workbook: ExcelScript.Workbook) {
  const item = {
    name: "りんご",
    price: 120
  };
  const sheet = workbook.getActiveWorksheet();
  sheet.getRange("B1").setValue(item.name);
}

item.nameのように、 名前を指定して値を取り出せるのがオブジェクトの特徴です。

7. 配列とオブジェクトを組み合わせる

7. 配列とオブジェクトを組み合わせる
7. 配列とオブジェクトを組み合わせる

実際のExcel自動化では、 「オブジェクトの配列」を使う場面が多くなります。 これは、表データそのものを表現する形です。


function main(workbook: ExcelScript.Workbook) {
  const items = [
    { name: "りんご", price: 120 },
    { name: "みかん", price: 80 }
  ];
  const sheet = workbook.getActiveWorksheet();
  sheet.getRange("C1").setValue(items[1].name);
}

行ごとのデータを1つのオブジェクトとして扱えるため、 Excelの表構造ととても近い考え方になります。

8. 初心者が配列・オブジェクトを学ぶ意味

8. 初心者が配列・オブジェクトを学ぶ意味
8. 初心者が配列・オブジェクトを学ぶ意味

配列とオブジェクトは、最初は難しく感じますが、 Excelの「行」「列」「項目」をプログラムで表現するための基本です。

Office ScriptsでのExcel自動化では、 この2つを理解することで、複雑な処理も整理して書けるようになります。 焦らず、Excelの画面を思い浮かべながら覚えるのがコツです。

まとめ

まとめ
まとめ

今回の記事では、Excel Onlineの自動化ツールであるOffice Scripts(オフィススクリプト)において、避けては通れない最重要概念である「配列」と「オブジェクト」について詳しく解説してきました。これらは、一見するとプログラミング特有の難しい用語に聞こえるかもしれません。しかし、その実態は私たちが普段Excelのシート上で目にしている「行」や「列」、そして「見出し付きのデータ」そのものをプログラムの世界で表現したものです。

配列とオブジェクトを使いこなすメリット

なぜ配列やオブジェクトを学ぶ必要があるのでしょうか。それは、Excelのセルを一つひとつ「A1セルを書き換える」「B1セルを読み込む」といった個別の操作で処理しようとすると、プログラムが非常に長くなり、実行速度も遅くなってしまうからです。Office Scriptsの真価は、大量のデータを一括でメモリ上に読み込み、プログラム内で高速に加工してから、最後にまとめてシートへ書き戻す手法にあります。この「一括処理」を支える器こそが、配列とオブジェクトなのです。

配列の操作:データの列や行を丸ごと扱う

配列は、同じ性質のデータを一列に並べたものです。例えば、1ヶ月分の売上リストや、社員名の名簿などがこれに該当します。Office Scripts(TypeScript)では、[ ](角括弧)を使ってデータを囲むことで配列を定義します。


function main(workbook: ExcelScript.Workbook) {
  // 文字列の配列を作成
  const fruits: string[] = ["りんご", "バナナ", "メロン", "ぶどう"];

  // 配列の3番目(インデックスは2)を取り出す
  const favorite = fruits[2];

  // シートのセルに出力
  const sheet = workbook.getActiveWorksheet();
  sheet.getRange("A1").setValue(favorite);
}

上記のコードでは、「メロン」がA1セルに入力されます。プログラミングの世界では、順番を数える時に「0」から始めるというルール(ゼロベースインデックス)があるため、fruits[2]が3番目の要素を指す点に注目しましょう。

オブジェクトの操作:意味のあるデータの塊を作る

一方で、オブジェクトは「名前」と「値」をペアにして管理する仕組みです。Excelの1行分のレコードを想像してください。「商品名:りんご」「単価:150円」「在庫:10個」といった、項目名(キー)とその中身(値)をセットで扱うのに最適です。


function main(workbook: ExcelScript.Workbook) {
  // 商品情報をオブジェクトで定義
  const product = {
    id: "P001",
    name: "高級メロン",
    price: 3000
  };

  // ドット記法で特定の項目を取り出す
  const message = product.name + "の価格は" + product.price + "円です。";
  
  const sheet = workbook.getActiveWorksheet();
  sheet.getRange("B1").setValue(message);
}

このように、product.nameと書くだけで中身にアクセスできるため、コードを読んだ時に「何のデータを扱っているのか」が一目で分かるようになります。これは、大規模なExcel自動化ツールを開発する際に、ミスを防ぐための非常に重要なテクニックです。

実践的な活用例:VBAとの比較

これまでVBA(Visual Basic for Applications)を使っていた方にとって、Office Scriptsの配列操作は少し独特かもしれません。しかし、モダンなJavaScript/TypeScriptの書き方を採用しているため、データの抽出や並び替えが非常にスマートに行えます。以下のサンプルは、複数のオブジェクトを配列に格納し、条件に合うものだけを処理するイメージです。


function main(workbook: ExcelScript.Workbook) {
  // オブジェクトの配列(表データ)
  const salesData = [
    { target: "東京支店", amount: 500000 },
    { target: "大阪支店", amount: 350000 },
    { target: "名古屋支店", amount: 420000 }
  ];

  const sheet = workbook.getActiveWorksheet();
  
  // ループ処理で配列の中身をセルに書き出す例
  salesData.forEach((data, index) => {
    sheet.getRange(index + 1, 0).setValue(data.target); // A列に支店名
    sheet.getRange(index + 1, 1).setValue(data.amount); // B列に売上額
  });
}

このように、Office Scriptsを学ぶことは、最新のWeb標準技術に触れることでもあります。Excel Onlineというブラウザ環境で動作するため、場所を選ばず、共同編集時にも威力を発揮します。まずは小さな配列操作から始めて、徐々に複雑なオブジェクト構造に慣れていきましょう。それが、効率的なExcel業務自動化への最短ルートとなります。

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

生徒

「先生、まとめありがとうございました!配列とオブジェクト、なんとなくイメージが掴めてきました。配列は『列』、オブジェクトは『1行分の名札付きデータ』って考えると分かりやすいですね。」

先生

「その通りです。素晴らしい理解ですね。Excelのシートを眺める時に、『ここは配列にできそうだな』とか『この表の1行はオブジェクトにまとめられるな』と意識するだけで、プログラミング的な思考が身につきますよ。」

生徒

「でも、配列の番号が『0』から始まるのは、ついつい間違えてしまいそうです。1番目が0番目になるんですよね?」

先生

「そうですね、そこは初心者の方が一番最初につまずくポイントです。でも大丈夫。Office Scriptsを書いていくうちに、自然と手が覚えていきます。最初はエラーが出ても、デバッグしながら修正していけば良いんです。」

生徒

「オブジェクトの『ドット記法』も便利ですね。item.priceみたいに書くと、中身が何なのか分かりやすくて、後から読み返した時に混乱しなさそうです。」

先生

「まさにそこがオブジェクトの利点です。VBAを使っていた頃よりも、より人間にとって分かりやすい言葉でコードが書けるようになるのがOffice Scriptsの魅力の一つですね。次は、この配列を使ってフィルタリング(抽出)したり、計算したりする方法にも挑戦してみましょう!」

生徒

「はい!どんどん自動化できる範囲を広げていきたいです。明日から職場の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
ThisWorkbookに書くべき処理とは?VBAプロジェクトの正しい構成方法
No.6
Java&Spring記事人気No6
Excel VBA
Excel VBAのループ処理を徹底解説!For文とDo Loopで繰り返しを自動化
No.7
Java&Spring記事人気No7
Excel VBA
Excel VBAのブレークポイント設定と使い方!初心者でも理解できるデバッグの基本
No.8
Java&Spring記事人気No8
Office Scripts
Office Scriptsの基本!関数分割で読みやすいExcel自動化コードを設計する方法