OpenOffice.org Basicでガントチャート
OpenOffice.org Basicを使ってガントチャート作成用マクロ ガントチャートforOOoを開発する手順を紹介していきます。
スポンサーサイト
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
Dbg_Properties - オブジェクトのプロパティを調べる

OOoBasicでマクロを作成する場合に、一番の問題として言えるのは「情報の少なさ」です。
やりたいことがあっても、どのようにしてその問題を解決すればいいのかわからないのでは、実現できるはずがありません。

ただ、操作対象のオブジェクトを取得する方法がわかっていれば、そこに光明はあります。
ここで、とても役に立つのが「Dbg_Properties」です。

例えば、ダイアログの持つプロパティを確認するには、以下のようなコードを書いてみます。ここで、以前作成したdlgSampleを使用します。

Sub Test
    Dim oDialog As Object
    oDialog = createUnoDialog(DialogLibraries.Standard.dlgSample)
    MsgBox oDialog.Dbg_Properties
End Sub

これを実行すると、下記のメッセージが表示されます。

Properties of object 
"stardiv.Toolkit.UnoDialogControl":
SbxOBJECT MenuBar; 
SbxSTRING Title; 
SbxARRAY Types; 
SbxARRAY ImplementationId; 
SbxARRAY TabControllers; 
SbxARRAY Controls; 
SbxSTRING StatusText; 
SbxOBJECT Context; 
SbxOBJECT Peer; 
SbxOBJECT Model; 
SbxOBJECT View; 
SbxBOOL DesignMode; 
SbxOBJECT PosSize; 
SbxBOOL Visible; 
SbxBOOL Enable; 
SbxOBJECT Graphics; 
SbxOBJECT Size; 
SbxSTRING ImplementationName; 
SbxARRAY SupportedServiceNames; 
SbxOBJECT AccessibleContext; 
SbxOBJECT Delegator; 
SbxSTRING Dbg_SupportedInterfaces; 
SbxSTRING Dbg_Properties; 
SbxSTRING Dbg_Methods

これを見ると、「Sbx~」に型名が続き、空白を置いてプロパティ名が一覧できることがわかります。基礎的な英語とプログラミングの知識があれば、この一覧だけでダイアログの情報を取得または設定するために必要なプロパティをほとんど把握できると思います。
また、型名が「SbxOBJECT」となっているものは、それを取得して「Dbg_Properties」を表示する事で、そのオブジェクトの持つプロパティを知る事ができるのです。

試しに、Modelプロパティについて調べてみます。先ほどのコードを多少改造して

MsgBox oDialog.Model.Dbg_Properties
としてみると、結果は下記のようになります。

Properties of object 
"stardiv.Toolkit.UnoControlDialogModel":
SbxLONG/void BackgroundColor; SbxBOOL Closeable; 
SbxSTRING DefaultControl; SbxBOOL Enabled; 
SbxSINGLE FontCharWidth; SbxINTEGER FontCharset; 
SbxOBJECT FontDescriptor; SbxINTEGER FontEmphasisMark; 
SbxINTEGER FontFamily; SbxSINGLE FontHeight; 
SbxBOOL FontKerning; SbxSTRING FontName; 
SbxSINGLE FontOrientation; SbxINTEGER FontPitch; 
SbxINTEGER FontRelief; SbxINTEGER FontSlant; 
SbxINTEGER FontStrikeout; SbxSTRING FontStyleName; 
SbxINTEGER FontType; SbxINTEGER FontUnderline; 
SbxSINGLE FontWeight; SbxINTEGER FontWidth; 
SbxBOOL FontWordLineMode; SbxLONG Height; 
SbxSTRING HelpText; SbxSTRING HelpURL; 
SbxBOOL Moveable; SbxSTRING Name; 
SbxLONG PositionX; SbxLONG PositionY; 
SbxBOOL Sizeable; SbxLONG Step; 
SbxINTEGER TabIndex; SbxSTRING Tag; 
SbxLONG/void TextColor; SbxLONG/void TextLineColor; 
SbxSTRING Title; SbxLONG Width; 
SbxOBJECT PropertySetInfo; SbxSTRING PropertyToDefault; 
SbxOBJECT Events; SbxARRAY Types; 
SbxARRAY ImplementationId; SbxOBJECT Delegator; 
SbxARRAY AvailableServiceNames; SbxOBJECT ElementType; 
SbxARRAY ElementNames; SbxBOOL GroupControl; 
SbxARRAY ControlModels; SbxLONG GroupCount; 
SbxSTRING ServiceName; SbxSTRING ImplementationName; 
SbxARRAY SupportedServiceNames; SbxSTRING Dbg_SupportedInterfaces; 
SbxSTRING Dbg_Properties; SbxSTRING Dbg_Methods

すると、中にフォントや大きさ、色など表示に関する様々なプロパティがあることがわかります。
このような情報は開発者の方々が作成されたオブジェクトについて、それぞれに記載するようなルールになっているようです。ほぼ全てのオブジェクトがこのような情報を持っているので、どうしても見つからない情報があってもこの機能を活用していくことで目的を達成できる可能性が高くなるのではないでしょうか。

スポンサーサイト

テーマ:OpenOffice.org - ジャンル:コンピュータ

コメント
この記事へのコメント
コメントを投稿する
URL:
Comment:
Pass:
秘密: 管理者にだけ表示を許可する
 
トラックバック
この記事のトラックバックURL
http://shinob.blog42.fc2.com/tb.php/42-40b61f33
この記事にトラックバックする(FC2ブログユーザー)
この記事へのトラックバック
COPYRIGHT(C) 2004 POWERD BY FC2 ALLRIGHT RESERVED.
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。