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

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

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

おはようございます。 業務の中で出荷内容を指示する事が毎日あるのですが。 それをEXCELで簡略化したいと考えております。 AのEXCELのシートがあります。そこの青色文字部を下記矢印下のように自動記入したいと考えています。(規格ケースの入り数は商品によって異なりますのでBシートに記載するようにしたいです) Bのシートには、商品マスタとして商品コード、品名、規格入り数があります。 Cのシートには、その日の出荷内容を記入するようになっており、ここに記入されたものがAのシートに自動的に記載されていくようにしたいと思っております。(自動で指定出荷数量まで足していき残までAシートに記載する) このように、在庫管理ではなくその時の出荷内容の細かい指示ができればと考えております。 マクロ、VBAともにまだまだ初心者ですが、お力をお貸しくださいませ。よろしくお願いします。

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

  • ベストアンサー
  • 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

  • エクセルで、とある商品の月間出荷数量を集計したい

    エクセルで「ある規格の商品の月間出荷数量を集計したい」です。 作成したい関数を言葉で表現すると: E7の値が42(←これが商品規格)の K6~Z6の期間の中から2010年12月の数量だけを抜粋して AA7の欄にその数量のトータルを明記したい。 上3行の内容をエクセルの関数で表現したいのですが、誰か助けてください。 よろしくお願い致します。

  • EXCEL VBA について教えてください。

    EXCEL VBA について教えてください。 先ほど質問した内容ですが、補足ができなかったので、再度質問しています。 条件を満たす行をコピー(挿入)さらに(数量)を分割する場合 下記のデータで , (品名 ) , (数量) , (マスタ) , (A/B) , A , B , C , D 1 , 商品1 , 1000 , 2000 , 0.5 2 , 商品2 , 3000 , 1000 , 3 3 , 商品3 , 3000 , 2000 , 1.5 4 , , , , 5 , , , , 6 , , , , このように(数量)>(マスタ)の場合に(数量)/(マスタ)分を行コピー(挿入)して , (品名 ) , (数量) , (マスタ) , (B/C) , A , B , C , D 1 , 商品1 , 1000 , 2000 , 0.5 2 , 商品2 , 1000 , 1000 , 1.0 3 , 商品2 , 1000 , 1000 , 1.0 4 , 商品2 , 1000 , 1000 , 1.0 5 , 商品3 , 2000 , 2000 , 1 6 , 商品3 , 1000 , 2000 , 0.5 さらにB列の(数量)も(マスタ)以下になるように分割する。 単に行のコピーだけなら自分でもできるのですが。。。これはさっぱりです。 どうか教えてください。 また、データの位置が変わった場合、どこを修正すればよいでしょうか? 例) 品名:P列 数量:R列 マスタ:AR列 よろしくお願いします。

  • エクセルで出荷表と出荷伝票をつくりたい

    【シート1】に 列  A     B    C    D     E  ・・・・              出荷日 出荷日 出荷日 ・・・   商品名  コード 1月1日 1月5日 1月10日 ・・・    ア     01    10    イ     05         5    ウ     03    5         23    ・    ・    ・ 上記のような感じで横軸に出荷日、縦軸に商品名の在庫一覧がある 【シート2】に シート1で入力したら、その該当の商品名等を引っ張ってくる出荷伝票を作りたいのです 出荷日  商品名   コード  数量 1/1     ア      01    10 1/1     ウ      03    5

  • エクセル2000のマクロ

    会社名:品名:日付:数量:金額 A社  ○:11/1:10個:1000←計算式が入っています。       11/3:10個:1000     ×:11/2:10個:2000 B社  △:11/1:5個:500     ▲:11/2:5個:500 上記のようなフォーマットがあります。 11/4にA社の品名○が出荷された場合、 別に入力用シートorセルに入力すると自動的にA社の11/1○と 11/2×の間に、一行挿入して、金額セルの計算式も自動的に入力されるようにするには、どのようにしたら良いのでしょうか? ※入力した品名とフォーマット上の品名が一致した場合  1行追加してすぐ上の数式をコピーするといった流れなんですが。。 説明が下手で解かりにくいとは思いますが、よろしくご指導お願いします。  

  • エクセルで納品書を別シートでデーター化(リスト保存)したい

    エクセルで納品書を作成しています。 毎回違う商品名や値段を記入しているのですが そのデーター内容を自動で別シートにデーター管理(リスト管理)したいのですが可能でしょうか 条件  シート1に記載したら自動的にシート2に1行ずつ下げて記載してほしい。 詳細 【シート1】 (1) B14  商品名(こちらはB14~B17まで記入することもあります) (2) B25  名前 (3) B24  住所 これをシート2の シート1の B14 を シート2の D70 に シート1の B25 を シート2の H70 に シート1の B24 を シート2の I70 に   というふうに記載してほしい。 名前や住所等 購入品名等を別シートに毎回コピーしていたのですが もっと簡単にデーター保存できればと思いましたので

  • Excelマクロで元データを簡潔な表に整形したい

    Excelマクロで実現させたいのですが、どのようにすれば 良いのか悩み中です。 下記のような【ベース】の表を【整形後】に一覧表に したいと思っています。 記入条件 品番が同じであっても出荷日が違う場合はそれぞれ記入する 品番と出荷日が同じであれば出庫数を足して記入する これを実現させるにはどのような手順?でマクロを組めば 良いでしょうか?どなたか助けて下さい。 【ベース】 品番  品名   出庫数  出荷日 A-01  りんご   10   2/21 A-01  りんご   10   2/27 A-02  もも    10   2/21 A-02  もも    15   2/21 【整形後】 品番  品名   出庫数  出荷日 A-01  りんご   10   2/21 A-01  りんご   10   2/27 A-02  もも    25   2/21

  • エクセルでの抽出処理について

    環境:windows7 EXCEL2010 社内で物流業務を行っているのですが Excelのシート1内には 列に項目(品番 品名 発注数 発注バラ数 出荷先) 行に(各数値、名称) が入っているのですがこれをもとに出荷表をある程度の整形をしたいと思っています。 (今までは手動でしたが対応に手間がかかる為) 具体的には シート2以降に同じレイアウトで印刷したいフォーマットに作っておきます (最大20社ほどなのでこのレイアウトはあらかじめ作成しています) シート一つにつき出荷先一つ作る前提で 出荷先A の内容をシート2(出荷先Bはシート3・・・出荷先Cはシート4)に転記したいと考えております。 ・シート2の具体的な転記 見出し(出荷先を代入)があり 列には 品番 品名 発注数 発注 バラ数  行には列に対応した出荷先の数量 を入れたいと思っています。 問題なのが 出荷先が行列にAAAAAA、BBBBBB、CCCの様にバラバラではなく連続して並んでいるのですが 発注する品目が増えると行数が増える為、転記するにも起点となる座標がなくて関数をどうしたらいいかと見出しの代入から含め正直わからない所です。 ここからどのようにしたらよろしいでしょうか? よろしくお願いいたします。 ※画像添付しておりますがVBAにていらない行列は削除する処理はいれており 列の項目については記載しました内容のみとなっております。

  • Excelで出荷・在庫管理の方法

    仕事でExcelで商品の出荷と在庫の管理表を作るように言われたのですが、次のような場合の関数の書き方を教えてください。 賞味期限がある商品で、出荷指示が出た場合に賞味期限の古い方から自動的に在庫を減らしたいです。 例えば、2011/12/10賞味期限のオレンジジュースが200個、2011/12/25賞味期限のが500個あったとして、300個出荷する時に12/10のから200個、足りない100個を12/25賞味期限のから自動的に差し引かれるようにしたいのです。 [セルA1]オレンジジュース、[B1]2011/12/10(賞味期限)、[C1]200(在庫) [B2]2011/12/25、[C2]500 IF関数とか考えてみたのですがなかなかうまくいかなくて… ちなみにExcel2007です。 よろしくお願いしますm(__)m

  • 商品在庫の集計の方法で困っています

    商品在庫の管理をエクセルでしようと思っているのですが、 下図のようにシート1のA列に”あ”から”お”の5種類の商品があり、B列に販売数が記入されていて、 A列  B列 商品  販売数 あ    1 い    1 う    2 え    1 お    2 う    1 あ    3 え    1 お    1 シート2のA列に商品の項目があり、B列に売れた商品の総数が出てくるようにするにはどうすればよいのでしょうか? シート2のB列のセルに、COUNTIF(A2:A10,"あ")という関数だけでは、売れた数だけシート1のA列に書き込まないと総数が出ないので、うまくできる方法があれば教えてください。 初心者ですので簡単な式しか分からず、苦戦しています。

  • エクセルにて受注一覧と出荷スケジュールを連動

    エクセルを使って受注一覧表と出荷スケジュールの連動をさせたいです。 イメージは以下の通りです。 Sheet1に注文一覧表を作ります。(現在、既にこの表はエクセルで存在します) この表(Sheet1)では、出荷スケジュールが分かりづらいので、現在はSheet2の表を印刷し、手書きで数量を記入して管理をしています。 この手書きの作業がとても手間なので、できればSheet1からデータを読み込んで自動的にSheet2に数量が表示されるようにさせたいです。 その場合、Sheet2のB2にはどのような関数を入れれば良いのでしょうか。 Sheet1 注文番号 商品名 出荷月 出荷日 数量 1001    AA-01   10    2   100 1002    AA-02   10    2   150 1003    AA-03   10    2   200 1004    AA-04   10    4   300 1005    AA-03   10    5   100  ・  ・  ・ Sheet2 商品名    1日   2日  3日  4日  5日 ~ 31日 AA-01 AA-02   AA-03   AA-04   AA-05  ・  ・  ・        (商品名は400種類程度あります) 大変困っています。どなたか良い方法をご教示いただけないでしょうか。 よろしくお願いします。

専門家に質問してみよう