今回使用するエクセル関数シートはこちらです。
まず「領収書発行」ボタンを用意しましょう。
開発>挿入>フォームコントロール>ボタン
を選択します。
※開発タブはデフォルトでは表示されておりませんので、表示するよう設定お願いいたします。
ボタンを置きたい箇所を選ぶと、このようなダイアログが出ます。
ここはひとまずキャンセルしてください。
ボタンのテキストも分かりやすく「領収書発行」に変更します。
あとは実際のプログラム(VBA)を書いていきます。
下記は領収書シートの発行日に値を転記するプログラムです。
このように記述してください。
Sub 領収書発行()
Sheets("領収書").Range("N2").Value = WorksheetFunction.VLookup("〇", Range("A:H"), 2, False)
End Sub
このプログラムを解説します。まず、式の左辺ですが
Sheets("領収書").Range("N2").Value
「領収書」シートのN2セルの値をこれで表します。
領収書シートの「発行日」にあたります。
次に右辺です
WorksheetFunction.VLookup("〇", Range("A:H"), 2, False)
これは、前回の記事でも紹介したVLOOKUP関数を使用しています。
「A列からH列の範囲で”〇”がある箇所から2列目」という内容です。
購入履歴シートで”〇”のついた行の、登録日、つまり2022/1/7が取得できます。
この2022/1/7を、領収書シートの「発行日」にコピーしています。
ユーザー名と購入金額も同様に書きます。
Sub 領収書発行()
Sheets("領収書").Range("N2").Value = WorksheetFunction.VLookup("〇", Range("A:H"), 2, False)
Sheets("領収書").Range("A4:F4").Value = WorksheetFunction.VLookup("〇", Range("A:H"), 3, False)
Sheets("領収書").Range("C8:N9").Value = WorksheetFunction.VLookup("〇", Range("A:H"), 6, False)
End Sub