この記事では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`の関数を使って、格子罫線の引き方、外枠のみの罫線の引き方、そして罫線の削除方法を詳しく解説しました。これらのコードは、日々の作業を効率化するための強力なツールとなるでしょう。