Excel

【Excel】VBAマクロで罫線を引く(格子状・外枠・最終行まで)方法【Range, Borders, ClearFormats】

当サイトでは記事内に広告を含みます

この記事ではExcelのVBAマクロで罫線を引く(格子状・外枠・最終行まで)について解説していきます。

ポイントとしては

`Range`オブジェクトと

`Borders`プロパティ、そして

`ClearFormats`メソッド

を使用することです。

初心者でもわかりやすいように、変数名を独特な名称(例:gyoukouで行を表す)にしています。

それでは、具体的な手順を詳しく見ていきましょう!

VBAマクロで格子の罫線を引く方法【Range, Borders】

それではまず、格子の罫線を引く方法について解説していきます。

この手順では、データが存在する範囲内のセルに格子罫線を引くマクロを作成します。

範囲は数値で指定し、先頭行や列、最終行や列を動的に認識するコードをご紹介します。

Alt + F11にてVBE画面を開いて、以下コードをコピペしましょう。


Sub KousiKeisen()
    Dim ws As Worksheet
    Set ws = ThisWorkbook.Sheets("Sheet1")

    Dim shimekiriGyou, shimekiriRetu As Long
    shimekiriGyou = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row
    shimekiriRetu = ws.Cells(1, ws.Columns.Count).End(xlToLeft).Column

    Dim kousiRange As Range
    Set kousiRange = ws.Range(ws.Cells(1, 1), ws.Cells(shimekiriGyou, shimekiriRetu))

    With kousiRange.Borders
        .LineStyle = xlContinuous
        .Color = RGB(0, 0, 0)
        .Weight = xlThin
    End With
End Sub

コードのAlt+F8を押し、マクロ選択画面で`KousiKeisen`関数を実行します。このマクロは、シート内にデータがある範囲を認識し、その範囲に格子罫線を引きます。

 

VBAマクロでデータがある外枠だけに罫線を引く方法【Borders】

続いては、データがある外枠のみに罫線を引く方法について解説していきます。ここでは、格子状ではなく、選択範囲の外周にのみ罫線を設定するマクロを紹介します。

Alt + F11にてVBE画面を開いて、以下コードをコピペしましょう。


Sub SotoWakuKeisen()
    Dim ws As Worksheet
    Set ws = ThisWorkbook.Sheets("Sheet1")

    Dim saishuuGyou, saishuuRetu As Long
    saishuuGyou = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row
    saishuuRetu = ws.Cells(1, ws.Columns.Count).End(xlToLeft).Column

    Dim wakuRange As Range
    Set wakuRange = ws.Range(ws.Cells(1, 1), ws.Cells(saishuuGyou, saishuuRetu))

    With wakuRange.Borders(xlEdgeTop)
        .LineStyle = xlContinuous
        .Weight = xlMedium
        .ColorIndex = xlAutomatic
    End With
    With wakuRange.Borders(xlEdgeBottom)
        .LineStyle = xlContinuous
        .Weight

 = xlMedium
        .ColorIndex = xlAutomatic
    End With
    With wakuRange.Borders(xlEdgeLeft)
        .LineStyle = xlContinuous
        .Weight = xlMedium
        .ColorIndex = xlAutomatic
    End With
    With wakuRange.Borders(xlEdgeRight)
        .LineStyle = xlContinuous
        .Weight = xlMedium
        .ColorIndex = xlAutomatic
    End With
End Sub

コードのAlt+F8を押し、マクロ選択画面で`SotoWakuKeisen`関数を実行します。このコードは、データが存在するセルの外周にのみ罫線を適用するため、見やすいレイアウトを提供します。

VBAマクロでシート上の罫線をすべて消す方法【ClearFormats】

最後に、シート上の罫線をすべて消去する方法をご紹介します。この手順では、シート全体の罫線を削除するマクロを作成します。

Alt + F11にてVBE画面を開いて、以下コードをコピペしましょう。


Sub KeisenSakujo()
    Dim ws As Worksheet
    Set ws = ThisWorkbook.Sheets("Sheet1")
    ws.Cells.ClearFormats
End Sub

コードのAlt+F8を押し、マクロ選択画面で`KeisenSakujo`関数を実行します。この単純なマクロは、選択されたシートの全セルのフォーマットをクリアし、すべての罫線を削除します。

まとめ

このように、VBAのコードを使って、Excelシート上の罫線を柔軟に制御することができます。

今回は特に`Range`, `Borders`, `ClearFormats`の関数を使って、格子罫線の引き方、外枠のみの罫線の引き方、そして罫線の削除方法を詳しく解説しました。これらのコードは、日々の作業を効率化するための強力なツールとなるでしょう。