データベースをピボットテーブルで集計して請求書を印刷するには?

Question 8.1 Previous Next
私は下記のようにエクセルでデータベースを作ってみて頑張ってみましたが、結局できず,アクセスというのも買ってしまいました. 以下はニフティのマイクロソフトユーザーズフォーラムで質問してみた文章です.

★まず以下のようなデータベースを作成します.
 社名  内容    売上
 A社  内容1   0000円
 A社  内容2  1000円
 B社  内容3  2000円
 B社  内容2  1000円
 C社  内容3  2000円
★ビポットテーブルで各社ごとの合計売上額を出します.
★請求書のフォーマットを製作します.
   カウント1
インデックス関数にてビポットテーブルの1番目にあるA社を表示させ、る所までは成功しました.(以下、マクロにて連続印刷をするつもり)が、
 請求書
 A社様(インデックス関数により表示)
★内容1   0000円
 内容2   1000円   合計 1000円
と、上記のように内容を列記させるにはどうしたらいいでしょう.

表計算ソフトなので、やはり複数のものは抽出できないのでしょうか?こんな簡単なことなのに、アクセスとかを買わないといけないのでしょうか?
小さな会社を一人でやっているので、そんな難しい経理処理はないはずなのですが、コンピューターを入れることでどんどん複雑になってしまい、楽になるはずが、苦しくなっている私です.疲れました.
市販の請求書発行ソフトを買ってもいいと思ったのですが、私の欲しいものとはまた違っていたので、なんとか自分なりのものを創って見たいと思っていたのですが、他の仕事が手につかず困っています.
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
結局できずじまいで落ち込んでいたのですが…. アクセスのデータベースに変換するのはできたのですが、もう他はちんぷんかんぷんで、喜んであなたのシェアウェアを買わせていただきたいと思います.
しかし、私もエクセルで理想の書類を作ってしまっていたもので,私のフォームにこのプログラムを合わせることなどはできないものでしょうか?
要するに請求書を作ったらデータベースができるんでなくて、データベースから請求書を作ってみたいのです.わかっていただけるといいのですが….よろしくお願いします.
Answer   Copyright (C) 1998.8.11 永井善王
ご苦労なさっているようですので、サンプルマクロとして組んでおきました。
あなたが示されたデータベースをピボットテーブルで集計して、請求書を印刷します。 ただし、インデックス関数は使いませんでした。

それでは一つ一つ、順に考えていきましょう。

事前準備としては、
 1) データベースのシート名は、「DB」とします。
 2) データベースが入っているブックに、ピボットテーブル用のシートを作り、シート名を「ピボット」
   にしておきます。このシートには、何も記入する必要はありません。マクロで使用します。
 3) 印刷用に「請求書」シートを作っておきます。この回答では、このホームページのGalleryに掲載し
   ている 「
請求書画面 」のレイアウトを使いました。

なお、下図の各シートのレイアウトは、回答に必要な最小限のサンプルです。実務に合せて修正してください。

マクロの流れは、下記のとおりです。(B社の流れを図示)
① データベースのシートを選択して →
DBシート
② ピボット
テーブルを
作成すると
③ 下図のピボットテーブルができます →
ピボットシート
④ ピボットテーブルのデータを請求書シートに写して、印刷します
請求書


【参考】
あなたの請求書フォームのレイアウトに合わせて印刷することは、簡単と思われます。

このケースのように、当月の料金だけの請求書なら、もっと簡単なレイアウトでも良いのでしょうから、1枚の紙に複数件印刷した方が能率的かも知れませんネ。
また、住所や郵便番号が必要なら、データベースのシートに入れておく方法が考えられます。
しかし、同姓同名の心配がないなら、別に専用のシートを作った方がマクロの組み方が簡単で、かつ、日常管理も、し易いと思います。
同姓同名が多くある場合は、「お客様番号」とかの工夫が必要になるかと思います。

なお、このケースは毎月決まった料金を請求するための請求書と言えます。つまり、前月残高と当月入金額、当月残高がありません。よって、掛け売りの請求書にするためには、それらの機能を補完する必要があります。

マクロの詳細を 
「DBから請求書を印刷」として掲載しておきました。 実際に動かしてみたければ、「請求書作成」をダウンロードしてください。

Excel VBA Macro