「罫線」のVBAを最速理解

vbacellsbordereyecatch

エクセルVBA最速理解です。セルの書式設定「罫線」の内容をVBAで記述します。
Bordersプロパティの使い方を知れば、セルの罫線設定を行えるようになります。

こんにちは じゅんぱ店長 (@junpa33) です。

セルの書式設定をエクセルVBAで操作を行う方法。今回は「セルに引く罫線」です。

帳票作成のためには、セルの罫線の設定では欠かせない設定項目です。非常に重要な項目で頻出ですので、しっかり設定できる様にしておきましょう。

セル書式設定「罫線」の設定はこれです

vbacellsborderp015
vbacellsborderp001

作表時にはほぼ必須になる「罫線」の設定は、ワークシートからは、マウスクリックで簡単に行えます。

これをエクセルVBAで行うと、どんなコードを記述すればいいのかということを説明していきます。

「罫線」いろいろな種類を設定するVBAのコード

vbacellsborderp016

セルの書式設定の罫線タブの設定項目は、

  • 罫線 位置
  • 線 スタイル
  • 線 色

になっています。

この罫線タブで指定する項目は、VBAコードでは「Bordersプロパティ」になります。

Bordersプロパティとは、Rangeオブジェクトの罫線要件の編集を行うために必要な「Borderオブジェクト」を、呼び出すためのプロパティです。

Bordersプロパティ

構文

Rangeオブジェクト.Borders

罫線 位置

まず罫線を引くセルの位置を指定します。セルに罫線を引く位置は全部で8か所あります。

それぞれに引いた罫線には個別にスタイルや色を設定することが出来ます。

罫線の1番目から8番目までそれぞれ独立していますが、その罫線をまとめて「コレクション」と呼んでいます。

  • 8個ある罫線、それぞれの罫線を、Boederオブジェクトと言います。
  • その罫線8個をまとめて、Boerdersコレクションと言います。

Borderオブジェクトの8種類とは、その呼び出す記述方法とは、

罫線の位置定数記述方法
セル範囲の上側xlEdgeTopBorders(xlEdgeTop)
セル範囲の下側xlEdgeBottomBorders(xlEdgeBottom)
セル範囲の左側xlEdgeLeftBorders(xlEdgeLeft)
セル範囲の右側xlEdgeRightBorders(xlEdgeRight)
セル範囲の対角線左上から右下xlDiagonalDownBorders(xlDiagonalDown)
セル範囲の対角線左下から右上xlDiagonalUpBorders(xlDiagonalUp)
セル範囲内の水平線全部xlInsideHorizontalBorders(xlInsideHorizontal)
セル範囲の種直線全部xlInsideVerticalBorders(xlInsideVertical)
セル範囲の縦横格子状指定なしBorders

線 スタイル

罫線のスタイルは線種と太さの組み合わせで決まります。

記述方法

構文

Rangeオブジェクト.Borders(位置の定数).LineStyle=線種の定数

Rangeオブジェクト.Borders(位置の定数).Weight=太さの定数

LineStyleプロパティの定数定数の説明
xlContinuous (デフォルト設定)実線
xlDash破線
xlDashDot一点破線
xlDashDotDot二点破線
xlDot点線
xlDouble二本線
xlSlantDashDot斜破線
xlLineStyleNone 又はxlNone線なし
Weightプロパティの定数定数の説明
xlHairline極細
xlMedium中太
xlThick極太
xlThin (デフォルト設定)細線

線種を省略した場合は、実線 xlContinuous に設定したものとなります。

太さを省略した場合は、細線 xlThin に設定したものとなります。

ただし、線種と太さの両方を省略することは出来ません。

たとえば、セルB3に下記の罫線を設定する場合は・・・

