Excel VBA入門 その102:VBAで最終行まで罫線を引く方法

エクセルVBA VBA



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列まで罫線が引かれてしまうので、注意が必要になります。


セルの形式が変更されていると「使用済みセル」と認識されてしまう。

コメント

タイトルとURLをコピーしました