• 締切済み

VBAマクロ:データシートから情報を抽出して顧客別の出荷表を作成したい

いつもこちらではお世話になっています。 ありがとうございます。 今回はマクロで以下のようなことをしたいと考えていますが、どんな組み方がいいでしょうか? いつもながら勉強不足で申し訳ありませんが、お力を貸して頂ければと思います。 まず、下記のようなデータシートがあります。 日付    商品名     顧客コード 9/10   みかん      A0001 9/12   ぶどう      A0002 9/13   いちご      A0001 9/13   いちご      A0002 9/18   鶏肉       B0013 このデータシート上で(例えば)ボタンを押すと 一度に各顧客毎の「出荷表(納品書)」が作成される(別ファイルで保存される)、というようなマクロを組みたいのです。 …A0001の出荷表は、9/10,9/13のデータが載っているものになります。 (これがそれぞれA0002、A0013の分も同時に作成されてそれぞれ別ファイルで保存される形で) データシートと別に「出荷表(納品書)」ひな形シートを作って、 1行ずつひな型に流し込んでいこうかな?と考えてみたのですが、 (顧客コードで並べ替えをしてから、コードNOがかわる前の行まで 流し込んで別名でファイル保存してみる、とか…でもこれだと 切り替わったあとのコードの分の処理をどう進めてよいかわからず)どうもうまく考えがまとまりません。 どうかよろしくお願い致します!

みんなの回答

  • rivoisu
  • ベストアンサー率36% (97/264)
回答No.2

並べ替えが済んでいるものとして疑似コードで表現します。 1行目から1列目が空白になるまでで全件処理できるものとします。 3列目に顧客コードとします。 顧客コードNという変数を用意します。 i=1 while cells(i,1)<>""   顧客コードN=cells(i,3) 集計のキーを保存   ここで顧客ごとの最初の処理   新しいファイルの準備       出荷表の初期化 顧客名称ノセット 合計のクリア 明細転送行の初期化など   while 顧客コードN=cells(i,3)     ここで一件ごとの処理 明細の転送、合計への加算 など     i=i+1 '次のレコードに進める   wend   ここで顧客ごとの最後の処理   合計欄のセット,新しいファイルのsave,close など wend 大まかに集計の流れはこのようにします。 ただ、私が作るならマクロはこのデータとは別のブックに置きます。 経験上データとプログラムは分けておいたほうがあと後面倒が無いようです

aina1105
質問者

お礼

ありがとうございます。 お教え頂いた内容のだいぶ手前でつまづいていますが^^; (集計のキーを保存、、とか) もう少し自分でも勉強してみます。 While wendははじめて見る言葉でした。 ちょっと調べた感じでは複雑な条件分けには向いている?コードでしょうか。 すぐに回答頂きありがとうございました!

  • n-jun
  • ベストアンサー率33% (959/2873)
回答No.1

Excel(エクセル) VBA入門:データを振り分ける http://www.eurus.dti.ne.jp/~yoneyama/Excel/vba/vba_furiwake.html こちらを参考に”別シート”に分ける練習からしてみるとか。

関連するQ&A