情報・通信

LibreOffice(Calc)でのマクロ : 11. 見積書作成 (4) – 見積もり明細の入力ダイアログ表示

ユーザー Mr. Union の写真
2014年6月30日 -- Mr. Union

見積書の明細を入力するダイアログができあがったら、それを表示させるマクロを用意します。そのマクロは以下の通り記述します。

LibreOffice(Calc)でのマクロ : 10. 見積書作成 (3) – 見積もり明細の入力ダイアログ作成

ユーザー Mr. Union の写真
2014年6月29日 -- Mr. Union

見積書を作成するにあたり、品名や数量、金額といった項目を入力するダイアログを作ります。

た だし、ここではダイアログを作る前に、ダイアログで入力したそれぞれの内容が、見積書のどこに表示されることになるのかを決めておきます。既に用 意した「見積書フォーム」シートを確認すると、それぞれ「品名」や「単価」、「数量」といった入力欄があります。まずは、この表示がどのセルにあるのかを 確認します。

クリックで拡大します

LibreOffice(Calc)でのマクロ : 9. 見積書作成 (2) – ダイアログからの基本情報入力

ユーザー Mr. Union の写真
2014年6月28日 -- Mr. Union

ダイアログが出来上がったら、そこに入力した情報が、見積書に反映されるようにします。

と ころで、見積書のフォームというのは様々で、例えば、日付の欄が4行目にあったり、5行目にあったりまちまちですし、自社の住所欄が1行で済む会 社もあれば、2行必要なところもあります。ダイアログからの入力内容を、予めその請求書フォームに合わせて決めてしまえばいいですが、それだとフォームが 変更になったときに、いちいちマクロの中身を変えていかなければならず厄介です。

そこで、ここではいろいろなフォームに対応できるよう、見積書の定義をするシートを別途作ってみたいと思います。

Calcのシートを追加して、そのシートに「見積書定義」という名前をつけてみましょう。

LibreOffice(Calc)でのマクロ : 8. 見積書作成 (1) – ダイアログを作る

ユーザー Mr. Union の写真
2014年6月27日 -- Mr. Union

LibreOffice Basicを活かして、見積書を作ってみます。あまり難しいことをせず、簡単なところから作ってみることにしましょう。

まずは、Calcで下図のような見積書を用意してみます。

クリックで拡大します

「小計」や「合計金額」に入る数値は、Calc上の関数「Sum」で自動表示されるようにしておきます。ここに日付や宛先を入力するダイアログを作っていきます。

新規のダイアログ「Dialog1」を新規作成して、以下のようなダイアログを作ってみましょう。

LibreOffice(Calc)でのマクロ : 7. ダイアログ初期値の設定

ユーザー Mr. Union の写真
2014年6月26日 -- Mr. Union

ダイアログが表示された時に、予めテキストボックスに初期値として何か文字列等を入力させておきたい場合は、以下のようになります。

Dim Dlg1 As Object ‘ オブジェクト型変数「Dlg1」を宣言する。

Sub Test ‘ ダイアログを表示させるマクロ。

Dim Fld1 As Object ‘ オブジェクト型変数「Fld1」を宣言する。

DialogLibraries.LoadLibrary(“Standard”)

Dlg1=CreateUnoDialog(DialogLibraries.Standard.Dialog1)

Fld1=Dlg1.getControl(“TextField1″)

LibreOffice(Calc)でのマクロ : 6. ダイアログ入力内容の反映

ユーザー Mr. Union の写真
2014年6月25日 -- Mr. Union

ダイアログのテキストボックスに入力しても、それだけでは何も起こりません。

例えば、ダイアログの「入力」ボタンを押したら、テキストボックスに入力した文字が、Calcのセルに反映されるといた処理がしたいはずです。そのためには、ボタンを押した時に実行されるマクロを予め組んでおく必要があります。

その場合、具体的には次のようになります。

Dim Dlg1 As

ページ

 情報・通信 を購読