• ベストアンサー

エクセルの在庫管理からレポート作成について

 こんにちは もしお時間があるようでしたら教えてただきたいです。内容は、会社での在庫管理から提出用書類作成までについてです。  エクセルで入力用フォームを作り、1列めに受付日付、2列目に商品名をいれ、その後にLOTや数値、文字などを何項目か入力しています。その結果を、それぞれの商品名に合わせた提出書類(それぞれの品物によって違う、指定された型の書類なのです。)に入力し、書類を作成しています。  そこで、できれば書類を作成したい行を1行選択して、マクロを実行するとすぐにLOTや数値、文字が入力されそれぞれの品物にあった提出書類が完成できるようにしたいのです。  私はパソコンに詳しくないため、現在は入力用とは別のシート「シートB」に、商品名ごとのマクロを1つづつ作っておき、入力用フォームから、書類を作成したい商品の行を1行コピーして「シートB」の商品ごとの入力欄に貼り付け、それぞれの商品名ごとのマクロ実行。で対応しています。。。このままでは入力用フォームを見て書類作成するよりは多少楽かな?なくらいです。良い改善方法をご存知でしたらぜひ教えていただきたいです。よろしくお願いします。

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

  • ベストアンサー
  • pc_knight
  • ベストアンサー率66% (52/78)
回答No.3

既に商品名ごとのマクロが出来ているのですから、行内のいずれかのセルを選択したら、その行の商品に指定された提出書類作成のマクロを呼び出して実行するような親マクロを作成したらいかがでしようか。 その場合、商品名と提出書類作成のマクロ名の対応づけに規則性があれば親マクロの作成はシンプルになります。 以下は、「商品名」と提出書類作成の「マクロ名」を同じにした場合の例です。 Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) On Error GoTo errorsyori ' ここでB列の商品名”Cells(Target.Row, 2)”を取得、商品名と同名のマクロを実行 Application.Run Cells(Target.Row, 2).Value: End '選択した行の商品に対するマクロが存在しない場合のメッセージ表示 errorsyori: ret = MsgBox(prompt:=Target & "のマクロがありません", Buttons:=vbCritical, Title:="マクロ未登録エラー") End Sub 行内の任意のセルを選択の都度、親マクロが動き出すと目障りですから、セルをダブルクリツクした時にのみ親マクロが動き出すように作成しました。

kokokokkko
質問者

お礼

こうしたい と思っていたことができました(^-^)ありがとうございました!

その他の回答 (2)

  • tgn1013
  • ベストアンサー率33% (386/1137)
回答No.2

今ひとつ様子が分からないのですが・・・ データ範囲にDATAという名前を付けます。 呼び出し用にA列を挿入して連番を入れます。 提出用シートに=Vlookup(AA1,data,2,false) といれて、AA1(このセルは任意です・・・一覧ならその行の左か右端外が良いでしょう) に当該行のA列の数値を入れれば、その商品の受け付け日付が表示されます。 =Vlookup(AA1,data,2,false)の2を3にすれば商品名、4にすればLOTが表示されます。 また、「商品名」を入れたらその商品を表示したいのであればmatch関数を使うのですが、 LOTが出てくるところを見ると、どうも要望が違う様なので、 まずは、Vlookupをご紹介しておきます。 http://www.excel.studio-kazu.jp/lib/e1tw/e1tw.html Vlookupの使い方はこの辺が分かりやすいでしょうか_? はずしているかも知れません。 具体的にどうしたいのか、ご説明を頂ければと思います。

kokokokkko
質問者

お礼

なんとか希望していたように、できるようになりました!Vlookupももっと勉強したいと思います。ありがとうございました。

  • tgn1013
  • ベストアンサー率33% (386/1137)
回答No.1

提出書類は、Excelですか、Wordですか? どちらかといえば、Vlookupを使う案件のような気もしますが・・・ 内容によってはSQLかも知れませんが。 特定の商品、を選ぶのは、受付日?商品名? それによって、作業は変わってきます。

kokokokkko
質問者

補足

提出書類はエクセルもワードもあるのですが、すべてエクセルに直しても大丈夫だと思います。特定の商品は商品名とLOTが基準です。VLOOKUPまではなんとなくわかるのですがSQLは全くわかりません。。。よろしくお願いします。

