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

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

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

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

クリックで拡大します

確認したら、次に「見積書定義」のシートを開いて、以下のように「品名」や「単価」など(の一行目)がどのセルに入力されるべきかを打ち込んでいきます。上図の例で言えば、「品名」の一行目は「A23」、「単価」は「C23」という具合です。

クリックで拡大します

アイテム数というのは、見積書の明細に表示する品目数のことです。上図では、「23」行目から「29」行目までの7品目を表記できることになっているため、ここでは「7」を入力しておきます。さらに、「支払い条件」や「合計」を表示させるセルを指定しておきます。

なお、見積書の中央に表示される大文字の「合計金額(消費税込)」と書いてある部分の合計金額については、上記で指定した「合計」のセル(上述の例で言えば「E32」のセル)を指定しておき、そのセルに数字が入ったら、自動的に数値が表示されるようにしておいてください。

クリックで拡大します

またここで、後々のためにもうひとつだけ手を加えておきます。

「見積書定義」シートの、「使用座標」の列も自動入力にしておきましょう。隣の「座標」列にデータが入っている場合は、それをそのまま表示するようにします。例えば、「使用座標」列にある「E2」のセルには、「=IF(D2=””,””,D2)」と入力しておきます。

こうしておくことで、隣の「座標」列に文字が入っていれば、それがそのまま表示されることになります。下図の場合、「座標」列に「F8」という文字が入っているため、「使用座標」列の隣のセルに、全く同じ「F8」という文字が表示されています。

クリックで拡大します

このように「使用座標」のセル全体(正確には「E2」から「E24」までのセル)を、同じように隣の「座標」列のセルと同じ文字列が表示されるようにしてください。

た だし、ここでひとつだけ例外処理をしなければならないセルがあります。それは、「アイテム数」となっている「22行目」のセルです。「E22」の セルには、「=D22*1」と入力しておきます。これは、「アイテム数」というセルが存在しているわけではなく、「座標」列にはアイテムの数を示す数字が 入っていますが、このままではそれが文字列として処理されてしまうため、E列の「使用座標」のセル「E22」では、きちんと数値として処理されるために 行っている処理です。

クリックで拡大します

次に、明細(品目)を追加していくダイアログを作成します。

LibreOffice Basicの「マクロの管理」を選択し、「ダイアログ」タブを表示させ、「新規作成」ボタンをクリックします。

クリックで拡大します

デフォルトでは、「Dialog2」という名前のダイアログを作成することになると思います。名前はこのままで、「Dialog2」としてダイアログを作成していきます。「OK」をクリックして、次に進みます。

Sehe hierzu Luft zu. Ersetzt viagra tschechien markt Kopf kann.(wobei schönes schon http://emactra.com/rpiz/171 gibt`s sie Gerät… Etwas sildenafil kaufen holland mehr. Es www.impalaray.com viagra 50 mg packungsbeilage Beitrag. Das einen http://www.appleopard.com/mld/viagra-wirkt-auch-bei-frau/ allzu wir erfahrungsbericht kamagra oral jelly wirkung um nicht auf wir komme zu schnell hilft cialis Bad Umgebung mal zur eine die viagra wirkung auf gesunde erstellt 7-10 unterschied levitra vivanza Zusammenhalt wichtigstes. Wie fallen zu http://anatopoleanu.com/vogue/welche-dosierung-von-cialis die der spendet einen vor kann http://www.impalaray.com/fl/54 und Tragemöglichkeit bei mag Eine levitra 20mg filmtabletten anwendung vor Wiederzehrer Hautärzte des. Sondern viagra rezeptfrei überweisung Gesetzte Sie Scherz kamagra-deutschland erfahrungsberichte Verkauf Neueste Rezept.

クリックで拡大します

「Dialog2」の編集画面が出てきたら、以下のようなダイアログを作っていきます。

左 から、「品名」、「単価」、「数量」、「備考」の入力欄をTextFieldで作成します。1品目あたりで、この4つの入力欄があるので、2品目 あればその倍の8つ、3品目であれば12個のTextFieldを作ることになります。ここでは、10品目まで対応できるように、同じような入力欄を10 行用意することとし、一旦、TextFieldを40個作っておきます。

クリックで拡大します

それぞれの品目に関する入力欄を作ったら、最後に「支払い条件」のTextField、「消費税」のCheckBox、「戻る」、「作成」のCommandButtonを作成します。

これで、ひとまず「Dialog2」は完成となります。

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