記事「任意の日付から任意の日付までを一列にセル に入れる 」の中の
DateWriterYプロシージャで作る年間カレンダーと、
記事「任意の年の祝日を取得する 」の中の
GetHollydaysプロシージャで取得する
祝日の情報を統合します。
手順は、
まず既存の2つのプロシージャを呼び出して
年間カレンダーと祝日の2つのシートを作成します。
この2つのシートの日付けが等しければ
祝日の名称を
年間カレンダーのシートにコピペします。
そして、その日付けのセルの塗りつぶしを
日曜と同じに色を設定します。
コードはこちら
祝日を年間カレンダーに追加するコード: Sub macro100323a() '2010年1列カレンダー '祝日を追加
Dim MyYear, EndRow1, EndRow2, FirstRow As Integer Dim SheetA, SheetB As Worksheet Dim i, j As Integer
'既存プロシージャを呼び出し '年間カレンダー、祝日を取得 MyYear = 2010 Sheets.Add.Name = MyYear & "年カレンダー" Call DateWriterY(CStr(MyYear)) Call GetHollydays(CStr(MyYear)) 'シートオブジェクトをセット Set SheetA = Sheets("祝日" & MyYear) Set SheetB = Sheets(MyYear & "年カレンダー") '各シートの最終行を代入 EndRow1 = SheetA.Range("A1").End(xlDown).Row EndRow2 = SheetB.Range("A1").End(xlDown).Row '祝日を年間カレンダーに統合する FirstRow = 2 For i = 3 To EndRow1 For j = FirstRow To EndRow2 If SheetA.Cells(i, 1) = SheetB.Cells(j, 1) Then 'SheetAとSheetBの日付けが等しいなら '祝日名をコピペして、日付けを色付け SheetA.Cells(i, 2).Copy Destination:=SheetB.Cells(j, 2) SheetB.Cells(j, 1).Interior.ColorIndex = 38 FirstRow = j + 1 Exit For End If Next j Next i End Sub |
macro100323aを実行後のシートの一部
祝日も追加できたので
次は、ひと月を週ごとに区切った
よく見る月間カレンダーにしたいです。
コメント