このサイトの記事内では「アフィリエイト広告」などの広告を掲載している場合があります。
消費者庁が問題としている「誇大な宣伝や表現」とならないよう配慮しコンテンツを制作しておりますのでご安心ください。
問題のある表現が見つかりましたらお問い合わせよりご一報いただけますと幸いです。

【VBA】罫線を引く方法を徹底解説

2023年12月27日

今回はVBAでセルに罫線を引く方法を紹介します。

罫線を引く方法は難しくはないのですが、マクロの記録を使うとたくさんコードが出てくるため理解に苦しむかもしれません。

きれいなコードを書きたいという人は、この記事でVBAらしい罫線の引き方を覚えてみてください

この記事は次のような人に向けて書いています。

  • VBAで罫線を引く方法を知りたい
  • マクロの記録で作ったコードが理解できなくて困っている
  • きれいなコードを書きたい

VBAが難しいと感じたら
ココナラにてVBAの作成依頼を受け付けています。
ご依頼・ご相談はこちらから

罫線を引く3つの方法

罫線を引く方法は大きく3つに分かれます。

上手に使い分ければ、すっきりとした見やすいプログラムになります。

1.全体に罫線を引く

画像のように全体に罫線を引きたい場合は、次のような1行のコードで済みます。

Sub BorderAll()
'全体に罫線を引く
    Range("A1:B2").Borders.LineStyle = xlContinuous
End Sub

Bordersはコレクションなのですが、引数を指定しないと全体に罫線を引くことができます。

2.個別に罫線を引く

全体ではなく個別に罫線を引きたい場合は、Bordersコレクションに引数を指定します。

セルの右側だけに罫線を引きたい、といった場合はこのやり方を取ります。

また斜めの罫線を引きたい場合も、この方法で指定する必要があります。

Sub BorderSeparate()
'個別に罫線を引く
    With Range("A1:B2")
        .Borders(xlEdgeTop).LineStyle = xlContinuous '範囲内の上側の罫線
        .Borders(xlEdgeBottom).LineStyle = xlContinuous '範囲内の下側の罫線
        .Borders(xlEdgeLeft).LineStyle = xlContinuous '範囲の左側の罫線
        .Borders(xlEdgeRight).LineStyle = xlContinuous '範囲の右端の罫線
        .Borders(xlInsideHorizontal).LineStyle = xlContinuous '範囲内のすべてのセルの水平罫線
        .Borders(xlInsideVertical).LineStyle = xlContinuous '範囲内のすべてのセルの垂直罫線
        .Borders(xlDiagonalDown).LineStyle = xlContinuous '範囲内の各セルの左上隅から右下に移動する罫線
        .Borders(xlDiagonalUp).LineStyle = xlContinuous '範囲の各セルの左下隅から右上隅に移動する罫線
    End With
End Sub

上のコードのように、どの位置に罫線を引きたいかに応じて入れる引数を変更します。

3.外枠の罫線を引く

画像のように外枠のみ罫線を引く方法もあります。
この場合もコードは1行で済みます。

Sub BorderOutside()
'外側に罫線を引く
    Range("A1:B2").BorderAround (xlContinuous)
End Sub

外側の罫線を引く時にはBorderAroundメソッドを使用します。

他の2つと違ってプロパティではなく、メソッドの引数として線のデザインを指定する点に注意してください。

デザインはBorderAround(線種, 太さ, 色)の形で設定できます。

線のデザインの方法(線種/太さ/色)

罫線は線種/太さ/色の3つのデザインを設定することができます。
ここまでのコードも、実はLineStyleプロパティで線種の設定をしています。

ここからは3つのデザインを設定する方法について説明します。

線種の設定方法(LineStyleプロパティ)

線種の設定はLineStyleプロパティで行います。
例:Range(“A1:B2").Borders.LineStyle = xlContinuous

プロパティで設定できる線種は次の表のようになるので、必要に応じて設定してみてください。

名前説明
xlContinuous実線
xlDash破線
xlDashDot一点鎖線
xlDashDotDotニ点鎖線
xlDot点線
xlDouble2 本線
xlLineStyleNone線なし
xlSlantDashDot斜破線

太さの設定方法(Weightプロパティ)

線種の設定はWeightプロパティで行います。
例:Range(“A1:B2").Borders.Weight = xlThin

プロパティで設定できる太さは次の表のようになるので、必要に応じて設定してみてください。

名前説明
xlHairline細線 (最も細い罫線)
xlMedium普通
xlThick太線 (最も太い罫線)
xlThin極細

色の設定方法(Color/ColorIndexプロパティ)

色の設定はColor/ColorIndexプロパティで行います。
例:Range(“A1:B2").Borders.Color = vbRed

プロパティで設定できる色は次の表のようなものがあります。

定数
vbBlack
vbRed
vbGreen
vbYellow
vbBlue
vbMagentaマゼンタ
vbCyanシアン
vbWhite

他にも設定できる色はあります。この表にない色を設定したい場合は、下記の記事を見てください。
また、Colorindexプロパティでも設定できるのですが、おすすめしていません。その理由も下記の記事内で説明しています。

《VBA上級者になりたい人へ》
VBA上級者を目指したい人にはパーフェクトExcel VBA一択です。
この本を読み切れば間違いなくVBA上級者になれます。

VBAが難しいと感じたら
ココナラにてVBAの作成依頼を受け付けています。
ご依頼・ご相談はこちらから

VBA

Posted by やろまい