表を作る際に必要な罫線について、VBAでの設定方法等を紹介します。
【今回の内容】
1.セル・任意の範囲の外側に罫線を引く方法
2.セル内部・任意の範囲の内部に罫線を引く方法
セル・任意の範囲の外側に罫線を引く
セルや任意の範囲の外側に罫線を引くには、BorderAroundとBordersを用いて設定します。BorderAroundは範囲の外側に罫線を引くだけですが、Bordersは範囲の外側・内部に罫線を書かせる設定を行うことができます。
セル・任意の範囲の外側への罫線の引き方は次のように書きます。
《BorderAroundによる設定方法》
”セル・任意の範囲” .BorderAround LineStyle:=線の種類 , Weight:=線の太さ , Color:=色
《Bordersによる設定方法》
“セル・任意の範囲” .Borders(罫線を引く位置) .設定項目
LineStyle・Weight・Colorへそれぞれ値を指定することで、罫線の書式を設定します。
色については、RGB関数もしくは、ColorIndexを用いても設定可能です。色の設定方法に関しては、こちらの記事で説明しているので参考にしてください。
【VBAで効率化!】セルの操作(セル背景・文字の色の取得・変更)
BordersAroundによる設定では、線の種類・線の太さについて次の値をそれぞれ用いて設定します。
まず、線の種類は次のものがあります。
《線の種類》
線の種類 | 値 | 注意点 |
実線 | xlContinuous | |
破線 | xlDash | 線の太さは、細線(xlThin)もしくは普通(xlMedium)のみ設定可能 |
一点鎖線 | xlDashDot | |
二点鎖線 | xlDashDotDot | |
点線 | xlDot | 線の太さの設定は指定不可能 |
二重線 | xlDouble | |
斜め破線 | xlSlantDashDot | |
なし | xlLineStyleNone |
線の太さに関しては次のものがあります。
《線の太さ》
太さ | 値 |
極細 | xlHairline |
細線 | xlThin |
普通 | xlMedium |
太線 | xlThick |
Bordersプロパティによる設定の方法は次の項目で説明します。
サンプルコード
BorderAroundを用いたサンプルコードです。
Sub BorderAround_sample()
Cells(3, 2).BorderAround LineStyle:=xlContinuous, _
Weight:=xlThin, Color:=RGB(255, 0, 0)
End Sub
With ~ End Withを用いて次のように見やすくすることも可能です。
Sub BorderAround_sample()
With Cells(3, 2)
.BorderAround LineStyle:=xlContinuous
.BorderAround Weight:=xlThin
.BorderAround Color:=RGB(255, 0, 0)
End With
End Sub
セル内部・任意の範囲の内部に罫線を引く
セル内部や、任意の範囲の内側にも罫線を引く場合は、Bodersを用いて設定します。
Bordersによる設定の仕方は、先ほどと同じように次のように書きます。
《Bordersによる設定方法》
“セル・任意の範囲” .Borders(罫線を引く位置) .設定項目 = 値
なお、BorderAroundでは、設定項目とイコールの間にダブルコロンがつきましたが、Bordersではつかないので注意してください。
罫線を引く位置の値は8種類、設定項目は3種類あります。
まずは引く位置の値です。
《線を引く位置》
位置 | 値 |
斜め(左上から右下) | xlDiagonalDown |
斜め(左下から右下) | xlDiagonalUp |
下端 | xlEdgeBottom |
左端 | xlEdgeLeft |
右端 | xlEdgeRight |
上端 | xlEdgeTop |
範囲内の横線 | xlInsideHorizontal |
範囲内の縦線 | xlInsideVertical |
また、設定項目は次の通りです。
《設定項目》
設定項目 | 値 |
線の種類 | LineStyle |
線の太さ | Weight |
色 | Color |
なお、線の種類・太さに関しては、前述の表の値を参照してください。また、色については、先ほどと同様に
【VBA】セルの操作(セル背景・文字の色の取得・変更)を参考にしてください。
サンプルコード
Bordersを利用したサンプルコードです。
.Borders(xlDiagonalDown)
.LineStyle = xlContinuous
.Weight = xlThin
.Color = RGB(0, 255, 0)
End With
With .Borders(xlEdgeBottom)
.LineStyle = xlDot
.Color = RGB(255, 0, 0)
End With
End Sub
Sub Border_sample2()
With Range(Cells(3, 2), Cells(5, 5))
With.Borders(xlInsideHorizontal)
.LineStyle = xlDot
.Weight = xlThin
.Color = RGB(255, 0, 0)
End With
.BorderAround LineStyle:=continuous
.BorderAround Color:=RGB(0, 0, 0)
End With
End Sub
コメント