VBA~セルの罫線の種類、太さ、色を取得しよう~Excel
VBAでセルの罫線の種類、太さ、色を取得したい時はRange.Bordersプロパティで取得できます。
罫線の種類の取得
罫線の種類を取得したい時はBorder.LineStyleプロパティで取得できます。下のコードを実行すると変数aにセルB2の罫線の種類の番号が取得され、その変数aをセルB4の罫線に設定しています。
Sub test1() Dim a As Variant a = Range("B2").Borders.LineStyle Range("B4").Borders.LineStyle = a End Sub
線の種類は以下の通りになります。
名前 | 値 | 説明 |
---|---|---|
xlContinuous | 1 | 実線 |
xlDash | 4115 | 破線 |
xlDashDot | 4 | 一点鎖線 |
xlDashDotDot | 5 | ニ点鎖線 |
xlDot | -4118 | 点線 |
xlDouble | -4119 | 本線 |
xlLineStyleNone | -4142 | 線なし |
xlSlantDashDot | 13 | 斜破線 |
罫線の太さを取得
罫線の太さを取得したい時はBorders.Weightプロパティで取得できます。下のコードを実行すると変数aにセルB2の罫線の太さの番号が取得され、その変数aをセルB4の罫線の太さに設定しています。
Sub test2() Dim a As Variant a = Range("B2").Borders.Weight Range("B4").Borders.Weight = a End Sub
線の太さの種類は以下の通りになります。
名前 | 値 | 説明 |
---|---|---|
xlHairline | 1 | 細線 |
xlMedium | -4138 | 普通 |
xlThick | 4 | 太線 |
xlThin | 2 | 極細 |
罫線の色を取得する
罫線の色を取得したい時はBorder.Colorプロパティで取得できます。下のコードを実行すると変数aにセルB2の罫線の色番号が取得され、その変数aをセルB4の罫線の色に設定しています。
Sub test3() Dim a As Variant a = Range("B2").Borders.Color Range("B4").Borders.Color = a End Sub
範囲の罫線の種類を取得する
範囲を指定したい時はRange("範囲の左上のセル:範囲の右下のセル")で指定できます。下のコードを実行すると変数aにセルB2からセルD4に設定された罫線の種類が取得され、その変数aをセルB6からセルD8の罫線の種類に設定しています。罫線の種類が上下左右、範囲内の水平、垂直でどれかが異なる種類の場合はNullが取得されるのでLineStyleに変数aを設定しても罫線は引かれません。
Sub test4() Dim a As Variant a = Range("B2:D4").Borders.LineStyle Range("B6:D8").Borders.LineStyle = a End Sub
指定したシートに罫線の種類を取得
シートを指定するときはWorksheets("シート名")で指定できます。下のコードを実行するとSheet2のセルB2に罫線が設定されます。下のコードを実行すると変数aにSheet2のセルB2の罫線の種類が取得され、その変数aをSheet2のセルB4の罫線の種類に設定しています。
Sub test5() Dim a As Variant a = Worksheets("Sheet2").Range("B2").Borders.LineStyle Worksheets("Sheet2").Range("B4").Borders.LineStyle = a End Sub
ブックを指定して罫線の種類を取得
ブックを指定するときはWorkbooks("ブック名")で指定できます。Book1.xlsxとBook2.xlsxというブックが開いた状態で下のコードを実行すると変数aにBook1.xlsxのSheet1のセルB2の罫線が取得され、その変数aをBook2.xlsxのSheet1のセルB2の罫線の種類に設定しています。
Sub test6() Dim a As Variant a = Workbooks("Book1.xlsx").Worksheets("Sheet1").Range("B2").Borders.LineStyle Workbooks("Book2.xlsx").Worksheets("Sheet1").Range("B2").Borders.LineStyle = a End Sub