目標
VBAのオブジェクト変数を理解して利用できる。
VBAのオブジェクト変数の概要と利用方法
オブジェクト変数の概要
オブジェクト変数は、様々なオブジェクトを参照するための変数です。通常の変数の利用と異なる点は、「宣言」と「代入」をそれぞれ別のステートメント(DimとSet)で行う必要が点です。
オブジェクト変数の利用方法
- Dimステートメントで変数を宣言する
- 変数の名前をつける
- オブジェク型(総称オブジェクトまたは固有オブジェクト)を指定する
- Setステートメントでオブジェクトを変数に設定する
❶Dimステートメントで変数を宣言する
オブジェクト変数の宣言も、通常の変数の宣言同様でDimというキーワードを利用します。
❷変数の名前をつける
変数の名前については、名前付けにルールがありました。
- 変数名の最初の一文字目は「文字」を使用する
- スペースは利用できない(文字と文字の間を開けない)
- 長さは半角英数字で255文字まで(2文字目以降で数字とアンダースコアが利用可能)
- Excelで使用されている関数やVBAで利用されているメソッドや構文等の単語は変数名に利用できない
「データ型」
名前を指定したあとはデータ型を指定します。データ型の指定には「As」を使用しました。
総称オブジェクト型と固有オブジェクト型
オブジェクト変数には二種類の参照方法(オブジェクトの指定方法)があります。
- 総称オブジェクト型…あらゆるオブジェクトを参照できる指定方法です。
- 固有オブジェクト型…特定のオブジェクトに対して参照ができる指定方法です。
Setステートメントで「参照を代入」
オブジェクト型は宣言は通常の変数と同様にDimを使用しますが、参照の設定(代入)は、変数での値の設定(代入)と違い、Setステートメントを利用して行う必要があります。
Setステートメント
参照したいオブジェクトの設定(代入)で利用します。設定後はオブジェクトへのアクセスに変数名を利用できます。
参照の概要
参照は「オブジェクトや値にアクセスする方法のひとつ」です。
例えば、あるオブジェクト型の変数に参照したいセルの番地を設定すると、該当するセルの様々なプロパティ(フォント、文字の大きさ、セルの色、値など)にアクセスすることが可能になります。
参照の代入方法
任意のセルへの参照を代入したい場合は、該当するセル番地を指定します。
Dimステートメントで宣言し、Setステートメントで参照を設定(代入)すればオブシェクト変数を利用した処理を行うことができます。オブジェクト型の変数を扱う時はこの2つはセットとして覚えておきましょう。
サンプルプロシージャ
次のスクリプトはオブジェクトを利用して簡単なセルの操作を行っています。
Sub cltObject() 'clt:consultationの略…参照という意味
Worksheets("Sheet1").Activate
Dim sampleObject As Object
Dim sampleRange As Range
Set sampleObject = Range("B2")
Set sampleRange = Range("D2")
sampleObject.Interior.ColorIndex = 1
sampleObject.Offset(1).Select
MsgBox "オブジェクトの色を黒くして、オブジェクトを起点として、セルをひとつ下へ移動"
sampleRange.Interior.Color = vbMagenta
sampleRange.Offset(, 1).Select
MsgBox "オブジェクトの色をマゼンタにして、オブジェクトを起点として、セルをひとつ右へ移動"
Set sampleObject = Nothing
Set sampleRange = Nothing
End Sub
実行結果
オブジェクト変数を利用したひとつ目の処理
オブジェクト変数を利用したふたつ目の処理
このようにオブジェクト変数を設定できると、セルやワークシートのプロパティに変数名を利用してアクセスが行えるようになります。その他にも、ファイルなど、様々なオブジェクトの操作も行うことが可能になります。
今回は以上となります。
ブックマークのすすめ
「ほわほわぶろぐ」を常に検索するのが面倒だという方はブックマークをお勧めします。ブックマークの設定は別記事にて掲載しています。