「罫線」のVBAを最速理解

vbacellsbordereyecatch

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

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

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

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

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

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

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

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

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

  1. 罫線 位置
  2. 線 スタイル
  3. 線 色

になっています。

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

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

Bordersプロパティ

 構文 

Rangeオブジェクト.Borders

罫線 位置

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

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

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

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

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

罫線の位置 定数 記述方法
セル範囲の上側 xlEdgeTop Borders(xlEdgeTop)
セル範囲の下側 xlEdgeBottom Borders(xlEdgeBottom)
セル範囲の左側 xlEdgeLeft Borders(xlEdgeLeft)
セル範囲の右側 xlEdgeRight Borders(xlEdgeRight)
セル範囲の対角線左上から右下 xlDiagonalDown Borders(xlDiagonalDown)
セル範囲の対角線左下から右上 xlDiagonalUp Borders(xlDiagonalUp)
セル範囲内の水平線全部 xlInsideHorizontal Borders(xlInsideHorizontal)
セル範囲の種直線全部 xlInsideVertical Borders(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 = xlHairlin
(実線)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冊選ぶ。良書との出会いは大切です

vbabgcoloreyecatchセルの背景色を2クリックで他範囲にも展開できるマクロvbasorteyecatchデータの並び替え VBA新旧のSortを実データで実証vbacellsprotecteyecatch「セルの保護」の設定VBAを最速理解vbacellspaint_gradteyecatch「グラデーションの塗りつぶし」のセルを設定するcellspaintpatterneyecatch「塗りつぶしの網掛け」VBAを最速理解vbacellspaintbackeyecatch「塗りつぶし」背景色をVBAで記述するvbacellsbordereyecatch「罫線」のVBAを最速理解vbacellsfonteyecatch「フォント」の操作を最速理解する エクセルVBAvbacellsplacementeyecatch「配置」を最速理解する エクセルVBAvbacellssyoshikieyecatch「表示形式」をVBAコード的に最速理解するVBAcellareaeyecatchセルの範囲選択と設定は14のツールで対応するvbaendpropertyeyecatchEndプロパティで上下左右の最終セルを取得vbaentirecolumneyecatchEntireColumnとColumnの使い方vbaentireroweyecatchEntireRowとRowプロパティの違いvbacolumnseyecatchColumnsプロパティの列指定で参照するvbaunioneyecatchUnionとRangeの一括選択の働きを比較vbaresizeeyecatchResizeプロパティでセル範囲をサイズ変更vbarangevscellseyecatchRange VS Cells !VBAで使えるのはどっちvbausedrangeeyecatchUsedRangeプロパティの使い方のコツvbaborder1eyecatchBordersの/位置/線種/太さ/色/と<外枠だけの罫線>の設置vbarowseyecatchRowsプロパティの働きと関連のメソッドvbadeleteeyecatchセルの編集 DeleteとClearの使い分け 削除とクリアの違いvbacurrentregioneyecatchCurrentRegionは連続データをまとめて掴むSpecialCellseyecatchSpecialCellsメソッドはセル検索し選択するvbacharactereyecatchaCharactersで文字列中の一部の文字を加工するvbafontsyseyecatchaFontプロパティで文字装飾操作をするvbajyufukueyecatchエクセルVBA 同じ項目をまとめる(重複データの整理)コード作成vbafindeyecatch001Findメソッドでの検索の方法とコード組み立てのコツvbalastcelleyecatchデータ入力済セルの最終行番号を取得するvbaoffseteyecatchOffsetプロパティは指定範囲を移動させる

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

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