Excel VBAの覚え書([セルの書式設定]-[罫線](Bordersプロパティ)編)

2024-01-07

■RangeオブジェクトのBordersプロパティ

罫線に関する処理を行う場合、Bordersコレクション(またはBorderオブジェクト)のプロパティを使用します。

Bordersコレクション(またはBorderオブジェクト)は、RangeオブジェクトのBordersプロパティで取得します。

Bordersプロパティの詳細

Microsoftのサイトで「Bordersプロパティ」を調べると、以下のように記載されています。

  • スタイルの罫線またはセル範囲(条件付き書式の一部として定義された範囲を含む)を表すBordersコレクションを返します。

また、オブジェクト・ブラウザでBordersプロパティを参照すると以下のように定義されており、何も引数を指定することなく、Bordersオブジェクトを取得できることがわかります。

  1. Property Borders As Borders

■Bordersコレクション、Borderオブジェクトの詳細

BordersコレクションとBorderオブジェクトのプロパティはほとんど同じなので、1つの表にまとめて掲載します(メソッドはありません)。

(Bordersコレクション、Borderオブジェクトのプロパティ)

Applicationプロパティ(読み取り専用)
説明 Applicationオブジェクト(Excel)を取得
定義 Property Application() As Application
Colorプロパティ
説明 罫線の色をRGB値で設定/取得
定義 Property Color() As Variant
ColorIndexプロパティ
説明 罫線の色をカラー・パレットのインデックスで設定/取得

(※)カラー・パレット番号またはXlColorIndex列挙体を使用可能。
XlColorIndex列挙体は、以下の通り。
xlColorIndexAutomatic(-4105):自動設定
xlColorIndexNone(-4142)       :色なし

定義 Property ColorIndex() As Variant
Countプロパティ(読み取り専用)(Bordersコレクションのみ)
説明 コレクションに含まれるオブジェクトの数を取得
定義 Property Count() As Long
Creatorプロパティ(読み取り専用)
説明 オブジェクトを作成したアプリケーションの整数値を取得

(※)XlCreator列挙体は、以下の値のみ。
xlCreatorCode(1480803660):Macintosh版Excelでのシグネチャ

定義 Property Creator() As XlCreator
Itemプロパティ(読み取り専用)(Bordersコレクションのみ)
説明 セル範囲またはスタイルのいずれかの罫線を表すBorderオブジェクトを取得

(※)XlBordersIndex列挙体は、以下の通り。
xlDiagonalDown(5)     :範囲内の各セルの左上隅から右下に移動する罫線
xlDiagonalUp(6)         :範囲の各セルの左下隅から右上隅に移動する罫線
xlEdgeBottom(9)        :範囲内の下側の罫線
xlEdgeLeft(7)             :範囲の左側の罫線
xlEdgeRight(10)         :範囲の右端の罫線
xlEdgeTop(8)             :範囲内の上側の罫線
xlInsideHorizontal(12):範囲外の罫線を除く、範囲内のすべてのセルの水平罫線
xlInsideVertical(11)    :範囲外の罫線を除く、範囲内のすべてのセルの垂直罫線

定義 Property Item(Index As XlBordersIndex) As Border
LineStyleプロパティ
説明 罫線または輪郭線の種類を設定/取得

(※)XlLineStyle列挙体は、以下の通り。
xlContinuous(1)            :実線
xlDash(-4115)              :破線
xlDashDot(4)                :一点鎖線
xlDashDotDot(5)           :ニ点鎖線
xlDot(-4118)                :点線
xlDouble(-4119)           :2本線
xlLineStyleNone(-4142):線なし
xlSlantDashDot(13)      :斜破線

その他にxlGray25(25%灰色)、xlGray50(50%灰色)、xlGray75(75%灰色)、xlAutomatic(自動)を指定可能。

定義 Property LineStyle() As XlLineStyle
Parentプロパティ(読み取り専用)
説明 指定されたオブジェクトの親オブジェクトを取得
定義 Property Parent() As Object
ThemeColorプロパティ
説明 指定したオブジェクトに適用する配色のテーマの色を設定/取得

(※)XlThemeColor列挙体は、以下の通り。
xlThemeColorAccent1(5)                :Accent1
xlThemeColorAccent2(6)                :Accent2
xlThemeColorAccent3(7)                :Accent3
xlThemeColorAccent4(8)                :Accent4
xlThemeColorAccent5(9)                :Accent5
xlThemeColorAccent6(10)              :Accent6
xlThemeColorDark1(1)                   :Dark1
xlThemeColorDark2(3)                   :Dark2
xlThemeColorFollowedHyperlink(12):表示済みのハイパーリンク
xlThemeColorHyperlink(11)             :ハイパーリンク
xlThemeColorLight1(2)                   :Light1
xlThemeColorLight2(4)                   :Light2

