Home » エクセルマクロ・Excel VBAの使い方 » ListObjectオブジェクト » ListObjectでインテリセンスを有効にするには?

ListObjectでインテリセンスを有効にするには?

対象:Excel2007, Excel2010, Excel2013, Windows版Excel2016

「listobject vba new 参照設定」
という検索で、このサイト・インストラクターのネタ帳へのアクセスがあることに気づきました。

「ListObjectはExcelライブラリのオブジェクトではない」
と誤解してらっしゃる方による検索キーワードでしょう。

ListObjectオブジェクトは、Excelライブラリに含まれるオブジェクトですから、

ListObjectでインテリセンスを有効にするには?

参照設定する必要はありません。

もちろんコードを書くときにNewキーワードを使う必要もありません。

もしも、AccessなどからExcelへの参照設定が行われていれば、それだけでOKです。ListObjectオブジェクトへの参照設定が別途必要ということはありません。

[スポンサードリンク]

なぜListObjectへの参照設定が必要と誤解したのかという推測

「listobject vba new 参照設定」
という検索をなさった方が、なぜ参照設定が必要と誤解されたかですが、VBE(Visual Basic Editor)上でコードを書くときに、インテリセンスが効かない、自動メンバー表示が行われないからではないかと推測しています。

ListObjectオブジェクトを操作するコードを書く場合、上記のオブジェクトである、Worksheetオブジェクトを取得するオブジェクト式に続くことになります。

例えば、
アクティブなシート上の1つ目のListObjectオブジェクトを操作するなら、
  ActiveSheet.ListObjects(1)
アクティブなブックの一番左のワークシート上の1つ目のListObjectオブジェクトを操作するなら、
  Worksheets(1).ListObjects(1)
といったオブジェクト式を書くことになります。

このときに「ListObjects(1).」まで入力しても、インテリセンスは効かず、自動メンバー表示は行われません。

そのため、ListObjectオブジェクトを使うには何らかの参照設定が必要と誤解されたのではないか、と推測しています。

ListObjectのインテリセンスが効かない理由

ListObjectオブジェクトのインテリセンスが効かない理由を理解しましょう。

ListObjectオブジェクトそのものにはまったく問題はありません。
ListObjectオブジェクトの上位のオブジェクトである、Worksheetオブジェクトを取得するオブジェクト式に原因があります。

例えば、アクティブなシートを取得する際に利用するActiveSheetプロパティを利用して「ActiveSheet.」と入力したあとに続くオブジェクト式では、ListObjectオブジェクトに限らず、どんなオブジェクトでもインテリセンスは働きません。

一番左のワークシートを取得する際に利用するWorksheetsプロパティを利用して「Worksheets.」と入力したあとに続くオブジェクト式では、ListObjectオブジェクトに限らず、どんなオブジェクトでもインテリセンスは働きません。

ActiveSheetプロパティや、Worksheetsプロパティに続くオブジェクト式が、曖昧なObjectを返す作りになってしまっているからです。

ListObjectでインテリセンス機能を利用するには

理由・原因よりも、どうしたらインテリセンス機能を利用できるか、のほうが重要な方もいらっしゃるでしょう。

結論は「Worksheetオブジェクト型のオブジェクト変数を利用する」です。

例えば、
  ActiveSheet.ListObjects(1)
ならば、
  Dim sh As Worksheet
  Set sh = ActiveSheet
  sh.ListObjects(1)
のように書けばインテリセンス機能を利用できます。

例えば、
  Worksheets(1).ListObjects(1)
ならば、
  Dim sh As Worksheet
  Set sh = WorkSheets(1)
  sh.ListObjects(1)
のように書けばインテリセンス機能を利用できます。

[スポンサードリンク]

Home » エクセルマクロ・Excel VBAの使い方 » ListObjectオブジェクト » ListObjectでインテリセンスを有効にするには?

「ListObjectオブジェクト」の記事一覧

検索


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

.