Excel VBA | 変数にオブジェクトを代入 (Set文)

Excel VBA VBA
スポンサーリンク

要点まとめ

1. オブジェクト型を使った変数宣言

  • WorksheetRange といったオブジェクトも、通常のデータ型(Integer, String など)と同様に、変数宣言でデータ型として指定できる。
  • 例:
Dim ws As Worksheet
Dim r As Range
VB
  • また、Object 型として宣言すると、あらゆる種類のオブジェクトを代入可能。
  • さらに、Variant 型やデータ型指定なしでもオブジェクトを扱える(ただし型安全性は落ちる)。

2. オブジェクト変数への代入には Set キーワードが必須

  • 通常の数値型や文字列型の変数には、単に = を使って代入できる。
    例:
num = 10 
VB
  • しかしオブジェクト型の変数にオブジェクトを代入する場合は、必ず Set を使わなければならない。
    例:
Set r = Range("B2")
VB
  • Set を省略してただ r = Range("B2") と書くと、「オブジェクト変数または With ブロック変数が設定されていません」というエラーが発生する。

3. Let文との違い

  • 数値や文字列型の代入では、本来は Let 文を使う形式があるが、通常は省略される。
    例:
Let num = 20
VB
  • ただし Set 文は省略できないため、オブジェクト代入時は必ず明示的に Set を使う必要がある。
VBA
スポンサーリンク
シェアする
@lifehackerをフォローする
スポンサーリンク
タイトルとURLをコピーしました