こんにちは!ブログをご覧いただきありがとうございます。
今回はエクセルマクロ(VBA)のご紹介をしていきます。
※マクロ、VBA等の用語解説は省かせていただきます。ご了承ください。
はじめに
今回使用するエクセル関数シートは こちら です。
こちらの購入履歴シートを引き続き使用します。

事前に、購入金額シートに「出力」列を追加しておきます。
今回は、この列に「〇」の入った行が領収書に出力される仕様とするためです。

そして、こちらの領収書をワンクリックで作成するようにしていきます。

「領収書発行」ボタンの作成
まず「領収書発行」ボタンを用意しましょう。
開発>挿入>フォームコントロール>ボタン
を選択します。
※開発タブはデフォルトでは表示されておりませんので、表示するよう 設定 お願いいたします。

ボタンを置きたい箇所を選ぶと、このようなダイアログが出ます。
ここはひとまずキャンセルしてください。

ボタンのテキストも分かりやすく「領収書発行」に変更します。

マクロとボタンの関連付け
次にマクロの作成をします。
開発タブの「Visual Basic」をクリックします。

すると、このような画面が現れます。

左側の「Sheet1(購入履歴)」をダブルクリックします。
このようになりましたでしょうか?
ここにマクロのプログラム(VBA)を書いていきます。

>Sub 領収書発行()
End Sub
ここまでできましたら、「領収書発行」ボタンをクリックし、「マクロの登録」を選びます。

先ほど作成した「Sheet1.領収書発行」が現れますので、選択し「OK」を押します。

ここまでで、ボタンにマクロを登録することができました。
マクロのプログラム(VBA)を書く
あとは実際のプログラム(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
このようにすると、ボタンクリックで領収書シートの「発行日」「氏名」「金額」が転記されます。

いかがでしたでしょうか。正直なところこの内容ならVBAで書くことは無いかと思います(領収書シートにVLOOKUP関数を書けば実現できるため)。
しかし、これを応用すれば、一度に複数の領収書を作成することも可能ですので、まずは、とっかかりとしてご紹介しました。
この記事が業務改善のヒントになれば幸いです。
お困りのことがあれば、弊社でサポートすることも可能ですので、お気軽にお問い合わせください。