Office Scriptsで配列JSONをテーブル化!Excel自動化とJSONデータ操作の基本
生徒
「Office ScriptsでJSONデータをExcelのテーブルに変換したいんですが、初心者でもできますか?」
先生
「できますよ。Office Scriptsを使えば、配列JSONを読み取ってExcelに表として自動で作成できます。」
生徒
「JSONって何ですか?なんだか難しそうです。」
先生
「JSONはデータの入れ物のようなものです。名簿の情報を整理した箱だと思ってください。それをExcelの表に並べ替えるだけなんです。」
1. Office Scriptsとは?
Office Scriptsは、Excel Onlineで使える自動化機能です。Excelの操作をコードで記録し、ボタン一つで同じ作業を繰り返せます。たとえば、セルに値を入力する、表を作る、データを並び替えるなどの作業を自動化できます。
Office ScriptsはTypeScriptというプログラミング言語を使います。TypeScriptはJavaScriptをもとにした言語で、Web開発でもよく使われています。難しく聞こえますが、基本は「命令を書く」だけです。
今回の記事では、配列JSONというデータ形式をExcelのテーブルに変換する方法を解説します。Excel自動化、JSON操作、データ変換といったキーワードを理解することで、業務効率化にも役立ちます。
2. JSONと配列の基本をやさしく解説
JSONとは、データを整理するための書き方です。名前と値をセットにして保存します。たとえば、名前が山田、年齢が二十歳、というようにまとめます。
配列とは、データを順番に並べたものです。箱が横一列に並んでいるイメージです。その箱の中にJSONが入っていると考えてください。
つまり配列JSONとは、複数人の名簿データが並んでいる状態です。このデータをExcelの表に変換すると、とても見やすくなります。
3. 配列JSONを作ってみよう
まずは簡単な配列JSONをスクリプト内で作成します。三人分の名簿データを用意します。
function main(workbook: ExcelScript.Workbook) {
const data = [
{ name: "山田", age: 20, city: "大阪" },
{ name: "佐藤", age: 25, city: "東京" },
{ name: "鈴木", age: 22, city: "名古屋" }
];
console.log(data);
}
このように波かっこで囲まれた部分がJSONです。nameやageのような部分をキー、山田や二十のような部分を値と呼びます。キーは見出し、値は中身と考えるとわかりやすいです。
4. JSONデータをセルに書き出す
次に、この配列JSONをExcelのセルに書き込みます。まずは一行ずつ書き込む方法です。
function main(workbook: ExcelScript.Workbook) {
const sheet = workbook.getActiveWorksheet();
const data = [
{ name: "山田", age: 20, city: "大阪" },
{ name: "佐藤", age: 25, city: "東京" }
];
sheet.getRange("A1").setValue("名前");
sheet.getRange("B1").setValue("年齢");
sheet.getRange("C1").setValue("都市");
for (let i = 0; i < data.length; i++) {
sheet.getRange("A" + (i + 2)).setValue(data[i].name);
sheet.getRange("B" + (i + 2)).setValue(data[i].age);
sheet.getRange("C" + (i + 2)).setValue(data[i].city);
}
}
for文は繰り返し処理です。同じ作業を何度も行うときに使います。名簿を一人ずつ表に書いていくイメージです。
5. 配列JSONをまとめてテーブル化する方法
次は、より実用的な方法です。配列JSONを二次元配列に変換して、一度に書き込みます。そのあとテーブルに変換します。
function main(workbook: ExcelScript.Workbook) {
const sheet = workbook.getActiveWorksheet();
const data = [
{ name: "山田", age: 20, city: "大阪" },
{ name: "佐藤", age: 25, city: "東京" },
{ name: "鈴木", age: 22, city: "名古屋" }
];
const headers = ["名前", "年齢", "都市"];
const rows = data.map(item => [item.name, item.age, item.city]);
sheet.getRange("A1:C1").setValues([headers]);
sheet.getRange("A2:C4").setValues(rows);
const table = sheet.addTable("A1:C4", true);
table.setName("名簿テーブル");
}
mapは配列の中身を別の形に変換する機能です。ここではJSONをExcel用の行データに変えています。addTableを使うことで、Excelの正式なテーブルとして登録できます。テーブル化すると並び替えやフィルター機能が使えます。
6. データ件数が変わる場合の自動対応
実務ではデータ件数が毎回変わります。その場合は範囲を自動計算します。
function main(workbook: ExcelScript.Workbook) {
const sheet = workbook.getActiveWorksheet();
const data = [
{ name: "高橋", age: 30, city: "福岡" },
{ name: "伊藤", age: 28, city: "札幌" }
];
const headers = ["名前", "年齢", "都市"];
const rows = data.map(item => [item.name, item.age, item.city]);
const lastRow = data.length + 1;
const rangeAddress = "A1:C" + lastRow;
sheet.getRange("A1:C1").setValues([headers]);
sheet.getRange("A2:C" + lastRow).setValues(rows);
sheet.addTable(rangeAddress, true);
}
dataの長さを使って最終行を計算しています。これにより人数が増減しても自動で対応できます。これがExcel自動化の大きなメリットです。
7. Office ScriptsでJSONを扱うメリット
Office ScriptsでJSONデータを扱えるようになると、外部システムのデータをExcelに取り込む処理が簡単になります。業務効率化、データ整理、自動レポート作成など、さまざまな場面で活用できます。
JSON操作、配列処理、テーブル作成という基本を理解すれば、応用も広がります。難しく見えるコードも、一つずつ読むと単なる命令の集まりです。
Excel自動化やOffice Scripts入門として、まずは配列JSONをテーブル化するスクリプトを何度も試してみてください。実際に手を動かすことで理解が深まります。
まとめ
今回はOffice Scriptsを使って配列JSONをExcelのテーブルに変換する方法を学びました。Office ScriptsはExcel自動化を実現する強力な機能であり、繰り返し作業や名簿作成、データ整理、レポート作成といった業務効率化に大きく役立ちます。特にJSONデータ操作と配列処理を理解することで、外部システムから取得したデータをExcelへ取り込み、テーブル化し、分析可能な状態に整える流れが見えてきました。
配列JSONとは、複数のデータを順番にまとめた構造です。JSONはキーと値の組み合わせで構成され、配列はそのJSONを横並びに格納します。この仕組みを理解すると、データ変換やExcel出力がぐっと簡単になります。今回の記事では、for文による繰り返し処理、mapを使った二次元配列への変換、addTableによるテーブル化、そしてデータ件数に応じた範囲自動計算までを段階的に解説しました。
Office ScriptsとTypeScriptの基本文法に慣れることは、Excel自動化の第一歩です。getRangeでセル範囲を指定し、setValueやsetValuesでデータを書き込み、addTableでテーブルを生成する。この一連の流れは、JSONデータをExcelへ出力する際の定番パターンです。特にrows配列をmapで生成する考え方は、JSON操作の基本として今後も頻繁に登場します。
また、data.lengthを使って最終行を計算する方法は実務で非常に重要です。データ件数が毎回異なる場合でも、スクリプトが自動対応できるため、手動修正が不要になります。これはExcel自動化の大きなメリットであり、業務効率化や作業時間短縮に直結します。
重要ポイントの整理
・Office ScriptsはExcel Onlineで使える自動化機能 ・JSONはキーと値で構成されたデータ形式 ・配列JSONは複数データをまとめた構造 ・mapで二次元配列に変換できる ・addTableでExcelテーブルを作成できる ・data.lengthで件数自動対応が可能
復習用サンプルプログラム
function main(workbook: ExcelScript.Workbook) {
const sheet = workbook.getActiveWorksheet();
const data = [
{ name: "中村", age: 27, city: "京都" },
{ name: "小林", age: 31, city: "横浜" },
{ name: "加藤", age: 24, city: "神戸" }
];
const headers = ["名前", "年齢", "都市"];
const rows = data.map(item => [item.name, item.age, item.city]);
const lastRow = data.length + 1;
const rangeAddress = "A1:C" + lastRow;
sheet.getRange("A1:C1").setValues([headers]);
sheet.getRange("A2:C" + lastRow).setValues(rows);
const table = sheet.addTable(rangeAddress, true);
table.setName("社員テーブル");
}
このように配列JSONを二次元配列へ変換し、まとめて書き込み、テーブル化する流れを身につけることで、Excel自動化とJSONデータ操作の基本はしっかり理解できます。まずは少人数のデータで練習し、次に件数を増やして試すことで理解が深まります。
生徒
「Office Scriptsで配列JSONをテーブル化する流れがやっと分かりました。JSONを二次元配列に変換してからExcelに書き込むのがポイントなんですね。」
先生
「その通りです。JSONデータ操作と配列処理が理解できれば、Excel自動化は難しくありません。mapを使った変換とaddTableによるテーブル作成が重要です。」
生徒
「dataの長さから最終行を計算する方法も実務で役立ちそうです。これならデータ件数が変わっても安心ですね。」
先生
「まさにそこが自動化の強みです。Office Scripts入門として、配列JSONのテーブル化はとても良い練習になります。繰り返し試して、Excel自動化とJSON操作の基礎をしっかり身につけましょう。」