請求書発行マクロを会社が増えても対応可能に改造したいが?

Question 042k 拙著「組み方講座」 Previous Next
253ページ [3-4-1図] ◆ 環境・・ Excel 2002 & Windows XP
詳細は こちら
はじめまして。今年の2月に本を買いました。
4月から仕事で請求書作成を会社別に、マクロを組んで使っています。
毎日の売上金額が、会社別に必要で、本のとおりでは、うまくいかなく、会社別にマクロを組んで使用してますが、会社が増えていくと、毎回マクロを増やしていかなければならなく、最近もう1度トライして何とか簡単に出来ないか苦戦しております。
先生のとおりの請求書作成の後で、シートごとに会社別に毎日更新できないでしょうか?
Answer   Copyright (C) 2004.9.24 Yoshioh Nagai
拙著「ExcelVBAマクロ組み方講座」をご購読、ありがとうございます。
実践編第3章4~6にわたって学習する「請求書発行のマクロ」を参考にされたとのこと、本のシステムの概要(質問に関係する部分のみ)は下図のとおりです。
本のシステム

比較的簡単にできそうな感じもしますが、ご質問の内容が正確に理解できません。

「毎日の売上金額が、会社別に必要」とは、具体的にどうすればよいのでしょうか?
請求書は一般的に、売り上げた会社が購入した会社(お客さま)に宛てて発行しますね。
あなたが言われる「会社別に必要」とは、売り上げた会社別のように思われるのですが、「会社が増えていくと、毎回マクロを増やして・・」とあり、売り上げた会社(子会社またはグループ会社)がどんどん増えていくということでしょうか?

仮にそうだとすれば、1つのブックの中に、売上データを蓄積している「DB」シートを会社の数だけ作成(限界がありますが)して、どこの会社の請求書でも、そのブックのマクロで作成するという、下図のようなシステム(会社数はもっと多い)でしょうか。
改造システム

マクロコードをご提示いただいてないので、はっきりとは言えませんが、上図の「マクロA」、「マクロB」・・ は殆ど同じで相違点としてはワークシートを選択するコードの名前くらいではないでしょうか。
つまり、 
Sheets("A社").Select となるか、 Sheets("B社").Select となるかというようにです。

そうだとすれば、おそらく請求書を作成したいシートを選択してからマクロを実行しているでしょうから、
シート名を変数で指定するように右のように変更し、     
Sheets(会社名).Select
マクロ開始直後にシート名を取得するコードを追加します。 
会社名 = Activesheet.Name
他にもこれと似た変更が必要かもしれませんが、1つのマクロで済ますことが可能になります。以上を参考にしてチャレンジしてみてください。
なお、この先に質問が出てしまう場合は、ブックとマクロコード等の詳細をご提示いただかないと無理かと思います。 ご承知おきください。
後日情報
ExcelVBAマクロ組み方講座は完売になりました。 が、その後に発売された下記の本にも、同様のマクロが掲載されています。
 ・ 作りながら覚える! Excel VBA マクロ組み方講座

 

Excel VBA Macro