Home » Excel VBA Rangeオブジェクト » Cellsプロパティ » Cellsオブジェクトは存在しない

Cellsオブジェクトは存在しない

対象:Excel2010, Excel2013, Windows版Excel2016

「エクセルvba cellsオブジェクトのみで範囲指定する」
「excel2010 cellsオブジェクト numberformatlocal 日付」
のような、ちょっと残念な検索で、このサイト・インストラクターのネタ帳へのアクセスが、時々あります。

Cellsという名前のオブジェクトは存在しません

まず申し上げたいのは、Excel VBAにCellsという名前のオブジェクトは存在しない、という事実です。

Excel VBAのコードでよく見かける「Cells」は、

Cellsオブジェクトは存在しない

オブジェクトではなく実行時にRangeオブジェクトを返すプロパティです。

[スポンサードリンク]

オブジェクトブラウザーでCellsを完全一致検索する

オブジェクトブラウザーで完全一致検索してみれば、Cellsオブジェクトが存在しないことを確認できます。

オブジェクトブラウザー内で右クリックして表示されるショートカットメニューで[完全に一致する単語だけを検索]オプションをOnにしておいてから、

Cellsオブジェクトは存在しない

ライブラリーを「Excel」に限定して「cells」を検索すると、

Cellsオブジェクトは存在しない

下図のように、Application・Range・Worksheetオブジェクトの、Cellsプロパティだけがヒットして[メンバー]列に表示されます。

Cellsオブジェクトは存在しない

もしも、Cellsオブジェクトが存在しているのならば、[クラス]列にもCellsが表示されているはずですが、Cellsという名前のオブジェクトは存在しませんから、当然、表示されていません。

Rangeはオブジェクトとプロパティ両方に存在する

ちなみに「Range」はオブジェクトとプロパティが存在しますから、オブジェクトブラウザーで「range」を完全一致検索すれば、[クラス][メンバー]の両方に「Range」が表示されています。

Cellsオブジェクトは存在しない

コードに書かれるのはプロパティかメソッド

書籍などでよく見かける、標準モジュール内のオブジェクトを取得する式に書かれているのは、基本的にはプロパティかメソッドであって、オブジェクトではないこと、実行時にプロパティやメソッドによってオブジェクトが返されることを理解しましょう。

この理解できたという状態へ到達するには、オブジェクトブラウザーを調べてプロパティやメソッドが何を返すかをイメージしたり、オブジェクト式の戻りをオブジェクト変数に代入してローカルウィンドウなどで中身を確認したり、といったことを繰り返することが必要で、しばらく時間がかかるはずです。

最終更新日時:2018-10-30 10:11

[スポンサードリンク]

Home » Excel VBA Rangeオブジェクト » Cellsプロパティ » Cellsオブジェクトは存在しない

「Cellsプロパティ」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.