作成したダイアログを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に詳しい説明がある。