« Withを使うか、オブジェクト変数を使うか | トップページ | セルの高さの自動変更をなくす »

2011年9月 4日 (日)

あるあるエラー:オブジェクト変数

オブジェクト変数に
シートや範囲のなどオブジェクトを入れようとしたとき
次のようなエラーになったことはありませんか?

どこにも間違いがないように見えるコードで
エラーになります。
どこが分からなくて途方にくれます。

さて、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をしたいなら必須です。

|

« Withを使うか、オブジェクト変数を使うか | トップページ | セルの高さの自動変更をなくす »

コメント

この記事へのコメントは終了しました。

トラックバック


この記事へのトラックバック一覧です: あるあるエラー:オブジェクト変数:

« Withを使うか、オブジェクト変数を使うか | トップページ | セルの高さの自動変更をなくす »