Excel マクロで直近3ヶ月分のカレンダー | |
---|---|
[132962] Excel マクロで直近3ヶ月分のカレンダー- ■親トピック/記事引用/メール受信=OFF■ □投稿者/ 北村 -(2022/02/13(13:42)) □U R L/ Excel ワークシート内に直近3ヶ月のカレンダーを同時にシート内に表示させるには マクロ内に何を追加すればいいですか Sub 今月のカレンダー() Dim myDate As String Dim Nen As Integer, Tuki As Integer Dim i As Integer, j As Long, k As Integer Dim cn As Long Dim myTitleD, myTitle(1 To 1, 1 To 7) Dim myTable(1 To 12, 1 To 7) Dim c As Range '作成する月を入力 myDate = Application.InputBox(Title:="年月の指定", _ prompt:="年月を2022/2の形式で入力してください", _ Default:="2022/2", Type:=2) 'キャンセルボタンを押したとき、日付でないデータの時は終了する If myDate = "False" Or Not IsDate(myDate) Then MsgBox "終了しました" Exit Sub End If Nen = Year(myDate) Tuki = Month(myDate) '曜日を配列にセットします myTitleD = Array("日", "月", "火", "水", "木", "金", "土") For k = 0 To 6 myTitle(1, k + 1) = myTitleD(k) Next k '指定月の日付を配列にセットします cn = 1 For j = DateSerial(Nen, Tuki, 1) To DateSerial(Nen, Tuki + 1, 0) '末日は 次の月の0日 = 前日の末日 If Day(j) <> 1 And Weekday(j) = 1 Then cn = cn + 2 myTable(cn, Weekday(j)) = Format(j, "m/d") Next j 'シートに書き出す Application.ScreenUpdating = False Range("H:O").Clear Range("H16").Value = DateSerial(Nen, Tuki, 1) Range("I17").Resize(1, 7).Value = myTitle Range("I18").Resize(12, 7).Value = myTable '書式を設定します Range("H16").NumberFormatLocal = "m""月""" Range("I17").Resize(12, 7).HorizontalAlignment = xlCenter Range("I18").Resize(11, 1).NumberFormatLocal = "m""月""d""日""" Range("I16").Resize(13, 7).Borders.LineStyle = True '日曜日は赤色、土曜日は青色にします Range("I17").Resize(13, 1).Font.Color = RGB(255, 0, 0) Range("O17").Resize(13, 1).Font.Color = RGB(0, 0, 255) '祝日(指定休日)のチェックし、赤色の太文字にします For Each c In Range("I18").Resize(12, 7) If Application.CountIf(Worksheets("休日リスト").Range("A2:A20"), c.Value) > 0 Then c.Font.Color = RGB(255, 0, 0) c.Font.Bold = True End If Next c Application.ScreenUpdating = True End Sub この記事にはVBAのコードが含まれています。 緑の太文字→注釈 茶色の太文字→条件分岐 赤の太文字→ループ 青の太文字→その他 |
[132963] Re[1]: Excel マクロで直近3ヶ月分のカレンダー- ■記事引用/メール受信=OFF■ □投稿者/ コナミ -(2022/02/13(19:44)) □U R L/ マクロはお隣の板なので、できれば お引っ越しされた方がいいかと思います。 |
このトピックに書きこむ |
---|