VBAの経験がある程度ある方なら、オブジェクトによってコンパイルエラーになるものと、ならないものがあることを経験則でご存知でしょう。VBAではコンパイルエラーになるオブジェクトと実行時エラーになるオブジェクトがある例えばWorksheetオブジェクトの場合、以下のように存在しないプロパティ・メソッドを呼ぶコードが書かれていれば、コンパイルエラーになります。Subこれに対してRangeオブジェクトの場合は、コンパイルエラーは発生することなく実行ができてしまい、存在しないメソッドの行で実行時エラーが発生します。Sub[スポンサードリンク]Worksheetオブジェクトのように、コンパイルエラーになってくれるほうがありがたいのですけれど、RangeオブジェクトはExcelの中でもっとも複雑なオブジェクトですから、コンパイル時に厳しくチェックするのは難しいのだろうなあ、くらいに思ってきました。コンパイルエラーになるオブジェクトを確認するサンプルマクロ他のオブジェクトの場合どうなのだろうと気になり、いくつかのオブジェクトをテストしてみました。テスト結果は、変数宣言行の後ろに「実行時エラー」または「コンパイルエラー」とコメントを入れています。ブックモジュール・シートモジュールの名前は、デフォルトの「ThisWorkbook」「Sheet1」から変更されていないことを想定しています。Subグローバルメンバーのプロパティから取得できるオブジェクトをメインに、私が気になったものをテストしてみたのですけれど、予想以上にコンパイルエラーにならないオブジェクトがあります。VBAを嫌う、プロのプログラマーさんの気持ちが、少しわかる気もします。VBAでは期待通り、私がテストしたすべてのオブジェクトでコンパイルエラーになりました。それが正常な挙動だろうと感じます。Officeの使い方などを紹介し続け(2012年頃からはVBA関連記事が多め)、毎日5万人の方にご覧いただいています。(2006.12.29)「PERSONAL.XLSは編集中のためロックされています。