0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

VBA_ワークシート範囲のクラス化

Last updated at Posted at 2025-04-19

次のような入力フォームや指定様式のようなワークシートがあったとします。入出力する箇所が点在しており、コ-ディングする際にセル番号の確認が煩雑になる場合がありますが、あらかじめ処理に必要なセル範囲をクラス化すれば都度確認が不要になります。

20250420_05.jpg

1.クラスモジュールを追加します。
2.クラスモジュールの名前をプロパティで変更します。ここでは「CommonWorksheetRange」とします。
3.クラスモジュール_CommonWorksheetRangeをコーディングします。

クラスモジュール_CommonWorksheetRange
Property Get 印刷シート_住所() As Range
    Set 印刷シート_住所 = Worksheets("印刷シート").Cells(2, 3)
End Property
Property Get 印刷シート_氏名() As Range
    Set 印刷シート_氏名 = Worksheets("印刷シート").Cells(4, 3)
End Property
Property Get 印刷シート_電話番号() As Range
    Set 印刷シート_電話番号 = Worksheets("印刷シート").Cells(7, 3)
End Property

4.使いたいモジュールの宣言セクションで宣言すると、インテリセンスにより自動メンバ表示が使えます。

20250420_06.jpg

5.使用例

標準モジュール_Module1
Public wsRng As New CommonWorksheetRange

Sub テスト()
    wsRng.印刷シート_氏名.ClearContents
    wsRng.印刷シート_住所.ClearContents
    wsRng.印刷シート_電話番号.ClearContents
End Sub
クラスモジュール_CommonWorksheetRange
Property Get 印刷シート() As Range
    With Worksheets("印刷シート")
        Set 印刷シート = Range(.Cells(2, 3), Cells(4, 3), Cells(7, 3))
    End With
End Property
標準モジュール_Module1
Public wsRng As New CommonWorksheetRange

Sub テスト2()
    wsRng.印刷シート.ClearContents
End Sub
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?