オブジェクト変数について説明します。
オブジェクト変数とは、その名の通りオブジェクトを入れることができる変数になります。
オブジェクトとは、
ブック
シート
セル
のことを指します。
その使い方は以下の通りです。
〇ブックを格納する場合
Dim ブック As Workbook
Set ブック = ThisWorkbook
〇シートを格納する場合
Dim シート As Worksheet
Set シート = Activesheet
〇セルを格納する場合
※1つのセルだけでなく範囲を指定することも可能です
Dim セル As Range
Set セル = Cells(1, 1)
たとえばA1セルに”こんにちは”と書き込むためには以下のように記述します。
Dim 挨拶セル As Range
Set 挨拶セル = Cells(1, 1)
挨拶セル = “こんにちは”
これは、以下のように書くこともできます。
Cells(1, 1) = “こんにちは”
つまりオブジェクト変数は、格納するオブジェクトそのものとして利用できるのです。
それでは便利道具の中での使い方を見てみましょう。
Dim コピー範囲 As Range
Dim コピー先 As Range
Set コピー範囲 = Cells(1, 1)
Set コピー先 = Cells(5, 1)
Call 機能.範囲.C_コピペ(コピー範囲, コピー先, 値貼付)
このように、引数としてセルやシート、ブックを渡す必要がある時には、オブジェクト変数を使って書くようにすると、後々の可読性、メンテナンス性が上がります。
※おまけ※
オブジェクト変数を使う場合は必ず宣言が必要で、その際に型指定をする必要があります。
型指定というのは変数の中に入るデータの形をあらかじめ決めておくもので、下記の赤字の部分です。
Dim 変数名 As 型
よくわからなくても大丈夫、難しいことは考えず、
「S_」がでてきたら、入れたいものに合わせて
ブックを入れたい = Dim ブック As Workbook
シートを入れたい = Dim シート As Worksheet
セルを入れたい = Dim セル As Range
以上の3つのうちどれかを書く、と覚えておけばOKです!