前回に引き続き、マクロ関連の日記です。
公認会計士の監査を受けている会社などの場合、売掛金などの残高が確かかどうか、取引先に確認してもらう手続きがあります。
具体的には、取引先に自社側の売掛金などの残高を記載した「残高確認書」を先方に送付し、取引先に見合いの科目の残高を書いてもらってこれを照合するという流れになります。
そのためこの残高確認書を主要な取引先分作成して送るのですが、大きな会社の場合数千件単位になるので、書類の作成だけでも大変です。
昔勤めていた会社では、残高を手書きして宛名シールを貼ってという人海戦術で対応していたことがあったので、次のような簡単なマクロで自動化したことがありました。
まず残高確認書のひな形を用意します。
文面などは一緒で、変わるのは送り先の住所・名前と勘定科目・残高(網掛け部分)だけなので、ここを差し込みで連続印刷できるようにしてみます。
差し込むデータは、住所録と会計システムから得意先ごとに抽出し、以下のようにリスト化します。
また前回のFAX送付状と同じように、一番上に一列行を設け、vlookup関数で左の番号に対応する宛先と残高を引っ張ってくるようにします。
前回は、トグルボタンで左の数字を切り替えるようにしていましたが、何千件もあるとそんなこともしていられないので、数字を自動で順番に変更して印刷を行うというマクロを作成します。
印刷範囲を指定するため、リストのうちどの番号分を印刷するかを決める、印刷開始番号と印刷終了番号の入力欄を作っておきます。
そうしていよいよマクロの作成です。
印刷開始番号と印刷終了番号は、処理の都度変わるので、変数で対応できるようにしておきます。
印刷開始番号を「Beginningno」、印刷終了番号を「Endingno」と分かりやすい名前の変数と決めます(変数宣言)。
その次に、「Beginningno」に入力した印刷開始番号を格納し、「Endingno」に入力した印刷終了番号を格納します。これで、印刷開始番号から印刷終了番号まで繰り返し同じ処理をする準備ができました。
そして最後に繰り返し処理のマクロを記載します。前回のFAX送付状マクロでは、人間がトグルボタンで番号を切り替え印刷ボタンで印刷をかけていましたが、これをExcelに任せてしまうイメージです。
「For Rep = Beginningno To Endingno」で、印刷開始番号から印刷終了番号まで以下の処理を繰り返すということを意味します。
「Range("G2").Value = Rep」で、一番上の行の左の番号を、印刷開始番号から印刷終了番号まで順々に入れていくことを意味します。
「ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, IgnorePrintAreas:=False」は、一枚印刷することを意味します。
「Next Rep」はまた2行上に戻って、同じ作業を繰り返すということを意味します。
このマクロで、宛名と残高を書き換えながら、残高確認書を順々に印刷していくという作業を、自動でExcelにお任せすることができます。
→こちらのエクセルファイルはこちらからダウンロードできます。
※アルスラーン戦記の新刊が出るみたいですね。
天鳴地動(てんめいちどう) アルスラーン戦記14 (カッパノベルス)
- 作者: 田中芳樹
- 出版社/メーカー: 光文社
- 発売日: 2014/05/16
- メディア: 新書
- この商品を含むブログ (1件) を見る
前の巻が出てから6年ぶり?。