定数の名前や値を調べたい、そんなときはTypeLib Information(tlbinf32.dll)を利用することで調べることができます。
Option Explicit Public Sub Sample() 'TypeLib Information(tlbinf32.dll)要参照 Dim ta As TLI.TLIApplication Dim ci As TLI.ConstantInfo Dim mi As TLI.MemberInfo Set ta = New TLI.TLIApplication With ta.TypeLibInfoFromFile("MSPPT.OLB") For Each ci In .Constants For Each mi In ci.Members Debug.Print ci.Name, mi.Name, mi.Value Next Next End With End Sub
TypeLibInfoFromFileメソッドは引数にライブラリ(たとえばPowerPointの場合はMSPPT.OLBファイル)を指定します。
下記のようにクラス名を指定して調べることもできます。
Public Sub Sample2() 'TypeLib Information(tlbinf32.dll)要参照 Dim ta As TLI.TLIApplication Dim mi As TLI.MemberInfo Set ta = New TLI.TLIApplication For Each mi In ta.TypeLibInfoFromFile("MSPPT.OLB") _ .Constants.NamedItem("PpSlideLayout").Members Debug.Print mi.Name, mi.Value Next End Sub
OLE/COM Object Viewerを使うと簡単に一覧表示できるので、TypeLib Informationを利用したマクロを使う機会もなかなか無いかもしれませんが、“オブジェクト ブラウザで表示されるクラスのメンバーを書き出したい”、なんてときは役立つかもしれません。
■ 関連Webページ
- Office アプリケーションの組み込み定数の値を取得する方法
- http://support.microsoft.com/kb/239930/ja
- 取得サンプル: CLSNMMBR.EXE プログラムを使用します DLL クラスのメンバー
- http://support.microsoft.com/kb/172988
- Visual Basic: Inspect COM Components Using the TypeLib Information Object Library
- http://msdn.microsoft.com/en-us/magazine/bb985086.aspx
- Windows 2000 リソース キットのツールの管理タスク
- http://support.microsoft.com/kb/927229/ja
この記事へのコメントはありません。