Help us understand the problem. What is going on with this article?

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

More than 5 years have passed since last update.

概要

この記事は 日本の祝日データを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 という人向けになってます。(^^;

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

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした