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

Office Scriptsで外部API連携!fetchでJSONレスポンスを取得・解析する方法【Excel自動化×HTTP通信入門】

JSONレスポンスの取得・解析方法
JSONレスポンスの取得・解析方法

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

生徒

「Office Scriptsで外部APIからデータを取ってきて、Excelに自動で表示させたいです。JSONって何ですか?」

先生

「JSONは、インターネットでデータをやり取りするときによく使われるデータ形式です。Office Scriptsではfetchという機能を使ってHTTP通信を行い、JSONレスポンスを取得できます。」

生徒

「HTTP通信って難しそうです…初心者でもできますか?」

先生

「大丈夫です。郵便で手紙を送るようなイメージで考えればOKです。順番に学べば、Excel自動化とAPI連携ができるようになりますよ。」

1. Office Scriptsとは?

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

Office Scriptsは、Excel Onlineで使える自動化機能です。Excelの操作をコードで記録・実行できるため、繰り返し作業を自動化できます。例えば、毎日の売上データ集計や、Web APIから取得したデータの貼り付けなども可能です。

Office ScriptsはTypeScriptというプログラミング言語を使います。TypeScriptはJavaScriptをもとに作られた言語で、Web開発やAPI連携でよく使われます。難しく聞こえますが、Excelのセルを指定して値を入れるだけでも立派なプログラムです。

2. fetchとHTTP通信の基本

2. fetchとHTTP通信の基本
2. fetchとHTTP通信の基本

fetchとは、インターネット上のサーバーにデータを取りに行くための命令です。この通信のことをHTTP通信といいます。HTTPとは、Webページを見るときにも使われている通信のルールです。

イメージとしては、Excelが「データをください」とAPIにお願いし、APIが「はい、どうぞ」とJSON形式で返してくれる流れです。この返ってくるデータをJSONレスポンスと呼びます。

3. JSONとは?初心者向けやさしい解説

3. JSONとは?初心者向けやさしい解説
3. JSONとは?初心者向けやさしい解説

JSONとは、データを整理して表現するための書き方です。名前と値がセットになっているのが特徴です。たとえば、名前が「山田」、年齢が「20」の場合は、名前と年齢がセットで保存されます。

JSONは波かっこで囲まれ、データが並んでいます。Excelの表に似ていますが、よりプログラム向けの形式です。API連携ではこのJSONを取得して解析することが重要になります。

4. fetchでJSONレスポンスを取得する方法

4. fetchでJSONレスポンスを取得する方法
4. fetchでJSONレスポンスを取得する方法

それでは実際に、Office Scriptsでfetchを使ってJSONレスポンスを取得してみましょう。以下はAPIからデータを取得する基本例です。


async function main(workbook: ExcelScript.Workbook) {

  const response = await fetch("https://api.example.com/data");
  const data = await response.json();

  const sheet = workbook.getActiveWorksheet();
  sheet.getRange("A1").setValue(data.message);
}

asyncとは「非同期処理」といい、データが返ってくるまで待つ仕組みです。awaitは「待つ」という意味です。インターネット通信は時間がかかるため、この書き方が必要になります。

5. JSONデータを解析して値を取り出す方法

5. JSONデータを解析して値を取り出す方法
5. JSONデータを解析して値を取り出す方法

JSONレスポンスは、そのままでは使えません。必要な値を取り出すことを解析といいます。たとえば、次のようなJSONが返ってきた場合を考えます。


{
  "name": "Taro",
  "age": 25
}

この場合、nameやageを指定して取り出します。


async function main(workbook: ExcelScript.Workbook) {

  const response = await fetch("https://api.example.com/user");
  const user = await response.json();

  const sheet = workbook.getActiveWorksheet();
  sheet.getRange("A1").setValue(user.name);
  sheet.getRange("A2").setValue(user.age);
}

このようにドット記法を使ってJSONの中身を取得します。ドット記法とは、データの名前のあとに「.」をつけて値を取り出す方法です。

6. 配列形式のJSONをExcelに一覧表示する

6. 配列形式のJSONをExcelに一覧表示する
6. 配列形式のJSONをExcelに一覧表示する

APIによっては、複数データが配列という形で返ってきます。配列とは、データが順番に並んでいる箱のようなものです。


[
  { "product": "りんご", "price": 100 },
  { "product": "みかん", "price": 80 }
]

これをExcelに書き込む例はこちらです。


async function main(workbook: ExcelScript.Workbook) {

  const response = await fetch("https://api.example.com/products");
  const products = await response.json();

  const sheet = workbook.getActiveWorksheet();

  for (let i = 0; i < products.length; i++) {
    sheet.getRange("A" + (i + 1)).setValue(products[i].product);
    sheet.getRange("B" + (i + 1)).setValue(products[i].price);
  }
}

for文は繰り返し処理です。配列のデータを一つずつ取り出してExcelに自動入力しています。これにより、Web APIのデータをExcelに一覧表示できます。

7. エラー対策とJSON取得時の注意点

7. エラー対策とJSON取得時の注意点
7. エラー対策とJSON取得時の注意点

API連携では、通信エラーやデータ形式の違いが起こることがあります。そのため、エラーチェックも重要です。


async function main(workbook: ExcelScript.Workbook) {

  const response = await fetch("https://api.example.com/data");

  if (!response.ok) {
    throw new Error("API通信エラー");
  }

  const data = await response.json();
  workbook.getActiveWorksheet().getRange("A1").setValue("取得成功");
}

response.okは通信成功かどうかを確認するプロパティです。API連携やHTTP通信を安全に行うためには、この確認がとても大切です。

