Excelでカレンダーを作ってみよう

カレンダーに日本の祭日を表示


フォーマットを卓上カレンダースタイルに変更し、日付の下に祭日名を表示させるように追加します。

メニューに戻る

スポンサードリンク



シートコード

下記のコードに変更してください

'カレンダーを作成
Private Sub ExCalenSetSub(mm As Integer)
    Dim i As Integer
    Dim nlast As Integer
    Dim nc As Long
    Dim scell As String
    Dim startcell As String
    Dim s As String
    Dim tdate As Date
    Dim nrow As Integer
    Dim sjitu As String
    
    startcell = Range("C5")
    scell = startcell
    tdate = Format(Range("C6") & "/" & mm & "/1", "yyyy/mm/dd")
    nlast = MonthLastDay(Range("C6"), mm)
    
    Sheets(mm & "月").Select
    Sheets(mm & "月").Activate
    
    '月のセット
    ActiveSheet.Range(scell).Offset(0, 3) = mm & "月"
    '中央に表示
    ActiveSheet.Range(scell).Offset(0, 3).HorizontalAlignment = xlHAlignCenter

    scell = Range("C5")
    
    Sheets(mm & "月").Select
    Sheets(mm & "月").Activate
    
    '行の高さを変更
    For i = 6 To 12
        Sheets(mm & "月").Cells(i, 1).RowHeight = 75.75
    Next
   
    '列の幅を設定
    For i = 2 To 8
        Sheets(mm & "月").Cells(1, i).ColumnWidth = 12
    Next

    For i = 1 To 7
        Select Case i
            Case 1: s = "日"
            Case 2: s = "月"
            Case 3: s = "火"
            Case 4: s = "水"
            Case 5: s = "木"
            Case 6: s = "金"
            Case 7: s = "土"
        End Select
        '曜日をセット
        ActiveSheet.Range(scell).Offset(1, i - 1) = s
        '中央に表示
        ActiveSheet.Range(scell).Offset(1, i - 1).HorizontalAlignment = xlHAlignCenter
    Next
    '日曜日の色
    ActiveSheet.Range(ActiveSheet.Range(scell), _
        ActiveSheet.Range(scell).Offset(7, 0)).Font.Color = vbRed
    
    '土曜日の色
    ActiveSheet.Range(ActiveSheet.Range(scell).Offset(0, 6), _
        ActiveSheet.Range(scell).Offset(7, 6)).Font.Color = vbBlue
    
    '開始の曜日
    nc = Weekday(tdate) - 1
    '開始のセル位置
    scell = A1Add(scell, 2, nc)
    
    nrow = 2
    For i = 1 To nlast
        '祭日のチェック
        sjitu = GetSaijituName(tdate)
        If sjitu <> "" Then
            ActiveSheet.Range(scell).Font.Color = vbRed
            '日付のセット
            ActiveSheet.Range(scell) = i & vbCrLf & sjitu
        Else
            '日付のセット
            ActiveSheet.Range(scell) = i
        End If
        tdate = tdate + 1
        
        
        nc = nc + 1
        If nc = 7 Then
            nc = 0
            scell = A1Add(scell, 1, -6)
            nrow = nrow + 1
        Else
            scell = A1Add(scell, 0, 1)
        End If
    Next
    If nc = 0 Then
        nrow = nrow - 1
    End If
    
'日付の表示位置
ActiveSheet.Range(ActiveSheet.Range(startcell).Offset(2, 0), _
ActiveSheet.Range(startcell).Offset(nrow, 6)).HorizontalAlignment _
= xlHAlignLeft
    
'罫線を引く
ActiveSheet.Range(ActiveSheet.Range(startcell).Offset(1, 0), _
ActiveSheet.Range(startcell).Offset(nrow, 6)).Select     Selection.Borders.Weight = xlThin
    Selection.Borders.LineStyle = xlContinuous

    ActiveSheet.Range(startcell).Select

End Sub

スポンサードリンク



実行結果

2009年カレンダー

1月 祭日 : 元日、成人の日
2月 祭日 : 建国記念の日
3月 祭日 : 春分の日
4月 祭日 : みどりの日
5月 祭日 : 憲法記念日、こどもの日
7月 祭日 : 海の日
9月 祭日 : 敬老の日、秋分の日
10月 祭日 : 体育の日
11月 祭日 : 文化の日、勤労感謝の日
12月 祭日 : 天皇誕生日

スポンサードリンク





メニューに戻る

■■■
このサイトの内容を利用して発生した、いかなる問題にも一切責任は負いませんのでご了承下さい
■■■
当ホームページに掲載されているあらゆる内容の無許可転載・転用を禁止します


関連コンテンツ

Copyright (c) Excel-Excel ! All rights reserved