Excel VBA Programming

[ExcelVBA] セルの書式設定[罫線]

2020年3月17日

 

本記事はエクセル2019で動作確認を行っています。

 

 

困ってます
エクセルの罫線をVBAでも引くことができますか?

具体的なコードを教えて下さい。

 

本記事ではこのような疑問にお答えします。

 

サイト運営者であるロンピー(@ronpeee0809)はExcelVBAを使用して10年以上会社部内の業務改善を行っています。

これからVBAを学ぶ方がスムーズに学習を進められる手助けをしていきます。

ロンピー

 

エクセルの罫線はさまざなな種類が準備されていますよね。

もちろんVBAでも希望の罫線を引くことが可能です。

 

[ExcelVBA] セルの書式設定[罫線]

 

エクセルの罫線は書式設定で設定します。

シート上で右クリック>セルの書式設定>罫線

 

 

これをVBAを使用して表示させる方法を解説します。

 

 

罫線の場所の設定

 

(式)

オブジェクト.Borders(設定値)

 

場所を指定するには、Bordersプロパティを使用します。

式の設定値に下記の設定値を選択します。

 

内容 設定値
 xlEdgeTop
xlEdgeBottom
xlEdgeLeft
xlEdgeRight
左上から右下  xlDiagonalDown
左下から右上 xlDiagonalUp
設定範囲の横内側 xlInsideHorizonal
設定範囲の縦内側 xlInsideVertical

 

 

罫線の線と太さ

 

罫線にはいろんな種類の線や太さが準備されています。

 

線の種類を設定するには、

(式)

オブジェクト.Borders(設定値).LineStyle=設定値

 

線の太さを設定するには、

(式)

オブジェクト.Borders(設定値).Weight=設定値

のようにLineStyleプロパティやWeightプロパティを使用します。

 

セルの書式設定を例に記述方法を見ていきましょう。

 

 

sub 罫線の種類()

  Range("A1").Borders(xlDiagonalUp).LineStyle = xlLineStyleNone '①

  With Range("A2").Borders(xlDiagonalUp) '②
  .LineStyle = xlContinuous
  .Weight = xlHairline
 End With

  With Range("A3").Borders(xlDiagonalUp) '③
  .LineStyle = xlDot
  .Weight = xlThin
 End With

  With Range("A4").Borders(xlDiagonalUp) '④
   .LineStyle = xlDashDotDot
   .Weight = xlThin
 End With
 
  With Range("A5").Borders(xlDiagonalUp) '⑤
   .LineStyle = xlDashDot
   .Weight = xlThin
 End With

  With Range("A6").Borders(xlDiagonalUp) '⑥
   .LineStyle = xlDash 
   .Weight = xlThin
 End With

  With Range("A7").Borders(xlDiagonalUp) '⑦
   .LineStyle = xlContinuous
   .Weight = xlThin
 End With

  With Range("A8").Borders(xlDiagonalUp) '⑧
   .LineStyle = xlDashDotDot
   .Weight = xlMedium
 End With

  With Range("A9").Borders(xlDiagonalUp) '⑨
   .LineStyle = xlSlantDashDot
   .Weight = xlMedium
 End With

  With Range("A10").Borders(xlDiagonalUp) '⑩
   .LineStyle = xlDashDot 
   .Weight = xlMedium
 End With

  With Range("A11").Borders(xlDiagonalUp) '⑪
   .LineStyle = xlDash
   .Weight = xlMedium
 End With

  With Range("A12").Borders(xlDiagonalUp) '⑫
   .LineStyle = xlContinuous
   .Weight = xlMedium
 End With

  With Range("A13").Borders(xlDiagonalUp) '⑬
   .LineStyle = xlContinuous
   .Weight = xlThick
 End With

  With Range("A14").Borders(xlDiagonalUp) '⑭
   .LineStyle = xlDouble
   .Weight = xlThick
 End With

End Sub

 

<実行結果>

 

ポイント

①のxlLineStyleNone は罫線を消したいときに範囲を指定して使うとOKです。

 

 

罫線の色

 

罫線の色を設定するには、

(式)

オブジェクト.Borders(設定値).Color=設定値

オブジェクト.Borders(設定値).ColorIndex=設定値

オブジェクト.Borders(設定値).ThemeColor=設定値

を使用します。

 

 

いろんな罫線の引き方

 

これまでは一本の線の引き方を見てきました。

・選択範囲の周りを囲む

・格子状に線を引く

上記の方法も見ていきます。

 

選択範囲の周りを囲む

 

(式)

オブジェクト.BorderAround(LineStyle,Weight,Color,ColoIndex,ThemeColor)

罫線の種類や太さ、色を引数に設定し、BorderAroundメソッドを使用することで、選択範囲の周りを囲むことができます。

 

格子状に線を引く

 

罫線の場所の設定をせずに、セル範囲を指定することで、格子状に線を引くことができます。

(例)

Range(Cells(1, 1), Cells(5, 5)).Borders.LineStyle = xlContinuous

 

普通の罫線はBordersプロパティの後ろに場所を設定していました。

範囲を指定した場合はBordersプロパティの後ろに設定値を指定する必要はありません。

 

まとめ

 

今回は罫線のいろいろな記述方法を見てきました。

 

エクセルのセルの書式設定には他にも、

もVBAで操作可能ですので、あわせて知っておきましょう。

 

最後まで目を通していただきありがとうございます。

 

-Excel VBA, Programming
-

Copyright© Ronpeee blog , 2021 All Rights Reserved.