定義 Property ThemeColor() As XlThemeColor
TintAndShadeプロパティ
説明 色を明るく、または暗くする単精度浮動小数点型(Single)の値を設定/取得
定義 Property TintAndShade() As Variant
Valueプロパティ(Bordersコレクションのみ)
説明 罫線または輪郭線の種類を設定/取得(LineStyleプロパティと同様)
定義 Property Value() As XlLineStyle
Weightプロパティ
説明 罫線の重みを表す値を設定/取得

(※)XlBorderWeight列挙体は、以下の通り。
xlHairline(1)       :細線(最も細い罫線)
xlMedium(-4138):普通
xlThick(4)           :太線(最も太い罫線)
xlThin(2)            :極細

定義 Property Weight() As XlBorderWeight

■Bordersコレクション、Borderオブジェクトの使用方法

基本的な使用法は、以下の通りです。

格子状に罫線を引く

BordersコレクションのLineStyleプロパティに線種を設定することにより、格子状に罫線を引くことができます。

  1. sht.UsedRange.Borders.LineStyle = xlContinuous

外枠の罫線を引く

BordersコレクションのLineStyleプロパティで設定可能ですが、1本ずつ罫線を引く必要があって面倒なので、RangeオブジェクトのBorderAroundメソッドを使用します。

(BorderAroundメソッドの定義)

BorderAroundメソッド
説明 範囲に罫線を追加し、新しい罫線のBorderオブジェクトのColorプロパティ 、LineStyleプロパティ、Weightプロパティを設定する
定義 Function BorderAround([LineStyle], [Weight As XlBorderWeight = xlThin], [ColorIndex As XlColorIndex = xlColorIndexAutomatic], [Color], [ThemeColor])
  1. sht.UsedRange.BorderAround LineStyle:=xlContinuous

上側の罫線を引く

Bordersコレクションにインデックスを指定して上側の罫線を特定したうえ、LineStyleプロパティで線種を設定します。

  1. sht.UsedRange.Borders(xlEdgeTop).LineStyle = xlContinuous

下側の罫線を引く

Bordersコレクションにインデックスを指定して下側の罫線を特定したうえ、LineStyleプロパティで線種を設定します。

  1. sht.UsedRange.Borders(xlEdgeBottom).LineStyle = xlContinuous

左側の罫線を引く

Bordersコレクションにインデックスを指定して左側の罫線を特定したうえ、LineStyleプロパティで線種を設定します。

  1. sht.UsedRange.Borders(xlEdgeLeft).LineStyle = xlContinuous

右側の罫線を引く

Bordersコレクションにインデックスを指定して右側の罫線を特定したうえ、LineStyleプロパティで線種を設定します。

  1. sht.UsedRange.Borders(xlEdgeRight).LineStyle = xlContinuous

内側に垂直の罫線を引く

Bordersコレクションにインデックスを指定して垂直の罫線を特定したうえ、LineStyleプロパティで線種を設定します。

  1. sht.UsedRange.Borders(xlInsideVertical).LineStyle = xlContinuous

内側に水平の罫線を引く

Bordersコレクションにインデックスを指定して水平の罫線を特定したうえ、LineStyleプロパティで線種を設定します。

  1. sht.UsedRange.Borders(xlInsideHorizontal).LineStyle = xlContinuous

右上りの斜線を引く

Bordersコレクションにインデックスを指定して右上りの斜線の罫線を特定したうえ、LineStyleプロパティで線種を設定します。

  1. sht.UsedRange.Borders(xlDiagonalUp).LineStyle = xlContinuous

右下りの斜線を引く

Bordersコレクションにインデックスを指定して右下りの斜線の罫線を特定したうえ、LineStyleプロパティで線種を設定します。

  1. sht.UsedRange.Borders(xlDiagonalDown).LineStyle = xlContinuous

罫線の色を設定する

BordersオブジェクトのColorプロパティにRGB関数で値を設定することにより、罫線の色を設定することができます。

  1. sht.UsedRange.Borders.Color = RGB(255, 0, 0)

カラー・パレットに定義されている色であれば、BordersオブジェクトのColorIndexプロパティでも設定可能です。

  1. sht.UsedRange.Borders.ColorIndex = 3

 

国本温子(著),緑川吉行(著),できるシリーズ編集部(著)
出版社:インプレス
発売日:2022/3/23
単行本(ソフトカバー):A5判/912ページ

大村あつし(著),古川順平(著)
出版社:技術評論社
発売日:2021/1/9
単行本(ソフトカバー):A5判/800ページ

高橋宣成(著)
出版社:技術評論社
発売日:2019/11/25
単行本(ソフトカバー):B5変形判/576ページ

覚え書

Posted by hides