LoginSignup
7
9

More than 5 years have passed since last update.

日本の祝日データをEXCEL(VBA)で取得してみた - ICAL編

Posted at

概要

この記事は 日本の祝日データをEXCEL(VBA)で取得してみた の続編です。

Google は XML/ICAL/HTML の形式で日本の祝日データ (当年とその前後一年分) を提供しています。今回は ICAL のデータを取得して, 祝日名と日付情報をコレクションに格納してみます。

コード

GitHub に置いておきますので, 必要な方は自由に使ってください。

  • slangGetIcalHoliday.cls
  • slangGetIcalHolidayType.cls

クラスファイルのダウンロードはこちら → https://github.com/slangsoft/SlangBox

使い方

  1. 適当な Excel ファイルに [slangGetIcalHoliday.cls] と [slangGetIcalHolidayType.cls] をインポートする。
  2. 標準モジュールを新規追加し, その中に下記の様なサブルーチンを用意する。

下記サンプルでは, 取得した祝日データをイミディエイトウィンドウに表示します。ちなみにソートは行っていません。ICAL から取得した順番に表示されます。

Public Sub main()

    Dim myGetIcalHoliday As New slangGetIcalHoliday
    Dim holidayDataset As Collection
    Dim i As Long

    myGetIcalHoliday.setTmpFilePath ("c:\")    '一時ファイル作成用ディレクトリ設定
    Set holidayDataset = myGetIcalHoliday.getIcalHolidayData

    For i = 1 To holidayDataset.Count
        Debug.Print holidayDataset.Item(i).hDate & " " & _
                    holidayDataset.Item(i).hName
    Next i

End Sub

holidayDataset.Item(i).hDate に日付データ (yyyy/mm/dd形式), holidayDataset.Item(i).hName に祝日名が入っています。

あとがき

日本の祝日データをEXCEL(VBA)で取得してみた では XML データから祝日データを取得しましたが, Google が提供している XML データは祝日データが不足していました。

ということで, 急遽 ICAL データから祝日データを取得するクラスを作ってみたのですが・・・コードが美しくないです。力技感が半端ないので, 動けば OK という人向けになってます。(^^;

もっと素敵なやり方をご存知の方は, 是非ご教授ください。

7
9
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
9