動作検証バージョン:Windows 11 Home + 64bit Excel(バージョン2309 ビルド16811.20004 クイック実行)
「vba アクティブでないシートに罫線を引く」
といった検索でアクセスがありました。
[スポンサードリンク]
アクティブなシートに罫線を引くサンプルマクロ
まず、アクティブなワークシートに罫線を引くコードを確認しましょう。
Sub 罫線を引く()
Range("C3:E5").BorderAround _
LineStyle:=xlContinuous, _
Weight:=xlThick, _
Color:=RGB(255, 0, 0)
End Sub
Range("C3:E5").BorderAround _
LineStyle:=xlContinuous, _
Weight:=xlThick, _
Color:=RGB(255, 0, 0)
End Sub
上記のExcelマクロを実行すると、アクティブシートのC3:E5セルに、赤色の太い外枠罫線が引かれます。
アクティブではないシートに罫線を引くサンプルマクロ
本題のアクティブではないシートに罫線を引く基本は以下のとおりです。
Sub 罫線を引く()
Worksheets("Sheet2").Range("C3:E5").BorderAround _
LineStyle:=xlContinuous, _
Weight:=xlThick, _
Color:=RGB(255, 0, 0)
End Sub
Worksheets("Sheet2").Range("C3:E5").BorderAround _
LineStyle:=xlContinuous, _
Weight:=xlThick, _
Color:=RGB(255, 0, 0)
End Sub
「Sheet2」というシート名のワークシートが存在するブックがアクティブな状態で上記のマクロを実行すると、「Sheet2」シートがアクティブでもアクティブでなくても、C3:E5セルに、先ほどと同様の罫線が引かれます。
先ほどは、
Range("C3:E5").BorderAround _
とRangeプロパティの前に何も指定していなかったため、アクティブシートのC3:E5セルが処理対象になっており、
Worksheets("Sheet2").Range("C3:E5").BorderAround _
とWorksheetから辿ってRangeを取得するコードを書くことで、「Sheet2」シートのC3:E5セルが処理対象になります。
「Sheet2」シートが、アクティブでもアクティブでなくても。
「vba アクティブでないシートに罫線を引く」
と検索なさった方が、どこで躓いたのかわかりませんが、オブジェクトの階層を辿って取得するのが基本です。
最終更新日時:2023-08-20 20:12
[スポンサードリンク]
- Newer:Excelの「書式設定の古くなった値」とは
- Older:xlwingsで図形の色を変更する
Home » Excel VBA Rangeオブジェクト » 罫線・Borders » Excel VBAでアクティブでないシートに罫線を引く