あるあるエラー:オブジェクト変数
オブジェクト変数に
シートや範囲のなどオブジェクトを入れようとしたとき
次のようなエラーになったことはありませんか?
どこにも間違いがないように見えるコードで
エラーになります。
どこが分からなくて途方にくれます。
さて、Setステートメントはご存知ですか?
変数とオブジェクト変数があることを知っていれば
Setステートメントも知っていると思います。
誰かが作ったコードを切り貼りして応用していると
オブジェクト変数を知らないで
オブジェクト変数を使っていることがあります。
そのような段階でこのエラーが起こると
エラーの理由が分りません。
値をいれる変数と違って
オブジェクト変数に値を代入するには
Setステートメントを使います。
これは、慣れても忘れることしばしばあります。
次のコードがエラーになるコード例:
Dim sh As Object
sh = Sheet1
こちらがエラーにならないコード例:
Dim sh As Object
Set sh = Sheet1
Sheet1を代入するところでSetステートメントを使っています。
余談ですが、
値を入れる変数にもSetステートメントに似た
Letステートメントがあります。
Basicを知っているひとにはお馴染みです。
大学入試センター試験の数学プログラム問題でも
1回は出てきます。
このLetステートメントはVBAでは省略可能なため
存在を知らない人も多いと思います。
BasicフレイヴァーでVBAをしたいなら必須です。
| 固定リンク
この記事へのコメントは終了しました。

コメント