はじめに
「先週のイベントの日の天気、どうだったっけ?」
「日報に天気を記録したいけど、いちいち検索して入力するのは面倒…」
そんな悩みを解決するために、Google Apps Script (GAS) を使って、日付を入れるだけで天気を表示するカスタム関数を作りました。
今回使用する Open-Meteo API は、面倒な会員登録やAPIキーの発行が不要で、すぐに使い始めることができる非常に便利なサービスです。
実装すること
スプレッドシート上で =GET_WEATHER("2024-01-01") と入力すると、その日の東京の天気をアイコン付きで返します。
ソースコード
スプレッドシートのメニューから 「拡張機能」>「Apps Script」 を開き、以下のコードを貼り付けて保存してください。
/**
* 指定した日付の天気を取得します(東京の例)。
* @param {string} date_str 日付 (YYYY-MM-DD形式)
* @return 天気の結果
* @customfunction
*/
function GET_WEATHER(date_str) {
if (!date_str) return "日付を入力してください";
// 1. 日付フォーマットの変換 (APIが受け付ける yyyy-mm-dd 形式に整形)
const date = new Date(date_str);
const formattedDate = Utilities.formatDate(date, "GMT+9", "yyyy-MM-dd");
// 2. Open-Meteo API (緯度・経度は東京: 35.6895, 139.6917)
// 過去データを取得する archive-api を使用
const url = `https://archive-api.open-meteo.com/v1/archive?latitude=35.6895&longitude=139.6917&start_date=${formattedDate}&end_date=${formattedDate}&daily=weathercode&timezone=Asia%2FTokyo`;
try {
// 3. APIリクエストを実行
const response = UrlFetchApp.fetch(url);
const data = JSON.parse(response.getContentText());
// daily.weathercode[0] にその日のメインの天気コードが入る
const weatherCode = data.daily.weathercode[0];
// 4. 天気コードを日本語の名称に変換
// WMO Weather interpretation codes (WW) に準拠
const weatherMap = {
0: "晴天 ☀️", 1: "概ね晴れ 🌤", 2: "時々曇り ⛅", 3: "曇り ☁️",
45: "霧 🌫
