投稿/コメントを表示します。

小川先生へ

いつもお世話になっております。
現在、イベントの連鎖のところで頭がこんがらがっています(+_+)

練習でカレンダーを作成するマクロを作ってみたのですが、
一体どこにフラグを立てたらよいのかわからず困っています。
コードのチェックをお願いいたします。


☆マクロの内容☆
Sheet1にA1の日付の値が変更されたら
標準ジュールのNyuryoku_Calendarマクロが実行されるWorksheet_Changeイベントを作成しています。
Nyuryoku_Calendarは次の月になるまでB1に日付、B2に曜日が横方向に入っていくマクロです。
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address = "$A$1" Then
        Nyuryoku_Calendar
    End If
End Sub

Dim bFrg As Boolean
Sub Nyuryoku_Calendar() ' ひと月分のカレンダーを作成する
    Dim dDay As Date
    Dim c As Long
    
    dDay = Range("A1").Value
    Range("A1").NumberFormatLocal = "yyyy" & "年" & "m" & "月"
    
    Range("B1:AF2").ClearContents 'B1:AF2の値を削除する
    
    Range("B1").Value = dDay
    Range("B2").Value = WeekdayName(Weekday(dDay), True)
    
    
    Do While Month(dDay + 1) = Month(Range("A1").Value) 'A1に入っている月と同じ間はloopする。
        Range("C1").Offset(0, c).Value = DateAdd("d", 1, dDay) '日付
        Range("C1").Offset(0, c).NumberFormatLocal = "d" '書式をd
        Range("C1").Offset(1, c) = WeekdayName(Weekday(DateAdd("d", 1, dDay)), True) '曜日
        dDay = Range("C1").Offset(0, c).Value
        c = c + 1
    Loop
End Sub

2017/02/18 00:53