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

Office Scriptsの基本!fetchを使ったHTTP通信で外部APIと連携する方法【Excel自動化・初心者向け解説】

fetchを使ったHTTP通信の基本
fetchを使ったHTTP通信の基本

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

生徒

「Office ScriptsでExcelを自動化できるのは分かりましたが、外部APIと連携するHTTP通信って何ですか?」

先生

「HTTP通信とは、インターネットを通じてデータをやり取りする仕組みのことです。fetchという機能を使えば、Webサービスや外部APIからデータを取得できます。」

生徒

「Excelなのにインターネットとつながるんですか?」

先生

「はい。Office Scriptsはクラウド上で動くので、fetchを使ったHTTP通信で外部API連携ができます。それでは基本から見ていきましょう。」

1. Office Scriptsとは?

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

Office Scriptsは、Excel Onlineで動作する自動化機能です。ブラウザ上のExcelでスクリプトを書き、繰り返し作業やデータ処理を自動化できます。使用する言語はTypeScriptで、これはJavaScriptを拡張したプログラミング言語です。難しそうに聞こえますが、やっていることは「Excelに命令を書く」だけです。

たとえばセルに文字を入力する、表を作る、データを並び替えるといった操作をコードで実行できます。さらにfetchを使えば、外部API連携やWebサービスとのHTTP通信も可能になります。

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

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

HTTP通信とは、インターネット上で情報をやり取りするためのルールです。Webサイトを見るときも、この仕組みが使われています。

fetchは、そのHTTP通信を行うための命令です。簡単に言えば「インターネットからデータを取りに行くボタン」のようなものです。

外部APIとは、他のサービスが公開しているデータの入り口です。たとえば天気情報や為替情報などを取得できます。Office Scriptsでfetchを使うと、そのデータをExcelに取り込めます。

3. fetchでデータを取得する基本コード(GET通信)

3. fetchでデータを取得する基本コード(GET通信)
3. fetchでデータを取得する基本コード(GET通信)

まずは基本的なGET通信の例です。GETとは「データをください」とお願いする通信方法です。


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という言葉は「通信が終わるまで待つ」という意味です。インターネット通信は時間がかかるため、順番を守る必要があります。

response.json()は、受け取ったデータを使いやすい形式に変換しています。

4. 取得したデータを複数セルに表示する方法

4. 取得したデータを複数セルに表示する方法
4. 取得したデータを複数セルに表示する方法

外部API連携では、配列という複数データが返ってくることがあります。配列とは、データの箱が並んでいるイメージです。


async function main(workbook: ExcelScript.Workbook) {
  const response = await fetch("https://api.example.com/users");
  const users = await response.json();

  const sheet = workbook.getActiveWorksheet();

  for (let i = 0; i < users.length; i++) {
    sheet.getRange("A" + (i + 1)).setValue(users[i].name);
  }
}

for文は繰り返し処理です。同じ作業を何度も行うときに使います。これでAPIのデータをExcelに一覧表示できます。

5. POST通信でデータを送信する方法

5. POST通信でデータを送信する方法
5. POST通信でデータを送信する方法

POST通信は「データを送る」方法です。たとえばフォームの送信のような仕組みです。


async function main(workbook: ExcelScript.Workbook) {
  const response = await fetch("https://api.example.com/send", {
    method: "POST",
    headers: {
      "Content-Type": "application/json"
    },
    body: JSON.stringify({ name: "Taro" })
  });

  const result = await response.json();
  workbook.getActiveWorksheet().getRange("A1").setValue(result.status);
}

methodは通信方法を指定しています。headersは通信の説明書のようなものです。bodyには送信するデータを書きます。

6. エラー処理の基本(安全なHTTP通信)

6. エラー処理の基本(安全なHTTP通信)
6. エラー処理の基本(安全なHTTP通信)

HTTP通信ではエラーが発生することもあります。エラーとは「うまくいかなかった」という状態です。


async function main(workbook: ExcelScript.Workbook) {
  try {
    const response = await fetch("https://api.example.com/data");
    if (!response.ok) {
      throw new Error("通信エラー");
    }

    const data = await response.json();
    workbook.getActiveWorksheet().getRange("A1").setValue(data.message);
  } catch (error) {
    workbook.getActiveWorksheet().getRange("A1").setValue("取得失敗");
  }
}

tryとcatchは、問題が起きたときの備えです。外部API連携では必ずエラー対策をしましょう。

7. fetchを使うときの注意点

7. fetchを使うときの注意点
7. fetchを使うときの注意点

Office Scriptsでfetchを使ったHTTP通信を行う場合、API側がCORSという制限をかけていると通信できないことがあります。これは安全のための仕組みです。

