サイトアイコン あきらちんの技術メモ

EXCEL VBA でオリジナルカレンダーを作成 Ver2

はじめに

前回のカレンダーを改良して祝日や六曜を表示できるようにしました。誕生日などのイベントも表示できます。

六曜の表示には、以下のサイト(Vector)からダウンロードしたモジュールを利用させていただきました。感謝!!

旧暦 for VB

※Visual BasicまたはExcel VBAで旧暦を計算する標準モジュール(ソース付き)

ダウンロード

今回も前回と同様にA4縦サイズです。上段に好みの写真やイラストを表示できます。

1か月単位で出力できるので必要な分だけ印刷して利用できます。

※ZIP圧縮形式なのでどこかに解凍してご利用ください。

※2021年の祝日を適用いたしました。【2020/12/13更新】

ちょこっと解説

カレンダーシート

メインのシートです。このシートでカレンダーを生成し印刷できます。

画像シート、祝日シート、休日シート

前回と同様なので省略します。

イベントシート

新しく追加しました。1行だけ表示可能ですが、誕生日、記念日、運動会などのイベントを記入出来ます。

VBA

カレンダーの表示部分のセルが変更になったので大きく変更しておりますが、基本的な処理は同様なのでダウンロードしてご確認ください。

六曜

1ヵ月分を取得して配列に格納したものを返す関数を作りました。

Vectorからダウンロードしたモジュールを標準モジュールに追加して六曜取得の処理を追加してあります。

Calc_Kyureki y, m, dd

で1日毎に旧暦を求めて

Kyureki.QRokuyou

で六曜を取得できます。

''' 六曜取得
Private Function GetRokuyo(y As Integer, m As Integer)
    Dim d(5, 6) As String
    Dim startDate As Date
    Dim endD As Integer
    Dim youbi As Integer    ' 1:日曜日 ~ 7:土曜日
    Dim i As Integer
    Dim j As Integer
    Dim dd As Integer
    
    ' 日付配列初期化
    For i = 0 To 5
        For j = 0 To 6
            d(i, j) = ""
        Next j
    Next i

    ' 開始曜日取得
    startDate = CDate(y & "/" & m & "/1")
    youbi = Weekday(startDate)
    
    ' 月末日付取得
    endD = CInt(Format(DateAdd("d", -1, DateAdd("m", 1, startDate)), "d"))

    dd = 1
    For i = 0 To 5
        If dd > endD Then Exit For
        For j = 0 To 6
            If i = 0 And j < youbi - 1 Then
            Else
                If dd > endD Then Exit For
                Calc_Kyureki y, m, dd
                d(i, j) = Kyureki.QRokuyou
                dd = dd + 1
            End If
        Next j
    Next i
    
    GetRokuyo = d
    Exit Function

Err_Handler:
    MsgBox Err.Description, vbExclamation

End Function

最後に

意外と大変なのが、1年分の画像を用意することですね。

勝手に配布も出来ないため、がんばってご用意ください。

 

【2020/12/13追記】

カレンダーv2を以前にダウンロードされた方の祝日シートに以下のデータが抜けているため過去のカレンダーを扱う場合はご注意ください。

最新版をダウンロードしていただくことで修正され、かつ2021年の祝日も追加されます。

1959/04/10 親王結婚の儀
1966/09/15 敬老の日
1966/10/10 体育の日
1984/09/24 振替休日
1989/02/24 大喪の礼
1990/09/24 振替休日
1990/11/12 即位礼正殿の儀
1993/06/09 親王結婚の儀
2007/02/12 振替休日
2007/04/30 振替休日
2007/09/24 振替休日
2007/12/24 振替休日
2013/11/04 振替休日

モバイルバージョンを終了