VBAで罫線を引くためには、範囲を指定する必要があります。
ですが、データの数が一定ではなく、その都度「行・列」が変化する場合に、自動的に最終行まで罫線を引くにはどのようにすればよいのでしょうか?
空白行がある場合はどうすればよいのでしょうか?
今回は、VBAで最終行まで罫線を引く方法について徹底的に解説していきます。
VBAで最終行まで罫線を引く方法
VBAで罫線を引く構文の確認
VBAで罫線を引くためには、以下のように範囲を指定する必要があります。
例:Range(“A2:B8”). Borders. LineStyle=XlContinuous
ちなみに構文は、以下のとおりです。
構文:Rangeオブジェクト. Borders. LineStyle=XlContinuous
さて、Rangeオブジェクトの範囲をいちいち入力するのではなく、オートで変更するには、UsedRangeを使います。次の項目で解説していきます。
UsedRangeプロパティを使う
UsedRangeプロパティは、指定したワークシートで使用済みのセル範囲を取得します。
構文:Worksheetオブジェクト. UsedRange
「Worksheetオブジェクト」には、罫線を引く対象のデータがあるワークシート名を指定します。
もし、アクティブシートに罫線を引くのならば、「Worksheetオブジェクト」にワークシート名を指定しなくても、「ActiveSheet」とすればOKです。
UsedRangeを使って罫線を最終行まで引くサンプルコード
以下の空白行を含む表の最終行(8行目)まで罫線を引くサンプルコードを紹介します。
最終行まで罫線を引くサンプルコード:
Sub 最終行まで罫線を引く()
Dim rng As Range
Set rng = ActiveSheet.UsedRange 'セル範囲にアクティブシートのUsedRangeを入れる。
rng.Borders.LineStyle = xlContinuous 'UsedRangeに罫線を引く。
End Sub
実行結果:
UsedRangeプロパティを使っているので、最終行や最終列が変化しても対応可能です。
注意点としては、セルにデータが入っていなくても、そのセルの文字配置等の形式を変更している場合には、「使用済みセル」と認識されてしまうことです。
以下の表は、セル「E4」の文字配置を中央揃えに変更したため、「E4」を含む行・列、つまりE列まで罫線が引かれてしまうので、注意が必要になります。
コメント