オブジェクト変数について


オブジェクト変数について説明します。

オブジェクト変数とは、その名の通りオブジェクトを入れることができる変数になります。
オブジェクトとは、
 ブック
 シート
 セル
のことを指します。

その使い方は以下の通りです。
〇ブックを格納する場合

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です!