OOobbs3/48
質問
はじめまして。こちらで勉強させていただいています初心者です。 現在、CSV読込タイプの帳票作成をOpenOfficeマクロで挑戦しています。CSV読込後、指定のフォーマットに貼り付けし、新規ドキュメント作成し、ページスタイルの設定まで成功しましたが、フッター部中央にページ数と総ページを入れるところで詰まっています。 こちらのサイトでpagesettingsなど参考にやってみましたが思うようにうまくいきません。 私が思っている結果としては、【メニューバー】-【書式】-【ページ】-【フッター】-【編集】のフッターのコンボボックスにあるページ1/?が設定できればと思っています。帳票作成後に行追加の可能性があるため、総ページ数が特定できないので、このような結果になれればと思っています。 フッターの設定方法についてご助言を頂けたら、非常に助かります。宜しくお願い致します。 回答
利用するページスタイルの RightPageFooterContent から中央のテキストを getCenterText メソッドで取得して編集します。テキストの編集方法は Writer のテキストや Calc のセルのテキストの編集と同じです。 ページ番号とページ総数はフィールドを利用します。 Sub SetFooter oDoc = ThisComponent ' スタイルを取得 oStyleFamilies = oDoc.StyleFamilies oStyles = oStyleFamilies.getByName("PageStyles") oStyle = oStyles.getByName("Default") With oStyle .FooterIsOn = True End With ' 左右共通の場合は右ページ用が利用される oFooterContent = oStyle.RightPageFooterContent ' 中央のテキスト oCenterText = oFooterContent.getCenterText() oCenterText.setString("") ' ページ番号フィールド oNumberField = oDoc.createInstance("com.sun.star.text.textfield.PageNumber") ' ページ総数フィールド oCountField = oDoc.createInstance("com.sun.star.text.textfield.PageCount") ' テキストカーソルで順に挿入 oCursor = oCenterText.createTextCursor() With oCursor .gotoStart(False) oCenterText.insertTextContent(oCursor, oNumberField, False) oCenterText.insertString(oCursor, " / ", False) oCenterText.insertTextContent(oCursor, oCountField, False) End With ' 設定を反映 oStyle.RightPageFooterContent = oFooterContent End Sub テキストカーソルでの編集は慣れると見て編集するカーソルと同じようにできることが分かると思います。
感想,コメント,メモ
|