- 締切済み
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がかわる前の行まで 流し込んで別名でファイル保存してみる、とか…でもこれだと 切り替わったあとのコードの分の処理をどう進めてよいかわからず)どうもうまく考えがまとまりません。 どうかよろしくお願い致します!
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- rivoisu
- ベストアンサー率36% (97/264)
並べ替えが済んでいるものとして疑似コードで表現します。 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 大まかに集計の流れはこのようにします。 ただ、私が作るならマクロはこのデータとは別のブックに置きます。 経験上データとプログラムは分けておいたほうがあと後面倒が無いようです
- n-jun
- ベストアンサー率33% (959/2873)
Excel(エクセル) VBA入門:データを振り分ける http://www.eurus.dti.ne.jp/~yoneyama/Excel/vba/vba_furiwake.html こちらを参考に”別シート”に分ける練習からしてみるとか。
お礼
ありがとうございます。 お教え頂いた内容のだいぶ手前でつまづいていますが^^; (集計のキーを保存、、とか) もう少し自分でも勉強してみます。 While wendははじめて見る言葉でした。 ちょっと調べた感じでは複雑な条件分けには向いている?コードでしょうか。 すぐに回答頂きありがとうございました!