|
「商品番号と部品番号を入力すると単価を表示する表」をVBAで作っています。
・ワークシートのA列に商品番号、B列に部品番号が入っており、C列に単価を
表示したいと考えています。
・同じワークシート内に参照先(H列〜J列)があり、H列に商品番号、I列に番号、
J列にサイズが書かれています。
この表を使ってマクロを書くのに、どのような構成にするか考えたのが次の通りです。
a. A列に入力された商品番号が表のH列に無かった場合→C列に「再確認」と表示
b. A列に入力された商品番号が表のH列にあった場合→その右セル(I列)に書かれた部品番号がB列と一致するかどうか判断。
△B列とI列が一致した場合で、J列が"大"の場合はC列に1000を表示。
▲B列とI列が一致した場合で、J列が"小"の場合はC列に500を表示。
▽B列とI列が一致しなかった場合は、C列に「サイズを選択」と表示
If_ElseIfやSelect Caseの入れ子にする方法を試しているのですが、調べながら試行錯誤しておりますがうまくいきません。
特にa.の「A列の値がH列にあるか」をVLOOKUPで書き、ヒットした場合は
「B列の値がI列の値に一致するか」という方法で進める方が良いのでしょうか。
知識がなく誠にお恥ずかしいのですが、何かご教示願えませんでしょうか。
以下は自分なりに書いてみた物ですが、誤りだらけの為に参考にはならないと思います。
---------------------
For I = 1 To 100
商品番号 = .Cells(I, 1) '本来はA列全体にしたいのですが書き方が分かりません。
部品番号 = .Cells(I, 2)
サイズ = .Cells(I, 10)
単価 = .Cells(I, 3)
If 商品番号 = Cells("H1:H100") Then 'もし商品番号がH列にあったら
Select Case 部品番号
Case "123" '部品番号が123の時
If パーツ番号 = ("J1:J100") Then 'もしパーツ番号が上のセルの右にあったら
If サイズ = 大 Then
単価 = 12000
ElseIf サイズ = 小 Then
単価 = 8000
End If
End If
Case Else
単価 = 0
End Select
ElseIf パーツ番号 もしパーツ番号がH列に無かったら
単価 = "サイズを選択"
----------------------------
このような状態で申し訳ないのですが、ご教示お願い致します。
|
|