エクセルVBA最速理解です。セルの書式設定「罫線」の内容をVBAで記述します。
Bordersプロパティの使い方を知れば、セルの罫線設定を行えるようになります。
こんにちは じゅんぱ店長 (@junpa33) です。
セルの書式設定をエクセルVBAで操作を行う方法。今回は「セルに引く罫線」です。
帳票作成のためには、セルの罫線の設定では欠かせない設定項目です。非常に重要な項目で頻出ですので、しっかり設定できる様にしておきましょう。
コンテンツ
セル書式設定「罫線」の設定はこれです
作表時にはほぼ必須になる「罫線」の設定は、ワークシートからは、マウスクリックで簡単に行えます。
これをエクセルVBAで行うと、どんなコードを記述すればいいのかということを説明していきます。
「罫線」いろいろな種類を設定するVBAのコード
セルの書式設定の罫線タブの設定項目は、
- 罫線 位置
- 線 スタイル
- 線 色
になっています。
この罫線タブで指定する項目は、VBAコードでは「Bordersプロパティ」になります。
Bordersプロパティとは、Rangeオブジェクトの罫線要件の編集を行うために必要な「Borderオブジェクト」を、呼び出すためのプロパティです。
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 | |
.LineStyle = xlContinuous .Weight = xlHairline | (実線)xlContinuous (極細)xlHairline | |
.LineStyle = xlDot .Weight = xlThin | (点線)xlHairline (細線)xlThin | |
.LineStyle = xlDashDotDot .Weight = xlThin | (二点鎖線)xlDashDotDot (細線)xlThin | |
.LineStyle = xlDashDot .Weight = xlThin | (一点鎖線)xlDashDot (細線)xlThin | |
.LineStyle = xlDash .Weight = xlThin | (破線)xlDash (細線)xlThin | |
.LineStyle = xlContinuous .Weight = xlThin | (実線)xlContinuous (細線)xlThin | |
.LineStyle = xlDashDotDot .Weight = xlMedium | (二点鎖線)xlDashDotDot (中太)xlMedium | |
.LineStyle = xlSlantDashDot .Weight = xlMedium | (斜破線)xlSlantDashDot (中太)xlMedium | |
.LineStyle = xlDashDot .Weight = xlMedium | (一点鎖線)xlDashDot (中太)xlMedium | |
.LineStyle = xlDash .Weight = xlMedium | (破線)xlDash (中太)xlMedium | |
.LineStyle = xlContinuous .Weight = xlMedium | (実線)xlContinuous (中太)xlMedium | |
.LineStyle = xlContinuous .Weight = xlThick | (実線)xlContinuous (極太)xlThick | |
.LineStyle = xlDouble .Weight = xlThick | (二本線)xlDouble (極太)xlThick |
線 色
色については、カラーパレットから選択するのが簡単ですが、これはVBAコード的には、56色の色番号による指定方法になります。
ほかに色の指定方法としては、「Colorプロパティ」によるカラー定数またはRGBによる指定方法になります。
Rangeオブジェクト.Borders(位置の定数).ColorIndex=色番号
Rangeオブジェクト.Borders(位置の定数).Color=カラー定数 または RGB指定
1 | 53 | 52 | 51 | 49 | 11 | 55 | 56 |
9 | 46 | 12 | 10 | 14 | 5 | 47 | 16 |
3 | 45 | 43 | 50 | 42 | 41 | 13 | 48 |
7 | 44 | 6 | 4 | 8 | 33 | 54 | 15 |
38 | 40 | 36 | 35 | 34 | 37 | 39 | 2 |
17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 |
プロパティの定数 | RGB指定 | 色 |
---|---|---|
vbBlack | RGB(0,0,0) | 黒 |
vbRed | RGB(255,0,0) | 赤 |
vbGreen | RGB(0,255,0) | 緑 |
vbYellow | RGB(255,255,0) | 黄 |
vbBlue | RGB(0,0,255) | 青 |
vbMagenta | RGB(255,0,255) | マゼンタ |
vbCyan | RGB(0,255,255) | シアン |
vbWhite | RGB(255,255,255) | 白 |
セルの書式設定「罫線」のVBA まとめ
セルに罫線を引くための設定をVBAコード化すると、結構細かい設定が必要になってきます。
セル範囲の罫線全てに、同じタイプの罫線を一律に設定するのであればまだマシですが、
セルの一つの辺ごとに罫線を設定するとなれば、少なからずコード行数か膨らんでいきます。
同類のコードを簡潔に括れる「Withステートメント」や「セルの範囲」の上手い設定方法(括り方)なども併用しながら、
より簡略簡潔になるVBAコード組み立ても考えて行く必要があります。
エクセルVBAを独習するのに参考書は欠かせません。 参考書選びは自分に合った「相棒」にできるものを選んでいきたいです。
エクセルVBAの独習でおすすめ参考書を7冊選ぶ。良書との出会いは大切です今回の記事はここまでです。 最後までご覧いただき有難うございました。
<記事内容についての告知>
VBAコードの記述記事においては、その記述には細心の注意をしたつもりですが、掲載のVBAコードは動作を保証するものではりません。 あくまでVBAの情報の一例として掲載しています。 掲載のVBAコードのご使用は、自己責任でご判断ください。 万一データ破損等の損害が発生しても当方では責任は負いません。
アンケートでポイ活しよう!!
アンケートに答えれば答えるほど ”使える” ポイントがたまります。