関連するQ&A

  • エクセルの在庫管理からレポート作成について

    こんにちは もしお時間があるようでしたら教えてただきたいです。内容は、会社での在庫管理から提出用書類作成までについてです。  エクセルで入力用フォームを作り、1列めに受付日付、2列目に商品名をいれ、その後にLOTや数値、文字などを何項目か入力しています。その結果を、それぞれの商品名に合わせた提出書類(それぞれの品物によって違う、指定された型の書類なのです。)に入力し、書類を作成しています。  そこで、できれば書類を作成したい行を1行選択して、マクロを実行するとすぐにLOTや数値、文字が入力されそれぞれの品物にあった提出書類が完成できるようにしたいのです。  私はパソコンに詳しくないため、現在は入力用とは別のシート「シートB」に、商品名ごとのマクロを1つづつ作っておき、入力用フォームから、書類を作成したい商品の行を1行コピーして「シートB」の商品ごとの入力欄に貼り付け、それぞれの商品名ごとのマクロ実行。で対応しています。。。このままでは入力用フォームを見て書類作成するよりは多少楽かな?なくらいです。良い改善方法をご存知でしたらぜひ教えていただきたいです。よろしくお願いします。

  • エクセル2000 マクロ

    エクセル2000を使用しています。マクロを使って定型の入力フォームへの入力を素早く、正確に行えるようにしたいと思っています。 「申請書」と「標準事務用品」の2種のシートに分かれており、「申請書」が定型の入力フォーム、「標準事務用品」は入力フォームに反映させたいデータが一覧になっています。 「標準事務用品」のデータの一覧は5つの項目があり、左から1.品物 2.商品名 3.品番 4.メーカー名 5.申請 となっています。 5.申請の列はオプションボタンを1行ごとに1つ設けてあり、オプションボタンがオン(True)の時に、同じ行の1~4の項目のデータを「申請書」シートの入力フォームの任意のセルへコピーしたいです。 何かよいマクロの記述方法はありますでしょうか。

  • Excel VBA での商品管理について

    今、エクセルにて商品管理をするツールを作成していました。 ユーザーフォームにて、売却した商品コードを入力すると、在庫シートから該当商品を検索し、ユーザーフォーム内に商品データが入力されるようになっています。 売上登録処理を実行した時に、売買明細シートへA列には(1)売却した商品コード、B列には(2)売却した商品名、C列には(3)売却価額、D列には(4)売却した商品の仕入価額(これは”在庫シート”の中で商品コード(B列)を検索し、在庫シートのJ列から引っ張る)という情報を転記したあと、(5)在庫シートへ記載されているその商品情報の行を削除したいのです。 (1)~(3)の処理はできたのですが、(4)の在庫シート内で商品コードを検索する というコードが書けません。 (1)~(3)の処理は、 Dim Ctrl As Control With Worksheets("売買明細") 'A列の最終セルからEndプロパティでデータの最終行を取得し、 '+1をして、次にデータを入力する行の行番号を取得 RowNum = .Cells(Rows.Count, 1).End(xlUp).Row + 1 'ワークシートの行列を指定してテキストボックスの値を1つずつセルへ代入 .Cells(RowNum, 1).Value = Me.商品コード.Value .Cells(RowNum, 2).Value = Me.商品名.Value … 以下続くとしました。 すみませんが、どなたかお知恵を貸していただけないでしょうか。 よろしくお願いいたします。

  • エクセルのマクロで悩んでます

    はじめて投稿いたします。 現在、エクセル2000でマクロを組んでいるのですが、何日も悩んでそこから動けないので質問させていただきます。 やりたいことは、 (1)検索フォームの入力テキストに記載した数値を読んで検索ボタンを押すと、 (2)データブック.xls内の完全に一致した数値のセルの行をアクティブにして (3)その行のA列からO列の値をコピーして (4)入力ブック.xlsの入力シートのB4:B18に数値だけ貼り付け したいと考えています。 検索フォームは入力ブック.xls内で作成しています。 今のところ、(3)でA列の値を読んで、(4)でB4セルに貼りつけということはできているのですが、複数になるとできていません。 根気よく、同じプログラムを書くのが良いのでしょうか? かなり面倒なので、もっと簡単にかける方法があれば教えてください。

  • エクセルのマクロについて質問です。

    エクセルのマクロについて質問です。 マクロを発動した時に、あるセルに入力してある数値を参照し、その行のX列目に数値を張り付けるものを作成しようとしています。 例えば シート「1」の A1に日付を入力 B1にある数字を入力 シート「2」の A列にA1→1~A31→31の日付が入力されている時 マクロ発動時にシート「1」A1の日付と一致する シート「2」のB列にシート「1」のB1の値を貼り付け ↑たとえばシート「1」のA1が1日でB1が500だった場合 シート「2」の1日(A1)と同じ行でB列(B1に500を 貼り付けるものです。 かなり下手な説明だと自覚しておりますが、解読できる方 どうかご教授ねがいます。

  • ExcelのVBAについて

    ExcelのVBAについて VBA全くの初心者です。 以下のような処理を行いたいのですが、どなたかご教授をお願いします。 以下のように支店(1)~(3)のシートがあります。 1.入力シートに調べたい商品No・商品名・備考を入力する(複数行あり) 2.マクロを実行すると、商品Noを検索対象として支店(1)~(3)シートをチェックし、   一致しない行を不一致データシートに出力する もう一つ別のマクロで、 1.入力シートに調べたい商品No・商品名・備考を入力する(複数行あり) 2.マクロを実行すると、商品Noを検索対象として支店(1)~(3)シートをチェックし、、   一致する行を一致データシートに出力し、D列に対象データがあるシート名を表示する   ※可能でしたら、E列に対象データがある行番号も表示する -------------------------------- シート名:支店(1) A      B     C 商品No   商品名   備考 011    商品A   備考A 009    商品B   備考B 015    商品C   備考C -------------------------------- シート名:支店(2) A      B     C 商品No   商品名   備考 008    商品A   備考A 023    商品B   備考B 004    商品C   備考C -------------------------------- シート名:支店(3) A      B     C 商品No   商品名   備考 007    商品A   備考A 033    商品B   備考B 018    商品C   備考C -------------------------------- シート名:入力シート A      B     C 商品No   商品名   備考 ※ここに複数行入力する -------------------------------- シート名:不一致データシート A      B     C 商品No   商品名   備考 ※ここに出力される -------------------------------- シート名:一致データシート A      B     C 商品No   商品名   備考 ※ここに出力される

  • Excelで台帳を作成したいのですが

    シート1に商品名(A列)と単価(B列)の表を作成し、シート2のA列に商品名を入力すると自動的にC列に単価が挿入される。以上のことがエクセルで可能でしょうか?また可能であれば方法を教えてください。 どうかよろしくお願いします。

  • エクセル VBA

    最終行から順番に下へ同列で入力するVBAを教えて下さい。 EXCELのVBAで教えて下さい。 シート1のA列にはB列が入力されると自動入力されるNo.があり、C~G列もB列が入力されると自動入力されます。 B列には日付が、H列には3~4桁の数字が入力したいのですが、 入力行は必ず最下行のセルB、Gな為、VBAでフォームを作成し、 入力実行ボタンを押すことにより、最下行のセルB、Gに反映されるように したいです。 又、上記入力後に、シート2のH~N列をコピーして、シート3のA~G列に値のみの貼り付けを行い保存した後、シート3のA~G列をコピーして csvファイルを作成して保存したいです。 一連の流れを、フォームの入力実行ボタンを押すことで実行したいのですができるのでしょうか? 宜しく御願い致します。

  • エクセルで入力済みのセルのみ見つけて・・

    エクセルで入力済みのセルだけを見つけ出して、 指定した場所に並べる作業をマクロで1発で出来るようにしたいのですが、その方法を教えてください。 シートが37シートあります。(sheetA1~sheetA12,sheetB1~sheetB12,sheetC1~sheetC12,sheet37) それぞれセルC5からC20まで数値が入っていますが、 最終行はC20とは限りません。(sheet37はまとめるためのシートで空白) C15が最終行の場合もあれば、C18が最終行の場合もあります。 各シートそれぞれ最終行が違います。(列は同じですスタートもC5です) 各シートのC列の入力済みのセルの数値をsheet37のB1セルから順番に縦に並べたいのです。 A,B,Cのシート順にC列に入力された数値を縦に並べます。 空白は無しで詰めて並べます。 これを1回の作業でできるマクロを教えてください。 それから入力済みの最終行を見つけ出すマクロの部分を表示して頂けるとありがたいです。 宜しくお願いします。

  • シート作成について

    Excellマクロで検索とシート作成等を行いたいのですが、全くの素人のためご教授願えればと思います。 (1)"入力"シートのC5から値のある行(C列)まで同じシートがあるか確認する (2)同じ名前のシートが無ければ、"原紙"シートに"入力"シートのG列からX列までを転記しシートをコピーする(既にある場合は作成なし、転記のみ) ※転記する列は、入力シートG=原紙シートC など指定される (3)コピーしたシート名をセルの値(C列)と同じ名前に変更 (4)C5から値のある最終行まで(1)~(3)を繰り返す 解りやすくご説明いただけると幸いです。宜しくお願いいたします。

専門家に質問してみよう