「エクセルvba cellsオブジェクトのみで範囲指定する」
「excel2010 cellsオブジェクト numberformatlocal 日付」
のような、ちょっと残念な検索で、このサイト・インストラクターのネタ帳へのアクセスが、時々あります。
Cellsという名前のオブジェクトは存在しません
まず申し上げたいのは、Excel VBAにCellsという名前のオブジェクトは存在しない、という事実です。
Excel VBAのコードでよく見かける「Cells」は、
オブジェクトではなく実行時にRangeオブジェクトを返すプロパティです。
オブジェクトブラウザーでCellsを完全一致検索する
オブジェクトブラウザーで完全一致検索してみれば、Cellsオブジェクトが存在しないことを確認できます。
オブジェクトブラウザー内で右クリックして表示されるショートカットメニューで[完全に一致する単語だけを検索]オプションをOnにしておいてから、
ライブラリーを「Excel」に限定して「cells」を検索すると、
下図のように、Application・Range・Worksheetオブジェクトの、Cellsプロパティだけがヒットして[メンバー]列に表示されます。
もしも、Cellsオブジェクトが存在しているのならば、[クラス]列にもCellsが表示されているはずですが、Cellsという名前のオブジェクトは存在しませんから、当然、表示されていません。
Rangeはオブジェクトとプロパティ両方に存在する
ちなみに「Range」はオブジェクトとプロパティが存在しますから、オブジェクトブラウザーで「range」を完全一致検索すれば、[クラス][メンバー]の両方に「Range」が表示されています。
コードに書かれるのはプロパティかメソッド
書籍などでよく見かける、標準モジュール内のオブジェクトを取得する式に書かれているのは、基本的にはプロパティかメソッドであって、オブジェクトではないこと、実行時にプロパティやメソッドによってオブジェクトが返されることを理解しましょう。
この理解できたという状態へ到達するには、オブジェクトブラウザーを調べてプロパティやメソッドが何を返すかをイメージしたり、オブジェクト式の戻りをオブジェクト変数に代入してローカルウィンドウなどで中身を確認したり、といったことを繰り返することが必要で、しばらく時間がかかるはずです。
最終更新日時:2018-10-30 10:11
- Newer:全シートを別々のブックとして保存するExcelマクロ
- Older:選択図形のテキストをVBAで取得する
Home » Excel VBA Rangeオブジェクト » Cellsプロパティ » Cellsオブジェクトは存在しない