• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:EXCEL2003でマクロ又はVBAを使って商品の出荷帳票を作りたいのですが)

EXCEL2003でマクロ又はVBAを使って商品の出荷帳票を作成したい

このQ&Aのポイント
  • 業務の中で出荷内容を指示するため、EXCEL2003でマクロ又はVBAを使って商品の出荷帳票を作成したい。
  • 出荷内容を簡略化するために、AのEXCELのシートに青色文字部を自動記入し、規格ケースの入り数はBシートに記載したい。
  • Cのシートに出荷内容を記入し、自動的にAのシートに出荷数量までの記入を行い、残りはAシートに記載する仕組みを作りたい。

質問者が選んだベストアンサー

  • ベストアンサー
  • sayakacc
  • ベストアンサー率13% (2/15)
回答No.5

専門家ではないので参考程度と思ってくださいね。 私のイメージではChangeイベントの中で計算って感じでした。 シートCのChangeイベント  出荷数量の列以外ならExit    work出荷数量=入力された出荷数量  ここからループ   シートAの上から同じ商品コードを探し   同じ商品コードがあれば   work出荷数量と仕入数量を比較    仕入数量が少なければ     出荷数量=仕入数量    仕入数量が多ければ     出荷数量=B   work出荷数量=work出荷数量-出荷数量   同じ商品コードでなかったらExit  ここまでループ みたいな感じのイメージでした。

suisu0830
質問者

お礼

ご回答ありがとうございます。 sayakaccがおしゃることは、分かりやすく丁寧で助かります。 ありがとうございました。 ただ、まだまだ素人レベルの私には、表現が難しい箇所が多々存在しておりますのが現状です。お恥ずかしいです。 おんぶに抱っこで大変ご迷惑なお願いと重々承知しておりますが、ぜひコードをのせていただけませんでしょうか? 重ね重ねよろしくお願い申し上げます。 失礼します。

その他の回答 (6)

  • mt2008
  • ベストアンサー率52% (885/1701)
回答No.7

No.6です。 図のアップロードに失敗したので再挑戦。

suisu0830
質問者

お礼

ありがとうございます! ばっちり見えました!

suisu0830
質問者

補足

できました!ありがとうございました。 お礼が遅くなりまして申し訳ありませんでした。

  • mt2008
  • ベストアンサー率52% (885/1701)
回答No.6

セル関数でやって見ました。 添付の図、みえるかなぁ? シートBのA3:C6を「AreaB」、シートCのA3:C6を「AreaC」と名前定義しました。 シートAの3行目は必要が有って開けて居ます。 シートAの…… E4に =MIN((VLOOKUP(B4,AreaC,3,FALSE)-SUMPRODUCT(D$3:D3*(B$3:B3=B4)))*((VLOOKUP(B4,AreaC,3,FALSE)-SUMPRODUCT(D$3:D3*(B$3:B3=B4)))>0),D4) F4に =INT(E4/VLOOKUP(B4,AreaB,3,FALSE)) G4に =VLOOKUP(B4,AreaB,3,FALSE)*F4 H4に =1*(G4<E4) I4に =E5-G5 J4に =D4-E4 と、入れてE4:J4を下にコピー 次に、出荷数が0の時に表示しない様に、条件付書式で…… E4:J8を選択して、条件付書式で「数式が「=($E4=0)」として、条件成立時の書式でフォント色を白にします(添付の図では判りやすいようにグレーにしました)。 こんな感じでどうでしょう?

suisu0830
質問者

お礼

ありがとうございます!! これで1度チャレンジしてみます! また、どうしても明日になってしまうとは思いますが、結果のご報告をします。 本当にありがとうございました。 添付の図は、どこにあるのかわかりませんでした。 無しでもがんばってみます。

  • sayakacc
  • ベストアンサー率13% (2/15)
回答No.4

例えばですが 指定出荷数量(A)とは別に出荷数量(B)をもって シートA の出荷数量が変更されたら Bと仕入数量を比較して仕入数量が少なければ   出荷数量=仕入数量 仕入数量が多ければ   出荷数量=B 最後に   B=B-出荷数量 とか。 これを商品コード(残数量)が変わるまでまわすとか。 ぱっと思いついたことなので もっといい方法があると思いますが;;

suisu0830
質問者

お礼

