メインコンテンツまでスキップ

Excel:祝日名を関数で自動取得する方法

はじめに

カレンダーを作成している際など、Excel で祝日の名称を自動的に表示させたい場合があります。
内閣府のサイトには当年分しかなく、取り込むのもVBAを使用する必要があり手間がかかります。
カレンダーなどから祝日リストを取得してVLOOKUPで表示する方法もありますが、定期的なメンテナンスが必要となるため、できるだけ自動化したいものです。

このような場合に、関数でインターネット上から簡単に祝日名を取得する方法を紹介します。

完成形

完成形として、このような表を作成します。

手順

  1. まず雛形として以下のような表を作成します。

※ なお、A列の書式設定は次のように設定してあります。 「yyyy/m/d(aaa)」としておくことで曜日を表示できます。

表示形式表示例
曜日aaa
曜日aaaa月曜日
曜日dddMon
曜日ddddMonday
  1. B2に以下の関数を入力する

B2に以下の関数をコピーして貼り付けてください

=WEBSERVICE("http://api.excelapi.org/datetime/holiday?date="&A2)

  1. オートフィルで下部までフィル

これで完成です。 とても簡単ですね。
必要に応じて範囲を広げれば日付に応じて祝日が返されます。

解説

http://api.excelapi.org/datetime/holiday?date=44197 にアクセスすると「元旦」という祝日名が返ってきます。
WEBSERVICE 関数は、Webサイトから取得したデータをExcelのセルに表示する関数のため、=WEBSERVICE("http://api.excelapi.org/datetime/holiday?date="&A2)とすることで、A2 の日付の祝日名をB2に表示しています。

なお、「44197」はエクセルが内部で日付を管理するために使用している数値で、「シリアル値」と呼ばれています。
使用時は特に留意する必要はありませんが、内部的にはこのようになっています。

WebAPI の詳細については祝日の名称をご確認ください。
この祝日機能は自動的に計算されており、特別な祝日が制定された際にもメンテナンスされています。