【エクセルVBA】表の罫線を引く場所を指定する簡単な方法


drawing-933207_1920
みなさん、こんにちは。
なかじ(@nakaji098)です。

前回は『表の範囲全体に格子状の罫線を引く最も簡単な方法』について紹介しました。

今回は、そこから発展させ、『表の罫線を引く場所を指定する簡単な方法』について紹介したいと思います。

表の範囲に罫線を引く上で、自分の引きたい箇所に罫線を引ければとても便利です。また、空白セルの中に斜線が引ければ、表のバリエーションも増えますね。

そんな便利な機能がエクセルVBAにはありますので、使い方を覚えて活用してみてください。

スポンサーリンク

表に格子状の罫線を引く方法

まずは前回のおさらいをします。

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

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

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

【Borders.Linstyle(xlContinuous)】のように指定するのではなく、【Borders.Linstyle = xlContinuous】のように指定します。

xlContinuousは線の種類を指定する値で、実線を意味します。

セル罫線を引く

それでは、セルに罫線を引く方法です。ここではB2セルに罫線を引きたいと思います。

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

borders2

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

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

表に格子状の罫線を引く

次に、表に格子状の罫線を引く方法です。

表に格子状の罫線を引くには、まず表の範囲を指定し、そこにセルに罫線を引く方法で使った【Rangeオブジェクト.Borders.LineStyle = xlContinuous】です。

このような表に実際に罫線を引いてみます。
borders1

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

borders4

表に格子状の罫線が引かれました。

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

このように、表全体に格子状の罫線を簡単に引くことができます。

表の罫線を引く場所を指定する方法

それでは今回のテーマでの「表の罫線を引く場所を指定する方法」についてです。

Bordersプロパティの説明

先ほどのおさらいで少しふれましたが、どこに罫線を引くかはBordersプロパティで指定することができます。

Rangeオブジェクト.Borders(index)

引数(index)には、罫線を指定します。

この引数を指定することで、線を引く場所が指定できます。引数は指定しないこともでき、引数を指定しないと指定したセルの上下左右の4辺に線を引きます。

引数 線の場所
上下左右
xlDiagonalDown 斜線(左上から右下)
xlDiagonalUp 斜線(右上から左下)
xlEdgeBottom
xlEdgeLeft
xlEdgeRight
xlEdgeTop
xlInsideHorizontal 内側(横)
xlInsideVertical 内側(縦)

このように引数を指定することで、線を引く場所を指定することができ、自分の思い通りの表を作成することができます

指定した場所に罫線を引く

それでは、実際にどのように罫線を引くかを説明します。

まずは、セルに罫線を引く方法で紹介したものです。Bordersコレクションに引数を指定しないことで、上下左右に罫線を引くことができます。

白紙のシートのB2セルに罫線を引きます。

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

borders2

B2セルを囲むように上下左右に罫線が引かれました。Bordersプロパティがあったのは、ただの飾りではなく、罫線を引く場所(上下左右)を指定するためにあったのです。

それでは、B2セルの下だけに罫線を引いてみます。

こちらがコードになります。

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

borders10

B2セルの下に罫線が引かれました。

このように、Bordersプロパティに引数を指定することで、罫線の場所を指定することができます。

次は、B2セルに左上から右下に向かって斜線を引いてみます。

斜線を引くのも、Bordersプロパティで指定することができます。
引数は【xlDiagonalDown】を指定します。

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

borders11

B2セルに斜線が引かれました。

表に罫線を引く

それでは、表に罫線を引く場合はどうなるでしょうか。少しわかりやすくするために、こんどはこのような表を使います。
borders12

おさらいでは表全体に格子状の罫線を引きました。ここでは、それぞれの引数がどのような動きをするか見ていきたいと思います。

表の範囲を指定して、右に線を引く引数【xlEdgeRight】を指定します。

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

borders13

このように、表の右端にだけ罫線がひかれました。

表に格子状の罫線を引く場合と違い、各セルの右に罫線が引かれるのではなく、指定した表の右端だけに罫線が引かれました。これは、このような動きをすると覚えるしかなさそうですね。

他にも見てみましょう。

【xlInsideHorizontal】を使ってみます。この引数はセルの内側に横の線を引きます。

セルの内側とは、どこでしょうか?

実際に、表を指定し罫線を引いてみます。

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

borders14

表の内側に罫線が引かれました!

この表を見てもらえば、表の内側がどこだか分かっていただけると思います。

このように表に罫線を引く際に、Bordersプロパティにどの引数を指定するかで、罫線の引かれる場所などが大きく変わります。

まとめ

今回は『表の罫線を引く場所を指定する簡単な方法』について、ご紹介しました。

はじめに、前回にご紹介したセルや表全体に罫線を引く方法をおさらいしました。

そこから発展させ、Bordersプロパティを上手に使うことで、罫線を引きたい場所を指定することができるようになります。

次回に説明する予定ですが、LineStyleプロパティで線の種類を指定することができます。LineStyleプロパティと、このBordersプロパティを組み合わせることで、作成できる表のバリエーションがぐっと増えます。

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

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

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