重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

いろいろ過去ログをみたのですが、同じような質問があったのですが
作業の中身が若干違うので、別途質問をさせていただきます。

現在、Excelで顧客管理を行っており、
A列  
取引月
B列
顧客名
C列
商品カテゴリ
D列
商品名
E列
商品数
F列
金額
G列
備考

というようにしております。

シートは、月ごとにわかれていて
平成21年10月、平成21年11月とシートが1年分あります。
ひとつのファイルが1年分となります。

そのブックの中に、別シートを請求書の雛形にしています。

シートのひとつづつ違う内容なのですが
シートを指定して、そのシートにある顧客はすべて印刷する
ような形をつくれないかを考えております。

できればマクロではなく関数だけでやりたいなと思っています。

イメージとしては、VlookUpかなんかで、請求書雛形のシートに、顧客管理月のシートのリンク?先が書いてあるのでそこだけ毎月シートの名前に変更すればできるんじゃないかとは思っているのですが、やり方がいまいちわかりません。

お力をお貸し下さい。

A 回答 (2件)

Googleで「imogasi 請求書」で照会すれば、私の回答に私のアイデアが出ている。


>作業の中身が若干違うので
私も多数回答している。それらの類似質問で類推を働かせることが出来ないようでは、質問の回答を読んでも仕様がない。まだ質問者は
そこまでエクセルの経験が及んでないということです。本件も丸投げ質問です。
ーー
私のやり方は
関数とVBA(極く初歩のもの数行)を使うものです。
関数だけでは絶対印刷は出来ませんから、その方面のことを考えないように。
雛形のシートで印刷しない範囲に1セル考えて、そこに今から印刷するデータのシート名を打ち込みます。仮にX1セルとします。
もうひとつ、行指定するセルを1つ設けます(セルY1とする)。データが2行目から始まるなら2と入れて置きます。
(1)INDIRECT関数の利用
雛形のシートに顧客名セルに =INDIRECT(X1&"!B"& Y1)
と入れます。これでX1に指定したシートのB2セルの氏名が、雛形の
氏名を出すセルに出ます。雛形の氏名以外のセルにも、同様の式を設定してください。BがD(商品名のセル)などに変わるわけです。
これで第2行目の顧客宛の請求書データのセルが完成します。
あとはX1の示す行番号数字を1づつ変化(増やして)させて、印刷し、それを行数分繰り返します。
(2)自動印刷のVBA
標準モジュールに
Sub test01()
For i = 2 To 43 '例として43-1人分の意味
Range("Y1") = i
Range("A1:J25").PrintOut '雛形の印刷範囲がA1:J25と仮定
Next i
End Sub
この部分はエクセルVBAの入門の本(またはエクセルVBAのWEB記事)を読んでください。
Sub End
For Next
PrintOut
セルに値をプログラムで設定
など
ーー
別の月を印刷する場合はX1の値をその月のシート名に変えます。
各シートの最終行はとりあえず目視で変えてください。
普通はプログラムでしますが、一遍に知識を詰め込まないよう略します。
    • good
    • 0
この回答へのお礼

丁寧な回答ありがとうございました!

やはりVBAでないとできないのですね・・・
ちょっと不安ですが参考にさせていただきます。

ありがとうございました!

お礼日時:2009/10/11 09:17

希望する回答ではありません。

申し訳ありません。

ご希望の作業はエクセルで無く、データベースソフトの方が向いています。
データベースソフトと言うこと、アクセスをイメージし、何だか良く分からないと言うことになることが多いと思いますが、お勧めはファイルメーカーです。

興味を持って検討して頂ければ幸いです。
ファイルメーカーで有れば、請求書のひな形(レイアウト)を作れれば、後は毎月必要項目を入力(レコードに入力)し、印刷すれば請求書が完成。
必要に応じてエクセルのように一覧で閲覧することも可能。
今あるエクセルのデータをそのまま読み込める(請求書雛形のシートは出来ないと思います)

ファイルメーカー
http://www.filemaker.co.jp/
    • good
    • 0
この回答へのお礼

早速回答ありがとうございました。

filemakerは検討したことがありましたがDBという壁に
ちょっと足踏みしていました。

Filemakerにしようと思います。
ありがとうございます。

お礼日時:2009/10/11 09:14

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!