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

Step 8 罫線を引く

日付枠にメモが記入できるように表示位置を左揃えにし、カレンダー全体に細罫線を引きます。

・表示位置を左揃えにするには、範囲を指定しHorizontalAlignment=xlHAlignLeftで設定できます。

・罫線を細線に設定するには、範囲を選択しSelection.Borders.Weight=xlThinで設定できます。

・表全体に格子罫線を引くには、範囲を選択しSelection.Borders.LineStyle=xlContinuousで引くことができます。



Homeに戻る > Excelでアプリケーションソフト > カレンダーソフト

シートのVBAコード

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

'カレンダーを作成
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
    
    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 = 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
        '祭日のチェック
        If GetSaijituName(tdate) <> "" Then
            ActiveSheet.Range(scell).Font.Color = vbRed
        End If
        tdate = tdate + 1
        
        '日付のセット
        ActiveSheet.Range(scell) = i
        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



実行結果

日付がセルの左に表示され、カレンダー全体に罫線を引くことができました。

罫線がセットされました


Homeに戻る > Excelでアプリケーションソフト > カレンダーソフト

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


Copyright (c) Excel-Excel ! All rights reserved