表の罫線、セルのフォントカラー、見出し行の色などの書式設定を一括で設定するマクロの作成を説明します。

上の表を下の表のように、マクロを使って書式設定をします。

スポンサーリンク

データを入力するマクロ

データコード
 コード内、Wクリックでコピーできます。
Sub サンプル2120()

    Range("B2") = "品番"
    Range("C2") = "日付"
    Range("D2") = "商品名"
    Range("E2") = "価格"
    Range("F2") = "数量"
    Range("G2") = "小計"
    
    Range("B3") = "A-1"
    Range("B4") = "A-2"
    Range("B5") = "A-3"
    Range("B6") = "A-4"
    Range("B7") = "A-5"

    Range("C3").FormulaR1C1 = "2/1/2020"
    Range("C4").FormulaR1C1 = "2/2/2020"
    Range("C5").FormulaR1C1 = "2/3/2020"
    Range("C6").FormulaR1C1 = "2/4/2020"
    Range("C7").FormulaR1C1 = "2/5/2020"
    
    Range("D3") = "テレビ"
    Range("D4") = "エアコン"
    Range("D5") = "冷蔵庫"
    Range("D6") = "扇風機"
    Range("D7") = "電子レンジ"

    Range("E3") = 80000
    Range("E4") = 120000
    Range("E5") = 210000
    Range("E6") = 5000
    Range("E7") = 30000
  
    Range("F3") = 12
    Range("F4") = 5
    Range("F5") = 6
    Range("F6") = 25
    Range("F7") = 4
    
    Range("G3") = "=E3 * F3"
    Range("G4") = "=E4 * F4"
    Range("G5") = "=E5 * F5"
    Range("G6") = "=E6 * F6"
    Range("G7") = "=E7 * F7"

End Sub

●マクロの実行結果
データが入力されます。

スポンサーリンク

書式設定を一括で変更するマクロ

サンプルコード
 コード内、Wクリックでコピーできます。
Sub サンプル2125()

    Dim col As Range

    'グリッド線を非表示
    ActiveWindow.DisplayGridlines = False
    
    
    Range("B2").Select    
    With Selection
        Range("B2:G7").Select
    
        '選択セル範囲に対して書式設定
        With Selection
            '上端に実線
            With Selection.Borders(xlEdgeTop)
                .LineStyle = xlContinuous
                .ThemeColor = msoThemeColorAccent6
                .Weight = xlMedium
            End With
            '下端に実線
            With Selection.Borders(xlEdgeBottom)
                .LineStyle = xlContinuous
                .ThemeColor = msoThemeColorAccent6
                .Weight = xlMedium
            End With
        
            '行方向に点線
            With Selection.Borders(xlInsideHorizontal)
                .LineStyle = xlDot
                .ThemeColor = msoThemeColorAccent6
                .Weight = xlThin
            End With
        
            '数式セルのフォントカラー変更
            .SpecialCells(xlCellTypeFormulas).Font.ThemeColor = msoThemeColorAccent5
            
            '1行目(見出し行)の色を設定
            With .Rows(1).Interior
                .ThemeColor = msoThemeColorAccent6
                .TintAndShade = 0.5
            End With
        
            '各列についての書式を設定        
            For Each col In .Columns
            
              '列内の2つ目の値のデータ型によって書式を設定
              Select Case TypeName(col.Cells(2).Value)
                Case "String"
                    col.HorizontalAlignment = xlLeft
                Case "Double"
                    col.HorizontalAlignment = xlRight
                    col.NumberFormatLocal = "#,###"
                Case "Date"
                    col.HorizontalAlignment = xlCenter
                    col.NumberFormatLocal = "mm/dd"
              End Select
            
              '列幅を自動設定し、それよりも少し大きくする
              col.EntireColumn.AutoFit
              col.ColumnWidth = col.ColumnWidth + 2
            Next
        End With
    End With
    
    Range("B2").Select
    
End Sub
Dim col As Range

colを変数として宣言します。

ActiveWindow.DisplayGridlines = False

枠線を非表示にします。(True で表示になります。)

Range("B2").Select
  With Selection
    Range("B2:G7").Select

初めにセルの位置をセルB2にします。次にセルB2からG7までの範囲を指定します。

With Selection.Borders(xlEdgeTop)
     .LineStyle = xlContinuous
     .ThemeColor = msoThemeColorAccent6
     .Weight = xlMedium
End With

上端に実線で緑の線を引きます。

With Selection.Borders(xlEdgeBottom)
     .LineStyle = xlContinuous
     .ThemeColor = msoThemeColorAccent6
     .Weight = xlMedium
End With

下端に実線で緑の線を引きます。

With Selection.Borders(xlInsideHorizontal)
     .LineStyle = xlDot
     .ThemeColor = msoThemeColorAccent6
     .Weight = xlThin
End With

各行の内側に細い点線を引きます。

.SpecialCells(xlCellTypeFormulas).Font. _
     ThemeColor = msoThemeColorAccent5

小計の数式セルの色を設定します。

With .Rows(1).Interior
     .ThemeColor = msoThemeColorAccent6
     .TintAndShade = 0.5
End With

見出し行の色を設定する。

For Each~Case 
Next

列について繰り返す。

Select Case TypeName(col.Cells(2).Value)

列の2番めの値を調べる。

Case "String"
                    col.HorizontalAlignment = xlLeft

文字列のときは、左寄せ。

Case "Double"
                    col.HorizontalAlignment = xlRight
                    col.NumberFormatLocal = "#,###"

データ型がダブルのときは、右寄せで3桁区切り。

Case "Date"
                    col.HorizontalAlignment = xlCenter
                    col.NumberFormatLocal = "mm/dd"

日付のときは、中央揃えで月/日の形にする。

col.EntireColumn.AutoFit
              col.ColumnWidth = col.ColumnWidth + 2

列幅を自動的に調整して、少し大きくする。

スポンサーリンク

テーマ色を確認する

テーマ色を確認するマクロです。

サンプルコード
 コード内、Wクリックでコピーできます。
Sub サンプル2130()

    Range("B2:F2").Select
    With Selection.Borders(xlEdgeBottom)
        .LineStyle = xlContinuous
        .ThemeColor = msoThemeColorAccent1
        .Weight = xlThick
    End With
    
    Range("B4:F4").Select
    With Selection.Borders(xlEdgeBottom)
        .LineStyle = xlContinuous
        .ThemeColor = msoThemeColorAccent2
        .Weight = xlThick
    End With

    Range("B6:F6").Select
    With Selection.Borders(xlEdgeBottom)
        .LineStyle = xlContinuous
        .ThemeColor = msoThemeColorAccent3
        .Weight = xlThick
    End With

●マクロの実行結果

以上で「書式設定を一括で変更する」の説明を終わります。




おすすめの記事