初学者です。
コードの中でタイトルのような単語が度々登場しますが、何のためにあるのかよく分かりません。
Me.は省略してもコードが問題なく通ることもあり、必要性がわかりません。便利だなと思ったのはMe.まで入力すると入力補助でテキストボックスとかの名前が出てくることくらいです。
.Valueに関しては、教材に載っているけど説明が乏しく、何のためにあるのか全く分かりません。
また、テキストボックスを[]で囲む時と囲まない時の違いが分かりません。
丁寧に教えて下さる優しい方がいらっしゃいましたらよろしくお願い致します。
これはかなりのメリットだと思いますが。これがあるおかげで、コード入力がはかどりますし、タイプミスによるエラーも防げます。
また、Me.があれば、フォーム(レポート)に関連するコントロール、メソッド、プロパティと分かりますので、コードを後から読むときに解読しやすいです。ないと、それ以外の何かの可能性も考慮しつつ読む必要がでてきます。
他の関数などと名前が重複したりすると、バグの原因になりかねません。
Valueはそのオブジェクトが持っている値を取得するプロパティです。
このプロパティはよく使用することが多いので既定のプロパティとされていて、省略することができます。
値を取得したいときは省略してもいいのですが、関数などと名前が重複したりするとバグの原因になったりするので、大きなプロジェクトの場合は、省略しない方がいいと思います。
通常は囲まなくても大丈夫ですが、コントロール名に半角スペースが含まれていたり、VBAのコードとバッティングする記号が含まれていたりするとコントロール名と認識できない場合がありまので、その時は必要になります。
人間がコードを記述するときに楽をするための仕様ですね
VBAはコードを記述する際に、高頻度でその用途で使われるモノは省略しても良いとして、様々なモノが省略可能なように作られました
つまり、
Me.
も.Value
も[]
で囲むのも、省略した場合、コードが実行されるタイミングで記述されているとみなしてコードが実行されていますこれらは、省略したとき、意図しない解釈がされてしまう場合には明記する必要があります
例えば「1」という名前のテキストボックスを作成します。これをコード上で記述する場合、単に「
1
」と記述すると、コードの解釈としては数値の「1」を記述したと解釈されますこの記述は常に
a=2
ですこの記述は「
a
に「1という名前のコントロール」の値に「1
」を加えた値を代入する」となりますおふたりとも大変分かりやすい説明です、ありがとうございました。
MOS合格できそうです。