【エクセルVBA】表の範囲全体に格子状の罫線を引く最も簡単な方法


office-620817_1280
みなさん、こんにちは。
なかじ(@nakaji098)です。

これまで表の範囲に取得する方法をいくつか紹介してきました。

今回からは、表に罫線を引く方法などについて、いくつかご紹介していきたいと思います。

罫線を引く方法も複数あり、状況によって使い分ける必要があります。

今回は、『表の範囲全体に格子状の罫線を引く最も簡単な方法』についてです。
表のデータ入力をエクセルVBAで自動化しても、手動で表に罫線を引いていたらもったいないですね。

表に罫線を引く方法を身につけて、データ入力から表を作成するまでを自動化して業務を効率化しましょう。

スポンサーリンク

表の範囲を取得する方法

表の範囲を取得する方法は、これまでに紹介したものが3つあります。

  • CurrentRegionプロパティを使う方法
  • UsedRangeプロパティを使う方法
  • Endプロパティを使う方法

それぞれのプロパティに特徴があり、表の形式によって使い分ける必要があります。

CurrentRegionプロパティ

今回は、CurrentRegionプロパティを使って、表の範囲全体に格子状の罫線を引いていこうと思います。

なので、まずはCurrentRegionプロパティの説明を簡単にします。

以前の記事も参考にしてください。

【エクセルVBA】表が変更されても、表全体の範囲を簡単に取得する方法
表の範囲をRangeプロパティで直接指定することでも表に処理を行うことは可能です。しかし、データは日々更新され、表の範囲も変わっていきます。そんな問題を解決してくれるのがCurrentRegionプロパティです。
Rangeオブジェクト.CurrentRegion

このプロパティを使用することで、指定したRangeオブジェクトのアクティブセル(=空白行と空白列で囲まれたセル範囲)を取得することができます。

実際にCurrentRegionプロパティを使った例です。

このような表の範囲全体を取得します。
borders1

実際のコードです。

Sub 表の範囲を選択()
Worksheets(1).Range("A1").CurrentRegion.Select
End Sub

表範囲選択

表の範囲全体が指定されました。

CurrentRegionを使えば、このように表の範囲を簡単に取得することができます。
ただし、表に空白行がある場合などは、空白行の前までがアクティブセル(表の範囲)となってしまいますので気をつけてください。

罫線を引く方法

罫線を引くには、BordersプロパティLineStyleプロパティを使います。

Rangeオブジェクト.Borders.LineStyle = xlContinuous

Bordersプロパティでは、線を引く場所を、LineStyleプロパティは罫線の種類を指定します。

【Borders.Linstyle(xlContinuous)】のように指定するのではなく、【Borders.Linstyle = xlContinuous】のように指定します。
xlContinuousは線の種類を指定する値で、実線を意味します。

これらのプロパティで線を引く場所や罫線の種類を選ぶことができますが、詳しい説明は次回以降の記事でしたいと思います。

ここでは、、【Borders.Linstyle = xlContinuous】とすることで罫線が引けることを覚えておいてください。

セルに罫線を引く

それでは、セルに罫線を引く方法を紹介していきたいと思います。

まず、白紙の状態のシートのB2セルに罫線を引いてみます。

Sub セルに罫線を引く()
Worksheets(1).Range("B2").Borders.LineStyle = xlContinuous
End Sub

borders2

B2セルが罫線で囲まれました!

【Rangeオブジェクト.Borders.LineStyle = xlContinuous】とすることで、指定したセルを罫線で囲むことができます。

2つのセルに罫線を引く

こんどはB2セルとB3セルに罫線を引きます。

Sub セルに罫線を引く()
Worksheets(1).Range("B2:B3").Borders.LineStyle = xlContinuous
End Sub

borders3

B2セルとB3セルに罫線が引かれました。

このように指定する範囲を広げると、指定された範囲に罫線が引かれます。

表の範囲全体に格子状の罫線を最も簡単に引く方法

それでは、今回のテーマである『表の範囲に格子状の罫線を最も簡単に引く方法』です。

ここまでの説明で、どのようなコードを書けばいいのかは、だいたい想像がついていると思います。

それでは実際に、表に罫線を引いていきます。

先ほども使った、こちらの表に罫線を引きます。
borders1

実際のコードがこちらです。

Sub 表全体に格子状の罫線を引く()
Worksheets(1).Range("B2").CurrentRegion.Borders.LineStyle = xlContinuous
End Sub

borders4

表全体に格子状の罫線が引かれました!

表の範囲を取得した箇所以外は、セルに罫線を引く方法で紹介したものと同じです。
表の範囲全体をCurrentRegionプロパティで指定し、その範囲に罫線を引いています。

このように表に格子状の線を引きたい場合は、セルの範囲を指定し、【Borders.LineStyle = xlContinuous】となります。

この方法を見ると、「表の範囲全体を罫線が囲むのではないか」と思うかもしれません。
2つのセルに罫線を引いたときのように、「指定した表の範囲の各セルに罫線を引いた」とイメージすると理解しやすいと思います。

まとめ

今回は、『表の範囲に格子状の罫線を最も簡単に引く方法』についてでした。

CurrentRegionプロパティを使って表の範囲を取得し、その表に格子状の罫線を引きました
表に罫線が引かれることで、データの集まりだったものが、いっきに表らしくなります。

今回紹介した、表に格子状の罫線を引く方法は、実務で使う機会がある方も多いのではないでしょうか。
次の記事では、罫線の種類を変えたり、罫線を引く場所を指定する方法を紹介できればと思います。

連載目次:エクセルVBAで罫線を引く色々なテクニック

エクセルで表を作るとき罫線を引くことでより見やすく整えることができますが、これもVBAにより自動化することができます。このシリーズではエクセルVBAで罫線を引くいくつかの方法を紹介していきます。
  1. 【エクセルVBA】表の範囲全体に格子状の罫線を引く最も簡単な方法
  2. 【エクセルVBA】表の罫線を引く場所を指定する簡単な方法

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