Pythonでマクロ(4):ダイアログ(フォーム)の配置

作成したダイアログ(フォーム)をLibreOffice:Calcのシート画面上に配置するだけのマクロである。

【ダイアログの作成】

シート画面のプロダウンメニュ「ツール」->「ダイアログの管理」と進む。管理画面で配置ツリーから「マイダイアログ」-> 「Standard」と進み、それをクリックすると連番号のダイアログ名(今はDialog2)が現れる。「新規作成」のボタンを選ぶとマッサラなダイアログ画面がでる。

この画面にいろんな部品(コントロールと呼ぶ)を配置する。

作例では「テキストボックス」(名称:TextField1)と「ボタン」(名称:CommandButtom1)を配置した。プレブーで実際のダイアログの画面が現れるのでする。作例の画面を示す:

上のコントロールが「テキストボックス」で、下のコントロールが「ボタン」である。このダイアログはユーザが「テキストボックス」に字句を入力して「ボタン」を押すとその字句がプログラムで使える(例えばその字句をCalcの表に表示する)。

【配置】

このダイアログをCalcのシート上に配置するマクロを作ってみる。マクロの全体は以下のようになる:


#coding: utf-8

import uno
import unohelper

def dialog_example(*args):
     ctx = XSCRIPTCONTEXT.getComponentContext()
     smgr = ctx.getServiceManager()
     dp = smgr.createInstanceWithContext("com.sun.star.awt.DialogProvider", ctx)
     dialog = dp.createDialog("vnd.sun.star.script:Standard.Dialog2?location=application")
     dialog.execute()
     dialog.dispose()

Basicのマクロ記述に比較すると結構複雑な記述になる。Transfer from Basic to Pythonに詳しい説明がある。