投稿日 | : 2004/11/05(Fri) 11:20 |
投稿者 | : LESIA |
Eメール | : |
URL | : |
タイトル | : Re: Setコマンドが省略できない理由 |
> 先ほど、Picture2.Container = Picture1と書いて、IDEに怒られました。
> (正しくはSet Picture2.Container = Picture1)
>
> 「オブジェクト変数に関する代入文はSet、単純変数に関する代入文はLet、そしてLetは省略可能」
> という文法規則は分かっているのですが、何故Microsoftは「Setも省略可能」にしなかったのかな?
>
> 変数Xがオブジェクトなのか単純変数なのかはDim宣言で分かるはず。
> Dimが省略された場合はVariantで単純変数ですわね。
Variant型変数にもオブジェクトは代入できますよ。
以下のコードを実行してみれば省略できない理由がわかるかも
Dim a As Variant
'変数aにテキストボックスText1を代入
Set a = Text1
Debug.Print TypeName(a)
Debug.Print a.Text
'変数aにテキストボックスText1のデフォルトプロパティTextの値を代入
a = Text1
Debug.Print TypeName(a)
Debug.Print a