Home » VBE(Visual Basic Editor) » インテリセンスが効いて自動メンバー表示されるものと、されないものの違い

インテリセンスが効いて自動メンバー表示されるものと、されないものの違い

対象:Visual Basic Editor

自動メンバー表示されるものと、されないものの違い

インテリセンス機能の一つ、自動メンバー表示について、Cellsプロパティの場合「cells().」と引数の指定を後回しにしてやればとりあえず表示させられること、この方法はWorksheetsプロパティなどでは使えないということをご紹介しました。

[スポンサードリンク]

自動メンバー表示されるものとされないものの違いとは

そもそも、VBE(Visual Basic Editor)でコーディングするときに、自動メンバー表示されるときとされないときの違いは何なのでしょうか。
▼VBEで自動メンバー表示されない理由
プロパティやメソッドの戻りがObject型など曖昧な型のため

プロパティやメソッドの戻りの型が、明確な場合は自動メンバー表示されるけれど、曖昧な場合には表示されないのです。

WorksheetsオブジェクトのデフォルトプロパティはObjectを返すので自動メンバー表示できない

例えば「Worksheets(1)」という記述は、Worksheetsのデフォルトのプロパティに「1」を指定しているわけです。

オブジェクトブラウザでWorksheetsオブジェクトのデフォルトプロパティを確認すると、詳細ペインに
「Property _Default(Index) As Object」
と記述されています。

自動メンバー表示されるものと、されないものの違い

Worksheetsコレクションオブジェクトの、_Defaultプロパティに、引数・Indexを指定すると、Objectが返される、ということが書かれています。

(お使いのオブジェクトブラウザで「_Default」が表示されていない場合、オブジェクトブラウザ内で右クリックして表示されるショートカットメニューで、[非表示のメンバーを表示]をOnの状態にしてください)

WorkbooksオブジェクトのデフォルトプロパティはWorkbookを返すので自動メンバー表示できる

比較のために、自動メンバー表示されるWorkbooksオブジェクトのデフォルトプロパティを確認しましょう。

自動メンバー表示されるものと、されないものの違い

「Property _Default(Index) As Workbook」
と書かれています。

Workbooksコレクションオブジェクトの、_Defaultプロパティに、引数・Indexを指定すると、Workbookが返されるということが書かれています。

ですから「workbooks(1).」と入力した場合には、Workbookオブジェクトのメンバーが自動的に表示されるのです。

Workbooksプロパティでは返されるのがWorkbookとはっきりしているため、Workbookオブジェクトのメンバーを自動的に表示できますが、Worksheetsプロパティでは返されるのがObjectという曖昧な状態ですから、自動メンバー表示しようがないのです。

ActiveSheetの戻りはObjectだから自動メンバー表示できず、ActiveBookの戻りはWorkbookだから自動メンバー表示できる

グローバルなプロパティでも同じことが確認できます。

ActiveSheetプロパティの戻りはObjectですから自動メンバー表示できず、

自動メンバー表示されるものと、されないものの違い

ActiveBookプロパティの戻りはWorkbookですから自動メンバー表示できるわけです。

自動メンバー表示されるものと、されないものの違い

これが、VBEで自動メンバー表示されるプロパティ・メソッドと、表示されないプロパティ・メソッドの違いです。違いの原則です。

じゃあCellsの場合は?

ここまで読んでいただけたら、もちろん、オブジェクトブラウザで、グローバルのCellsプロパティを確認してらっしゃることでしょう。

そして、オブジェクトブラウザでグローバルなCellsプロパティをご確認いただいた方は、更なる疑問を感じてらっしゃるはずです。

その解説は、別記事で行います。Cellsプロパティで自動メンバー表示されない理由について記事を公開しました。(2013-01-24 追記)

[スポンサードリンク]

Home » VBE(Visual Basic Editor) » インテリセンスが効いて自動メンバー表示されるものと、されないものの違い

「VBE(Visual Basic Editor)」の記事一覧

検索


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

.