また認証が必要なAPIではトークンという鍵が必要になります。トークンは秘密のパスワードのようなものなので安全に管理します。

外部API連携はとても便利ですが、セキュリティや通信エラーも理解しておくことが大切です。

8. Office Scriptsとfetchでできること

8. Office Scriptsとfetchでできること
8. Office Scriptsとfetchでできること

Office Scriptsのfetchを使えば、天気情報取得、在庫管理システム連携、社内データベースAPI接続などが可能になります。Excel自動化とWeb API連携を組み合わせることで、手作業を大幅に削減できます。

初心者の方は、まずはGET通信の基本を理解し、その後POST通信やエラー処理へ進むと理解が深まります。Office Scripts、fetch、HTTP通信、外部API連携というキーワードを意識して学習を進めていきましょう。

まとめ

まとめ
まとめ

今回はOffice Scriptsの基本から始まり、fetchを使ったHTTP通信、そして外部API連携の方法までを順番に学習しました。Excel自動化というと、これまではマクロやVBAを思い浮かべる方が多かったかもしれません。しかしOffice Scriptsはクラウド上で動作し、TypeScriptを使ってより柔軟な自動化を実現できます。特にfetchを活用することで、単なるExcelの自動処理にとどまらず、外部APIと連携した高度なデータ取得やデータ送信が可能になります。

HTTP通信の基本であるGET通信は、外部サービスからデータを取得するための仕組みです。天気情報取得や在庫情報の確認、社内システムとのデータ同期など、業務効率化に直結する使い方が数多く存在します。Office Scriptsとfetchを組み合わせることで、Excelが単なる表計算ソフトではなく、情報を集約するハブのような存在になります。

またPOST通信では、Excelで入力したデータを外部APIへ送信できます。例えばアンケート結果の送信、顧客情報の登録、勤怠データの更新など、双方向のやり取りが可能になります。Excel自動化とWeb API連携を理解することで、手作業による転記やコピー作業を削減でき、作業時間短縮と入力ミス防止につながります。

さらに重要なのがエラー処理です。HTTP通信では通信失敗やサーバーエラーが起きる可能性があります。tryとcatchを使ったエラー対策を実装することで、安全な外部API連携が実現できます。業務で利用する場合は、通信成功だけでなく失敗時の動作も必ず設計しましょう。

Office Scriptsのfetchは、Excel Online環境で動作するため、インストール不要で利用できる点も魅力です。クラウド環境でのExcel自動化、HTTP通信、外部API連携という三つの要素を組み合わせれば、データ活用の幅が大きく広がります。初心者の方はまずGET通信を確実に理解し、配列処理やPOST通信、エラー処理へと段階的に学習を進めることが大切です。

サンプルプログラムの振り返り


async function main(workbook: ExcelScript.Workbook) {
  try {
    const response = await fetch("https://api.example.com/products");
    if (!response.ok) {
      throw new Error("通信失敗");
    }

    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].name);
      sheet.getRange("B" + (i + 1)).setValue(products[i].price);
    }
  } catch (error) {
    workbook.getActiveWorksheet().getRange("A1").setValue("データ取得エラー");
  }
}

上記のコードでは、外部API連携によって商品一覧データを取得し、Excelに一覧表示しています。fetchによるHTTP通信、awaitによる非同期処理制御、for文による繰り返し処理、そしてエラー処理までを含めた実践的な構成です。これらを理解できれば、Office Scriptsを使った実務レベルのExcel自動化に一歩近づいたと言えるでしょう。

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

生徒

「Office Scriptsとfetchを使えば、Excelが外部APIと連携できることが分かりました。HTTP通信はデータのやり取りの仕組みなんですね。」

先生

「その通りです。GET通信でデータ取得、POST通信でデータ送信ができます。Excel自動化とWeb API連携を組み合わせることで、業務効率化が実現できます。」

生徒

「asyncやawaitは通信が終わるまで待つために必要なんですね。エラー処理も大切だと理解できました。」

先生

「とても良い理解です。外部API連携では安全なHTTP通信とエラー対策が重要です。まずは基本のGET通信を何度も練習し、Excel自動化の幅を広げていきましょう。」

カテゴリの一覧へ
新着記事
New1
Excel VBA
ExcelマクロとVBAの違いとは?初心者でもわかる自動化の基本と仕組みを徹底解説
New2
Office Scripts
Office ScriptsでExcelのシート保護を自動化!ワークシート保護・解除をスクリプトで制御する方法
New3
Office Scripts
Office Scriptsの基本!Excel自動化で使う関数とコードの書き方
New4
Excel VBA
Excel VBAの変数とは?宣言・型指定・初期値の基本をやさしく解説
人気記事
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自動化のための目的をやさしく解説