ご回答ありがとうございます。 vlookup関数とif関数を使うということでしょうか? 確かに可能だとは思いますが、例でいうと鉛筆から消しゴムへの移り変わり、vlookup関数の持っていき場所等が難しそうです(私では、お恥ずかしながら出来ませんでした) どうぞよろしくご指導下さいませ。 失礼します。

  • sayakacc
  • ベストアンサー率13% (2/15)
回答No.3

連続ですみません。 >割り算でケース数をわりだすことが出来るかな? この部分だけ (1)規格出荷ケース数 INT関数使えばいいのではないでしょうか。 (2)半端出荷数量 MOD関数使えばいいと思います。

suisu0830
質問者

お礼

ご回答ありがとうございました。 確かにINT関数とMOD関数があれば可能です。ありがとうございました。 ただ、シートCに出荷数量を記入しシートAの出荷数量に自動記入する所がチンプンカンプンなので先に進めません。 どうぞご指導のほどよろしくお願いいたします。

  • sayakacc
  • ベストアンサー率13% (2/15)
回答No.2

どのくらい作られたのでしょうか。 いろいろな方法ができると思いますよ。 全部コードに書くのでしょうか。 それとも列によってはセルに関数入れてるのでしょうか。 仕入数量を入力したら出荷数量から残数量まで計算されて表示される ってことでしょうか。 どこまで作られたか補足すれば回答つくかもですよー。

suisu0830
質問者

補足

ご回答ありがとうございます。 >どのくらい作られたのでしょうか。 実は、このような感じにしたいという全体図は出来上がり、取り掛かろうと思ったのですが、シートCに出荷数量を記入しシートAの出荷数量に自動記入する所でどうすればよいのかいきなり出だしからつまずいてしまいました。 その先も、正直これ!!といういい案が浮かばず困ってしまっています。ご回答してくださる方々にまる投げのようで情けないのですが、ぜひぜひ助けていただきたく思います。 >全部コードに書くのでしょうか。 それとも列によってはセルに関数入れてるのでしょうか。 全部コードで書いても、セルに関数を書いても、全部マクロで記録(情報量がすくないので)しても問題ありません。 >仕入数量を入力したら出荷数量から残数量まで計算されて表示される ってことでしょうか。 その通りです。さらに出荷数量の他にシートBにある規格入り数の箱は何箱あるか、半端ケース数(必ず1商品につき1箱)の中にいくつ入っているかといった点も表示が必要になります。 全力投球でやりたいと思います。 どうぞ助けてください。よろしくお願いいたします。 失礼します。

回答No.1

>Bのシートには、商品マスタとして商品コード、品名、規格入り数があります。 Bシートと他のシートとの関係はどうなってるのでしょう? >Cのシートには、その日の出荷内容を記入するようになっており、ここに記入されたものがAのシートに自動的に記載されていくようにしたいと思っております。(自動で指定出荷数量まで足していき残までAシートに記載する) Aシートに明細があるようですが? むしろ、AからCが集計されているのでは? 状況が不明確なので回答がつけにくいと思われます。

suisu0830
質問者

お礼

ご回答ありがとうございます。 大変分かりにくくなっておりもうしわけありません。 全体的な流れをお話しますと、 (1)シートCにお客様より発注が入った数量を品名の横に記載します。 (2)シートAでマクロを実行すると、(1)で記載された数量がAの上の図から下の図のように自動的に先入れ先出しで数量、ケース数、残数量等が記載される(明細)。といったような物をどうしても作成したいのです。 またシートBで記載された規格入り数よりケース数や半端の数を割り出すことが出来たらと思っております。 >Bのシートには、商品マスタとして商品コード、品名、規格入り数があります。 >Bシートと他のシートとの関係はどうなってるのでしょう? Bシートは、決まった規格入り数を記載する為のシートとして作成しました。ここから、割り算でケース数をわりだすことが出来るかな?と思いまして作成しようと思いました。 >Cのシートには、その日の出荷内容を記入するようになっており、ここに記入されたものがAのシートに自動的に記載されていくようにしたいと思っております。(自動で指定出荷数量まで足していき残までAシートに記載する) >Aシートに明細があるようですが? >むしろ、AからCが集計されているのでは? その逆でシートCよりシートAに明細を自動作成できればと考えております。 大変わかりにくい内容で申し訳ありませんがどうぞよろしくお願いいたします。

関連するQ&A