定数の名前や値を調べたい、そんなときはTypeLib Information(tlbinf32.dll)を利用することで調べることができます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | 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ファイル)を指定します。
下記のようにクラス名を指定して調べることもできます。
1 2 3 4 5 6 7 8 9 10 11 | 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
この記事へのコメントはありません。