罫線のスタイルスタイル表示のVBA
With Range(“B3”).Borders
<この部分に記述>
End With
組み合わせ説明
線種
太さ
なし.LineStyle = xlLineStyleNone 
vbacellsborderp002.LineStyle = xlContinuous
.Weight = xlHairline
(実線)xlContinuous
(極細)xlHairline
vbacellsborderp003.LineStyle = xlDot
.Weight = xlThin
(点線)xlHairline
(細線)xlThin
vbacellsborderp004.LineStyle = xlDashDotDot
.Weight = xlThin
(二点鎖線)xlDashDotDot
(細線)xlThin
vbacellsborderp005.LineStyle = xlDashDot
.Weight = xlThin
(一点鎖線)xlDashDot
(細線)xlThin
vbacellsborderp006.LineStyle = xlDash
.Weight = xlThin
(破線)xlDash
(細線)xlThin
vbacellsborderp007.LineStyle = xlContinuous
.Weight = xlThin
(実線)xlContinuous
(細線)xlThin
vbacellsborderp008.LineStyle = xlDashDotDot
.Weight = xlMedium
(二点鎖線)xlDashDotDot
(中太)xlMedium
vbacellsborderp009.LineStyle = xlSlantDashDot
.Weight = xlMedium
(斜破線)xlSlantDashDot
(中太)xlMedium
vbacellsborderp010.LineStyle = xlDashDot
.Weight = xlMedium
(一点鎖線)xlDashDot
(中太)xlMedium
vbacellsborderp011.LineStyle = xlDash
.Weight = xlMedium
(破線)xlDash
(中太)xlMedium
vbacellsborderp012.LineStyle = xlContinuous
.Weight = xlMedium
(実線)xlContinuous
(中太)xlMedium
vbacellsborderp013.LineStyle = xlContinuous
.Weight = xlThick
(実線)xlContinuous
(極太)xlThick
vbacellsborderp014.LineStyle = xlDouble
.Weight = xlThick
(二本線)xlDouble
(極太)xlThick

線 色

色については、カラーパレットから選択するのが簡単ですが、これはVBAコード的には、56色の色番号による指定方法になります。

ほかに色の指定方法としては、「Colorプロパティ」によるカラー定数またはRGBによる指定方法になります。

記述方法

構文

Rangeオブジェクト.Borders(位置の定数).ColorIndex=色番号

Rangeオブジェクト.Borders(位置の定数).Color=カラー定数 または RGB指定

ColorIndexの色番号

vbafontsys001
153525149115556
94612101454716
345435042411348
744648335415
384036353437392
1718192021222324
2526272829303132

Colorプロパティのカラー定数とRGB指定

プロパティの定数RGB指定
vbBlackRGB(0,0,0)
vbRedRGB(255,0,0)
vbGreenRGB(0,255,0)
vbYellowRGB(255,255,0)
vbBlueRGB(0,0,255)
vbMagentaRGB(255,0,255)マゼンタ
vbCyanRGB(0,255,255)シアン
vbWhiteRGB(255,255,255)

セルの書式設定「罫線」のVBA まとめ

セルに罫線を引くための設定をVBAコード化すると、結構細かい設定が必要になってきます。

セル範囲の罫線全てに、同じタイプの罫線を一律に設定するのであればまだマシですが、

セルの一つの辺ごとに罫線を設定するとなれば、少なからずコード行数か膨らんでいきます。

同類のコードを簡潔に括れる「Withステートメント」や「セルの範囲」の上手い設定方法(括り方)なども併用しながら、

より簡略簡潔になるVBAコード組み立ても考えて行く必要があります。

エクセルVBAを独習するのに参考書は欠かせません。 参考書選びは自分に合った「相棒」にできるものを選んでいきたいです。

vbastudyeyecatch2 エクセルVBAの独習でおすすめ参考書を7冊選ぶ。良書との出会いは大切です

今回の記事はここまでです。   最後までご覧いただき有難うございました。

エクセルVBA最速理解で必要な知識を集めよう!

エクセルVBA業務ツールで日常の業務改善を行いましょう。

VBAコードの記述記事においては、その記述には細心の注意をしたつもりですが、掲載のVBAコードは動作を保証するものではりません。 あくまでVBAの情報の一例として掲載しています。 掲載のVBAコードのご使用は、自己責任でご判断ください。 万一データ破損等の損害が発生しても当方では責任は負いません。

アンケートでポイ活しよう!!

アンケートに答えれば答えるほど ”使える” ポイントがたまります。

NTTコム サーチ

af_banner01

Dstyle web

dstyleweb_logo
dstyle_320x50-min