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) » インテリセンスが効いて自動メンバー表示されるものと、されないものの違い

TrackBack:5

TrackBack URL
Cellsプロパティで自動メンバー表示されない理由 from インストラクターのネタ帳
対象:Excel2003, Excel2007, Excel2010, Excel2013 VBA(Visual Basic for Applicati...
VBAでアクティブシートの名前を取得する-ActiveSheet.Name from インストラクターのネタ帳
アクティブシートの名前を取得する、Excel VBA(Visual Basic for Applications)のコードをご紹介しています。
ListObjectでインテリセンスを有効にするには? from インストラクターのネタ帳
ListObjectでインテリセンスを利用するには、ListObjectオブジェクトを取得するオブジェクト式を、戻りがWorksheetオブジェクトである...
ActiveSheet.でインテリセンスを使う・自動メンバー表示させる裏技 from インストラクターのネタ帳
ActiveSheet.につづくオブジェクト式でインテリセンス・自動メンバー表示を使う裏技をご紹介しています。
プロパティでも自動データヒントは表示される from インストラクターのネタ帳
VBEの自動データヒントは、単なるデータを返すプロパティの場合にも表示されます。

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

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

検索


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

.