Office ScriptsでExcelデータをJSONにエクスポート!初心者向けExcel自動化入門
生徒
「Office ScriptsでExcelの表データをJSONにエクスポートしたいです。そもそもJSONって何ですか?」
先生
「JSONはデータを保存したり送ったりするときに使う形式です。ExcelのデータをJSONに変換すれば、Webアプリやシステム連携に活用できます。」
生徒
「プログラミング未経験でもできますか?」
先生
「もちろんです。Office Scriptsを使えば、Excel Online上で簡単なコードを書くだけでExcelデータをJSONへ変換できますよ。」
1. Office Scriptsとは?
Office Scriptsとは、Excel Onlineで使えるExcel自動化ツールです。ブラウザ上でExcelを開き、自動化タブからスクリプトを作成できます。難しそうに見えますが、やっていることは普段のExcel操作を文字で指示しているだけです。
例えば、セルに文字を入れる、表を読み取る、データを取得する、といった作業をコードで書きます。これによりExcel作業の自動化やデータ処理の効率化が可能になります。Excel自動化は業務効率化やデータ活用にとても重要です。
2. JSONとは?初心者向けやさしい解説
JSONとはデータ保存形式の一つです。読み方はジェイソンです。難しく考えなくて大丈夫です。
例えば、名前と年齢を紙に書くとします。
名前田中
年齢二十歳
これをコンピュータが理解しやすい形にしたものがJSONです。データを鍵と値のセットで表します。鍵は項目名、値はその中身です。
ExcelデータをJSONに変換することで、Webアプリ開発やAPI連携、データベース登録などに活用できます。最近のシステム開発ではJSON形式が非常によく使われています。
3. Excelデータを取得してみよう
まずはExcelのセルデータを取得する基本コードを書いてみます。Excelデータ取得はJSON変換の第一歩です。
function main(workbook: ExcelScript.Workbook) {
const sheet = workbook.getActiveWorksheet();
const range = sheet.getRange("A1:B3");
const values = range.getValues();
console.log(values);
}
このコードはA1からB3までのセルをまとめて取得します。getValuesという命令でExcelの表データを配列という形で受け取ります。
[
["名前", "年齢"],
["田中", 20],
["佐藤", 25]
]
このように二次元のデータ構造になります。これがExcelデータの基本形です。
4. Excelの表をJSON形式に変換する
次は取得したExcelデータをJSON形式へ変換します。最初の行を見出しとして扱います。
function main(workbook: ExcelScript.Workbook) {
const sheet = workbook.getActiveWorksheet();
const range = sheet.getRange("A1:B3");
const values = range.getValues();
const headers = values[0];
const jsonArray = [];
for (let i = 1; i < values.length; i++) {
let obj: any = {};
for (let j = 0; j < headers.length; j++) {
obj[headers[j] as string] = values[i][j];
}
jsonArray.push(obj);
}
console.log(JSON.stringify(jsonArray));
}
ここでJSON.stringifyという命令を使っています。これはJavaScriptやTypeScriptでJSON形式に変換するための関数です。
[
{"名前":"田中","年齢":20},
{"名前":"佐藤","年齢":25}
]
これでExcelデータをJSONへエクスポートする処理が完成です。
5. テーブルを使ったJSONエクスポート方法
Excelでテーブル機能を使っている場合は、テーブルから直接データを取得できます。テーブルとは、Excelのデータ管理機能です。
function main(workbook: ExcelScript.Workbook) {
const table = workbook.getTable("Table1");
const rows = table.getRange().getValues();
console.log(JSON.stringify(rows));
}
テーブル名を指定することで、より実務向けのExcel自動化が可能になります。業務データのJSON変換やデータ出力処理に便利です。
6. JSON文字列をセルに出力して保存する
JSONに変換したデータを別のセルに書き出すこともできます。これによりExcel内でJSONを確認できます。
function main(workbook: ExcelScript.Workbook) {
const sheet = workbook.getActiveWorksheet();
const range = sheet.getRange("A1:B3");
const values = range.getValues();
const jsonText = JSON.stringify(values);
sheet.getRange("D1").setValue(jsonText);
}
setValueはセルに値を書き込む命令です。Excel操作をコードで行う基本命令の一つです。
7. Office ScriptsでExcel自動化するメリット
Office ScriptsでExcelデータをJSONに変換するメリットはとても大きいです。毎回手作業でコピーする必要がなくなります。大量データ処理も一瞬で完了します。
Excel自動化は業務効率化、データ活用、API連携、Webアプリ連携など幅広い分野で活躍します。特にクラウド版Excelを使う企業では、Office ScriptsとJSON変換は重要なスキルになります。
プログラミング初心者でも、Excel操作をそのままコードに置き換えるだけなので安心です。難しい専門知識がなくても、少しずつ慣れていけば必ず理解できます。
まとめ
今回はOffice Scriptsを使ってExcelデータをJSONにエクスポートする方法を学びました。Office ScriptsはExcel Online上で動作する自動化ツールであり、ブラウザだけでExcel自動化が実現できる便利な機能です。Excelデータ取得、JSON変換、JSON文字列出力までの一連の流れを理解することで、ExcelとWebアプリ連携、API連携、業務システム連携など幅広い活用が可能になります。
まずExcelのセル範囲をgetRangeで取得し、getValuesで二次元配列としてデータを取得しました。この二次元配列はExcelの表データ構造そのものであり、行と列の概念を理解することがExcel自動化の基礎になります。そして最初の行を見出しとして扱い、ループ処理を使ってJSON形式へ変換しました。JSON形式は鍵と値の組み合わせで構成されており、データ交換形式として非常に広く使われています。
JSON.stringifyを使うことで、配列やオブジェクトをJSON文字列に変換できることも確認しました。さらに、変換したJSONをsetValueでセルへ出力する方法も学習しました。これによりExcel内でJSONデータを確認したり、外部システムへ送信する準備が整います。Excelテーブルを利用すれば、より実務向けのデータ管理とJSONエクスポートが可能になり、業務効率化やデータ活用の幅が広がります。
Office ScriptsとJSON変換を組み合わせることで、Excel作業の自動化、データ整形、データ出力、データ共有が簡単になります。Excel自動化はこれからの業務に欠かせないスキルです。初心者でも一つ一つのコードの意味を理解すれば、確実に応用できるようになります。繰り返し実践しながら、Excelデータ処理とJSONエクスポートの理解を深めていきましょう。
サンプルプログラムで復習しよう
最後に、Excelデータを取得してJSONに変換し、セルへ出力する流れをまとめたサンプルコードをもう一度確認します。Office Scriptsの基本構文、Workbook取得、Worksheet取得、Range取得、JSON変換の流れを復習しましょう。
function main(workbook: ExcelScript.Workbook) {
const sheet = workbook.getActiveWorksheet();
const range = sheet.getRange("A1:B3");
const values = range.getValues();
const headers = values[0];
const jsonArray = [];
for (let i = 1; i < values.length; i++) {
let obj: any = {};
for (let j = 0; j < headers.length; j++) {
obj[headers[j] as string] = values[i][j];
}
jsonArray.push(obj);
}
const jsonText = JSON.stringify(jsonArray);
sheet.getRange("D1").setValue(jsonText);
console.log(jsonText);
}
このコードを理解できれば、ExcelデータのJSON変換処理はしっかり身についています。Excel自動化、データ処理、JSON出力の基本を押さえたことで、より高度なデータ活用にも挑戦できるでしょう。
生徒
「Office ScriptsでExcelデータをJSONにエクスポートする流れが理解できました。まずセル範囲を取得して、二次元配列としてデータを受け取り、それをJSON形式に変換するのですね。」
先生
「その通りです。Excelデータ取得とJSON変換はセットで考えると分かりやすいです。見出し行を鍵として扱うことで、実務で使えるJSONデータになります。」
生徒
「JSON.stringifyを使う理由も分かりました。配列やオブジェクトをJSON文字列に変換するために必要なのですね。Excel自動化とデータ出力がつながってきました。」
先生
「素晴らしい理解です。Office ScriptsはExcel Onlineで動作するため、クラウド環境での業務効率化にとても役立ちます。Excelテーブルを使えばさらに実務向けの処理が可能になります。」
生徒
「Excel自動化、JSONエクスポート、データ活用が一連の流れで理解できました。これからはWebアプリ連携やデータ共有にも挑戦してみたいです。」
先生
「ぜひ挑戦してください。ExcelとJSONを自在に扱えるようになれば、データ処理の幅が大きく広がります。繰り返し練習して、Office Scriptsを自分の武器にしていきましょう。」