OOobbs/75
質問
お世話になってます。 原稿用紙テンプレートを設定するためのダイアログ-マクロを作ろうとしています。 とりあえずダイアログを表示して、そのラベルに文字を設定するというような非常に初歩的な雛形だけ作りました(お恥ずかしいかぎりです)。 さて、このラベルに、PageStyleオブジェクトのプロパティ(たとえばGridBaseHeight)を設定するにはどうすればいいでしょう? 非常に初歩的な質問で申し訳ありません。 よろしくお願いします。 回答
ところで,質問に関してですが Writer ドキュメントのスタイルオブジェクトはスタイルファミリーコンテナオブジェクトから名前指定で取得します。新しくドキュメントを作成した場合に使われているスタイルは "標準" (英語版だと Default) です。この名前を指定してページスタイルオブジェクトを以下のように取得します。 (変数の定義部分は省略しています) oDoc = ThisComponent 'oDoc = StarDesktop.ActiveFrame.Controller.Model oStyleFamilies = oDoc.getStyleFamilies() oPageStyles = oStyleFamilies.getByName("PageStyles") If oPageStyles.hasByName("標準") Then oPageStyle = oPageStyles.getByName("標準") End If そして,ダイアログオブジェクトを作成します。ここでは,"Standard" ライブラリの Dialog1 というダイアログのダイアログオブジェクトを作成しています。 '-- Dialog Construction DialogLibraries.LoadLibrary("Standard") oDialog = createUnoDialog(DialogLibraries.Standard.Dialog1) さて,ダイアログにあるラベル "Label1" に文字を設定するには, Dim oLabel1 As Object oLabel1 = oDialog.getControl("Label1") oLabel1.Text = oPageStyle.GridBaseHeight とします。 ダイアログを表示するには次のようにします。 oDialog.execute() 表示される GridBaseHeight は 1/100 mm の単位です。(OOo では普通,プロパティー値で長さの次元を持つものはこの 1/100 mm の単位です)
おかげでプロパティをモニターできるようになりました。 モニター機能付き原稿用紙テンプレートを下記においておきます。 http://hermione.s41.xrea.com/pukiwiki/pukiwiki.php?OOoBasic%2FMacros%2Fmanuscriptpaper%2Fdev 僭越ながら、toraさんの日経LinuxでのBasic講座によると、下記のコードは省略して、1行で記述できるんだそうです。 変数宣言が、ちょっと不要になりますネ。 oDoc = ThisComponent oStyleFamilies = oDoc.getStyleFamilies() oPageStyles = oStyleFamilies.getByName("PageStyles") oDoc = ThisComponent.getStyleFamilies().getByName("PageStyles")
|