プログラミングやパソコン設定など備忘録

あきらちんの技術メモ

VBA

EXCELで領収書の発行管理

投稿日:

はじめに

複写伝票を利用して領収書を発行することが多いかもしれませんが、EXCELで簡単に管理ができると金額の集計など便利になったりします。

一覧表にデータを打ち込んで領収書&領収書(控)を発行するEXCELを作成しましたので公開します。

ダウンロード

こちらからダウンロードしてご利用ください。
※ZIP圧縮してありますので任意のフォルダに解凍してご利用ください。
※シートの保護をしておりますがパスワードは設定しておりません。

ちょこっと解説

一覧表シート

一覧表シートにデータを入力し管理番号を入力して「領収書プレビュー」ボタンを押すとプレビュー画面が表示されます。

管理番号の範囲を指定して「まとめて印刷」ボタンを押すと連続して印刷されます。この場合はプレビュー画面では無く直接印刷されます。

「一覧表クリア」ボタンを押すと一覧表の入力データが全てクリアされます。

領収書シート

領収書シートはA4縦で上段に領収書、下段に領収書(控)が印字されます。

 

一覧表シートの「領収書プレビュー」か「まとめて印刷」ボタンが押されたときに該当するデータを領収書シートにセットして印刷するシンプルな仕組みです。

VBA

 

「領収書プレビュー」ボタンを押した場合は、cmdPrint_Click 部分が実行されます。

ここでは管理番号を取得して該当する行のデータを領収書シートにセットして印刷プレビューしております。

データをセットする前にクリアしておりますので、前のデータが間違って印字されることはありません。

 

「まとめて印刷」ボタンを押した場合は、cmdPrintMulti_Click 部分が実行されます。

ここでは管理番号の始めと終わりを取得して番号の入力の簡単なチェックをおこなっております。

管理番号の範囲をfor文で繰り返して処理しております。データをセットする前にはクリア処理も忘れずに実施しております。

 

「一覧表クリア」ボタンを押した場合は、cmdClear_Click 部分が実行されます。

ここでは一覧表シートのセルB3からデータの終わり(最終行)まで自動で選択したいところですが、シートが保護されていると

ActiveSheet.Range("B3", ActiveCell.SpecialCells(xlLastCell)).Select

が利用できないため今回は500行までを対象にクリアしております。

ActiveSheet.Range("B3", "I500").Select

 

ActiveSheet.Range("B3", ActiveCell.SpecialCells(xlLastCell)).Select は、SHIFT+CTRL+ENDキーを押したときの範囲選択です。シートの保護を解除すれば正常に動作します。

シート保護の解除は「校閲」メニューの「シート保護の解除」をクリックすると解除できます。

 

最後に

印刷ボタンを領収書シートに設置したり、管理番号を入力した段階で領収書をセットするようにしたりと使い勝手を修正することは可能かと思います。

また、発行日の範囲指定で金額の集計をを行うなどもしてあげれば使いやすくなるかもしれません。

領収書のレイアウトを修正する場合は、VBA側のセルアドレス変更に注意してご利用ください。シートに行を挿入したりしてもVBA側は自動的に変更してくれませんので。

 

スポンサードリンク

スポンサードリンク

-VBA
-, , ,

Copyright© あきらちんの技術メモ , 2020 All Rights Reserved Powered by STINGER.