LibreOffice(Calc)でのマクロ : 16. 見積書作成 (9) – 書式定義ダイアログのボタン設定

ユーザー Mr. Union の写真
2014年8月1日 -- Mr. Union

「Dialog3」ができたら、「決定」、「戻る」のそれぞれのボタンをクリックしたときのマクロを作成します。

クリックで拡大します

まずは、「決定」ボタンをクリックしたときのマクロを作ります。

Sub SetDlg3



 Dim i As

 Long Dim oDoc As Object Dim oSheet As Object Dim oCel As Object Dim Fld(1 to 34) As Object Dim Str As String Dim Val As Long

 oDoc=StarDesktop.CurrentComponent oSheet=oDoc.getSheets.getByName("見積書定義")

 REM=====自社情報 For i=1 to 6 oCel=oSheet.getCellByPosition(2,i)

 ' 自社情報が入力されるセルの取得 Fld(i*2-1)=Dlg3.getControl("TextField" & i*2-1) ' 自社情報が入力されたテキストボックスの取得 oCel.String=Fld(i*2-1).Text ' 取得されたセルにテキストボックスの内容を反映させる

 oCel=oSheet.getCellByPosition(3,i) ' 自社情報の印字されるセル座標が入力されるセルの取得 Fld(i*2)=Dlg3.getControl("TextField" & i*2) ' 自社情報の印字されるセル座標が入力されたテキストボックスの取得 oCel.String=Fld(i*2).Text ' 取得されたセルにテキストボックスの内容を反映させる Next i

 REM=====記載事項1 For i=1 to 4 oCel=oSheet.getCellByPosition(1,i+10) ' 前置語の反映 Fld(i*3+12)=Dlg3.getControl("TextField" & i*3+12) oCel.String=Fld(i*3+12).Text

 oCel=oSheet.getCellByPosition(2,i+10) ' 後置語の反映 Fld(i*3+13)=Dlg3.getControl("TextField" & i*3+13) oCel.String=Fld(i*3+13).Text

 oCel=oSheet.getCellByPosition(3,i+10) ' 記載項目1のセル番号の反映 Fld(i*3+14)=Dlg3.getControl("TextField" & i*3+14) oCel.String=Fld(i*3+14).Text Next i

 REM=====記載事項2 For i=1 to 8 oCel=oSheet.getCellByPosition(3,i+15) ' 記載項目2の反映 Fld(i+26)=Dlg3.getControl("TextField" & i+26) oCel.String=Fld(i+26).Text Next i

 REM=====消費税 oCel=oSheet.getCellByPosition(2,7) ' 消費税率が記載されるセルの取得 Fld(13)=Dlg3.getControl("TextField13") ' 消費税率が入力されたテキストボックスの取得 Str=Fld(13).Text ' 入力された消費税率をテキストとして取得 Val=CLng(Str) ' 入力された消費税率を数値に変換 oCel.Value=Val/100 ' 入力された消費税率を百分率にして、セルに反映させる

 oCel=oSheet.getCellByPosition(3,7) ' 消費税の印字されるセル座標が入力されるセルの取得 Fld(14)=Dlg3.getControl("TextField14") ' 消費税の印字されるセル座標が入力されたテキストボックスの取得 oCel.String=Fld(14).Text ' 取得されたセルにテキストボックスの内容を反映させる

 Dlg3.EndExecute() ' Dialog3を非表示にする Dlg1Show ' Dialog1を表示する

 End Sub

続いて、「戻る」ボタンをクリックしたときのマクロとして、以下のように記述してみます。

Sub Dlg3Back

 Dlg3.EndExecute() ' Dialog3を非表示にする Dlg1Show ' Dialog1を表示する

 End Sub

これで、「戻る」、「決定」のそれぞれのボタンを押した時に実行されるマクロができあがりました。次に、これらをそれぞれのボタンから割り当てます。

以下では、「戻る」ボタンに「Dlg3Back」のマクロを割り当てるときの操作を図示しています。「決定」ボタンの場合には、「SetDlg3」を選択して、これを割り当てます。

クリックで拡大します

以上で、「Dialog3」に関するマクロは完了です。

サンプルファイルはこちら