Google スプレッドシートで API を呼び出す方法は、Google Apps Script を使用することで簡単に実現できます。Apps Script は、Google の提供する JavaScript ベースのプラットフォームで、Google スプレッドシートやその他の Google サービスを自動化したり、拡張したりするために使用されます。この記事では、Google スプレッドシートから一般的な API を呼び出す方法について、完全かつ包括的に解説します。
1. Google スプレッドシートで Apps Script エディタを開く
まず最初に、Google スプレッドシートで Apps Script エディタを開く必要があります。次の手順に従ってください。

- Google スプレッドシートを開く。
- メニューの「拡張機能」をクリックし、「Apps Script」を選択します。
- Apps Script エディタが開かれるので、ここでコードを記述していきます。
2. 必要な API のエンドポイントを取得
API を呼び出すためには、その API のエンドポイントを知る必要があります。例えば、天気情報を取得するために OpenWeatherMap API を使用すると仮定すると、次のような URL を使用します:
bashhttps://api.openweathermap.org/data/2.5/weather?q=Tokyo&appid=YOUR_API_KEY
YOUR_API_KEY
は、OpenWeatherMap の API キーです。このように、まず呼び出したい API のドキュメントを参照して、エンドポイント URL と必要なパラメータを確認してください。
3. API 呼び出しのための Apps Script コード
次に、Google Apps Script を使用して API を呼び出すコードを作成します。以下のコード例では、OpenWeatherMap API を呼び出し、その結果を Google スプレッドシートに表示する方法を示します。
javascriptfunction getWeatherData() {
// API エンドポイントと API キー
var apiKey = 'YOUR_API_KEY';
var city = 'Tokyo';
var url = 'https://api.openweathermap.org/data/2.5/weather?q=' + city + '&appid=' + apiKey;
// API 呼び出し
var response = UrlFetchApp.fetch(url);
// レスポンスを JSON 形式にパース
var json = JSON.parse(response.getContentText());
// 結果をスプレッドシートに書き込む
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var temperature = json.main.temp; // 温度情報
var weatherDescription = json.weather[0].description; // 天気の説明
// A1 セルに都市名、A2 セルに温度、A3 セルに天気の説明を表示
sheet.getRange('A1').setValue('City: ' + city);
sheet.getRange('A2').setValue('Temperature: ' + temperature + ' K');
sheet.getRange('A3').setValue('Weather: ' + weatherDescription);
}
このスクリプトでは、OpenWeatherMap API から天気情報を取得し、取得した温度と天気の説明をスプレッドシートに書き込みます。UrlFetchApp.fetch()
メソッドを使用して API を呼び出し、そのレスポンスを JSON 形式で取得しています。その後、JSON.parse()
で JSON をパースし、必要な情報を取得してスプレッドシートに表示します。
4. API 呼び出しの設定
Google スプレッドシートに書き込んだデータを更新するために、定期的に API 呼び出しを行いたい場合は、トリガーを設定することができます。Apps Script では、時間ベースのトリガーを使用して、特定の時間に自動的にスクリプトを実行することが可能です。
例えば、毎日午前 9 時に天気情報を取得したい場合、次のようにトリガーを設定します。
javascriptfunction createTimeDrivenTriggers() {
ScriptApp.newTrigger('getWeatherData')
.timeBased()
.everyDays(1) // 毎日実行
.atHour(9) // 午前 9 時に実行
.create();
}
このコードを Apps Script エディタに追加して実行すると、毎日午前 9 時に自動的に getWeatherData
関数が呼び出され、天気情報がスプレッドシートに更新されます。
5. エラーハンドリングとデバッグ
API 呼び出しを行う際には、エラーハンドリングを行うことが重要です。API が応答しない場合やエラーが発生した場合、適切なメッセージを表示して処理を中断することができます。以下のように、エラーハンドリングを追加します。
javascriptfunction getWeatherData() {
try {
var apiKey = 'YOUR_API_KEY';
var city = 'Tokyo';
var url = 'https://api.openweathermap.org/data/2.5/weather?q=' + city + '&appid=' + apiKey;
var response = UrlFetchApp.fetch(url);
// レスポンスのステータスコードを確認
if (response.getResponseCode() !== 200) {
throw new Error('API 呼び出しに失敗しました。ステータスコード: ' + response.getResponseCode());
}
var json = JSON.parse(response.getContentText());
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var temperature = json.main.temp;
var weatherDescription = json.weather[0].description;
sheet.getRange('A1').setValue('City: ' + city);
sheet.getRange('A2').setValue('Temperature: ' + temperature + ' K');
sheet.getRange('A3').setValue('Weather: ' + weatherDescription);
} catch (error) {
Logger.log('エラーが発生しました: ' + error.message);
SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().getRange('A1').setValue('エラー: ' + error.message);
}
}
このコードでは、try...catch
ブロックを使用して、API 呼び出し中に発生したエラーを捕捉し、スプレッドシートにエラーメッセージを表示します。Logger.log()
を使うことで、エラーメッセージを Apps Script のログに記録することもできます。
6. まとめ
Google スプレッドシートと Google Apps Script を使用すると、簡単に API を呼び出してデータを取得し、スプレッドシートに表示することができます。API キーやエンドポイントの取得、API 呼び出しのコード作成、エラーハンドリングなどを行うことで、スムーズに自動化を実現できます。
- API 呼び出しを行うには
UrlFetchApp.fetch()
を使用。 - レスポンスを JSON として処理し、スプレッドシートにデータを入力。
- 定期的な実行が必要な場合は、時間ベースのトリガーを設定。
- エラーハンドリングを行い、エラー時に適切なメッセージを表示。
これで、Google スプレッドシートから API を呼び出し、データを取得する基本的な方法が理解できたと思います。必要に応じて、さらに高度な API 呼び出しや処理を追加して、自分だけの自動化ツールを作成することができます。