• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Excel VBA での商品管理について)

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

このQ&Aのポイント
  • Excel VBAを使用して商品管理を行う際に、売上登録処理に関して問題が発生しています。
  • 売上登録処理では、ユーザーフォームから入力された商品コードを使用して在庫シートから該当商品を検索し、売買明細シートに商品データを転記します。
  • しかし、在庫シート内で商品コードを検索する部分のコードが書けずに困っています。お知恵をお貸しいただけないでしょうか。

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

  • ベストアンサー
回答No.2

No1です。すみません、間違えました。 Cells(RowNum,4)の前にピリオド「.」を入れ忘れました。 下記、訂正済です。 Dim MyVariant As Variant MyVariant = Application.VLookup(.Cells(RowNum,1), Worksheets("在庫シート").Range("B:J"), 9, False)     If IsError(MyVariant) Then       .Cells(RowNum,4).value=""     Else       .Cells(RowNum,4).value=MyVariant       'Worksheets("在庫シート").Cells.Find(What=.Cells(RowNum,1)).EntireRow.Delete 'この行は(5)の削除 End if

rikukana1020
質問者

お礼

再度の回答ありがとうございます。 Cellsの前のピリオドは、私も実は入れてみたのですが、うんともすんとも反応しません。。。 エラーにはならないので、私のやり方が何か違うのだと思います。 本当に何度もありがとうございます。 もうちょっと頑張ってみます!

すると、全ての回答が全文表示されます。

その他の回答 (2)

回答No.3

このようなマクロを組むことから考えて、一通りの使い方デバッグ等は御存知と思います。Iserrorの判定はどちらになってますか?おそらく全部エラー、つまりvlookupで該当なしになってるのかと思います。だとすると疑問点は ・在庫シートB列の商品コードと、売買明細A列の商品コードは同一?前後に半角スペースや改行コードがあるとか。 ・.Me.商品コード.Valueというのは見かけない使い方です。特別な処理をしてませんか?

rikukana1020
質問者

お礼

すみません! 私の単純なミスがあり、無事にできました! 売買明細の方は、商品コードを入力し、コマンドボタンで在庫シートから商品名等を拾ってフォームに表示されるので、コードの入力違いは無さそうだと思って、もう一度よーくコードを見ていました。 そうしたら、在庫シートにある商品コードの列が変わってしまったのですが、そこを訂正するのを失念していました。 High_Score様には大変親切に教えて頂きありがとうございました。 本当に助かりました。 今後また不明な点が出てきた際には、ご相談させて下さい。 宜しくお願い致します。

すると、全ての回答が全文表示されます。
回答No.1

エクセル関数はVBAでも使用出来るので、vlookupを使います。 Cells(RowNum,1)の商品コードが見つからない場合は空欄、見つかった場合は仕入れ価格を転記します。在庫シートの該当行削除も書きましたが、質問には含まれてないのでコメント文にしてあります。 Dim MyVariant As Variant MyVariant = Application.VLookup(.Cells(RowNum,1), Worksheets("在庫シート").Range("B:J"), 9, False)     If IsError(MyVariant) Then       Cells(RowNum,4).value=""     Else       Cells(RowNum,4).value=MyVariant       'Worksheets("在庫シート").Cells.Find(What=.Cells(RowNum,1)).EntireRow.Delete 'この行は(5)の削除 End if 1個売れただけで行削除するのですか?

rikukana1020
質問者

お礼

ご回答ありがとうございました。 シリアル番号で管理している商品が多々あるので、商品が1つ売れると在庫シートからも削除される仕組みにしたかったのです。 教えて頂いたコードを試してみたのですが、私のやり方が違うのか在庫シートのデータを引っ張ってきてくれません。 色々と試行錯誤中ですが、大変参考になりました。 ありがとうございました。

すると、全ての回答が全文表示されます。

専門家に質問してみよう