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

小川先生

お世話になります。
自分で作成してみました。
なんとか、形に出来ました。
しかし、先生のコードと比べると、
・私のは行列指定の変数が3つある→2つに出来る
・もっとすっきりさせられる(offsetの使い方、With文の使い方)
はまだまだだなあ、と感じました。
2週間前は手も足も出なかったので、
やりきれたことは喜ばしかったです。
引き続き、よろしくお願いします!
Sub Yokonarabe()

    ActiveSheet.UsedRange.Interior.ColorIndex = xlNone
    ActiveSheet.UsedRange.ClearContents

    Dim ws As Worksheet
    Dim daHiduke As Date
    Dim cMigi As Long
    Dim loTitle As Long
    Dim loYoko As Long
    Set ws = Worksheets("Sheet1")
    daHiduke = #1/1/2015#
    cMigi = 2
    loTitle = -6
    loYoko = -4
    Do While Year(daHiduke) = 2015
        If Day(daHiduke) = 1 Then
        loTitle = loTitle + 5
        loYoko = loYoko + 5
        cMigi = 2
            With ws.Range("A1")
                .Offset(, loTitle + 1).Value = "Date"
                .Offset(, loTitle + 2).Value = "weekday"
                .Offset(, loTitle + 3).Value = "memo"
                .Offset(, loTitle + 4).Value = "comment"
                .Offset(, loTitle + 2).ColumnWidth = 10.89
                .Offset(, loTitle + 3).ColumnWidth = 30
                .Offset(, loTitle + 4).ColumnWidth = 20
            End With
        End If
        ws.Range("A" & cMigi).Offset(, loYoko - 1).Value = daHiduke
        ws.Range("B" & cMigi).Offset(, loYoko - 1).Value = WeekdayName(Weekday(daHiduke), True)
        Select Case ws.Range("B" & cMigi).Offset(, loYoko - 1).Value
            Case Is = "土"
                ws.Range("A" & cMigi & ":D" & cMigi).Offset(, loYoko - 1).Interior.Color = vbBlue
            Case Is = "日"
                ws.Range("A" & cMigi & ":D" & cMigi).Offset(, loYoko - 1).Interior.Color = vbRed
        End Select
    daHiduke = DateAdd("d", 1, daHiduke)
    cMigi = cMigi + 1
    Loop
End Sub

2017/10/12 01:38