8. Office ScriptsでJSON解析を活用するメリット

8. Office ScriptsでJSON解析を活用するメリット
8. Office ScriptsでJSON解析を活用するメリット

Office Scriptsとfetchを使えば、Excel自動化がさらに強力になります。例えば、天気API、為替レートAPI、売上管理APIなどからJSONレスポンスを取得し、リアルタイムデータをExcelに反映できます。

これにより、手作業でコピーする必要がなくなり、業務効率化や自動レポート作成が可能になります。初心者でも、JSON取得と解析の基本を理解すれば、API連携によるExcel自動化が実現できます。

まとめ

まとめ
まとめ

今回は、Office Scriptsを活用した外部API連携の基本として、fetchによるHTTP通信の仕組み、JSONレスポンスの取得方法、そしてJSON解析によるデータ抽出までを学びました。Excel自動化とWeb API連携は一見難しそうに感じますが、流れを整理するととてもシンプルです。まずfetchでAPIにアクセスし、HTTP通信でデータを受け取り、そのレスポンスをjson形式で解析し、最後にExcelシートへ書き込むという手順です。この一連の流れを理解することが、Office Scriptsでの自動化成功の鍵になります。

特に重要なのは、asyncとawaitを使った非同期処理の考え方です。インターネット通信はすぐに結果が返るとは限りません。そのため、処理の完了を待つ仕組みが必要になります。fetchとawaitを正しく使うことで、HTTP通信エラーを防ぎ、安全にJSONデータを取得できます。また、response.okを確認するエラーハンドリングも実務では欠かせません。API通信エラー対策を行うことで、安定したExcel自動化システムを構築できます。

JSON解析では、ドット記法を使った値の取得や、配列データのfor文による繰り返し処理を学びました。単一オブジェクトのJSONレスポンスと、配列形式のJSONレスポンスでは処理方法が異なります。配列の場合はlengthを使い、順番にデータを取り出してExcelに書き込むことが重要です。これにより、商品一覧やユーザー情報一覧、売上データ一覧などを自動でExcelに展開できます。

Office Scriptsとfetchを組み合わせることで、Excel Online上でリアルタイムデータ取得が可能になります。例えば、在庫管理システム、顧客管理データ、為替情報取得、天気情報取得など、さまざまなWeb APIと連携できます。JSONレスポンス解析の基本を理解していれば、どのAPIにも応用できます。HTTP通信の基礎、API連携の流れ、JSONデータ構造の理解、この三つが身につけば、Excel自動化は大きく進化します。

総復習サンプルプログラム

最後に、fetchでJSONレスポンスを取得し、エラーチェックを行い、配列データをExcelに一覧表示する総合サンプルを確認しましょう。実務でも使える基本形です。


async function main(workbook: ExcelScript.Workbook) {

  const response = await fetch("https://api.example.com/products");

  if (!response.ok) {
    throw new Error("HTTP通信エラーが発生しました");
  }

  const products = await response.json();
  const sheet = workbook.getActiveWorksheet();

  sheet.getRange("A1").setValue("商品名");
  sheet.getRange("B1").setValue("価格");

  for (let i = 0; i < products.length; i++) {
    sheet.getRange("A" + (i + 2)).setValue(products[i].product);
    sheet.getRange("B" + (i + 2)).setValue(products[i].price);
  }
}

このように、fetchによるHTTP通信、JSONレスポンス取得、配列解析、for文による繰り返し処理、Excelへの自動書き込みまでを一つの流れで実装できます。Office ScriptsでのAPI連携は、基本形を覚えることが何より重要です。まずはシンプルなJSONデータ取得から始め、徐々に複雑なAPIへ挑戦してみましょう。

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

生徒

「Office Scriptsでfetchを使う流れがやっと分かりました。HTTP通信でAPIからJSONレスポンスを取得して、それを解析してExcelに書き込むんですね。」

先生

「その通りです。fetchはデータ取得の入り口です。JSON解析ができれば、どんなWeb APIでも応用できます。非同期処理とawaitの意味も理解できましたね。」

生徒

「はい。response.okで通信エラーを確認することも大事だと分かりました。エラーハンドリングをしないと、Excel自動化が途中で止まってしまうんですね。」

先生

「その意識はとても大切です。Office ScriptsによるExcel自動化とAPI連携は、実務でも強力な武器になります。JSONデータ構造、配列処理、for文、ドット記法をしっかり復習してください。」

生徒

「これからはWeb APIからデータを取得して、自分だけの自動レポートを作ってみます。ExcelとHTTP通信がつながった感じがして、とても面白いです。」

先生

「素晴らしいですね。小さな成功体験を積み重ねれば、より高度なAPI連携やデータ自動分析にも挑戦できます。まずは基本を確実に身につけましょう。」

カテゴリの一覧へ
新着記事
New1
Office Scripts
Office ScriptsでExcelのシート保護を自動化!ワークシート保護・解除をスクリプトで制御する方法
New2
Office Scripts
Office Scriptsの基本!Excel自動化で使う関数とコードの書き方
New3
Excel VBA
Excel VBAの変数とは?宣言・型指定・初期値の基本をやさしく解説
New4
Excel VBA
VBAで最終行・最終列を自動取得!FindとEndを使った実用パターン徹底解説
人気記事
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
Excel VBAのループ処理を徹底解説!For文とDo Loopで繰り返しを自動化
No.5
Java&Spring記事人気No5
Excel VBA
Excel VBA参照設定エラー「参照が見つかりません」を完全解説!初心者でも原因と対処法がわかる
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の基本!なぜTypeScriptを使うのか?Excel自動化のための目的をやさしく解説