|
リストボックス というのは、入力規則を設定したときのものでしょーか ?
つまり、フォームツールバーやコントロールツールボックスのものでは無い、ということ
なら、セルの入力イベントで処理するのが適当ですね。その場合、A1とB1の値の
組み合わせ全てを、Select Case ステートメントをネストする形で書き出し、それに
対応する数値を変数に入れる必要があります。だから組み合わせが多くなると、比例して
コーディングも手間ひまかかると思って下さい。具体的には、概ね・・
Private Sub Worksheet_Change(ByVal Target As Range)
Dim x As Long, y As Long, z As Long
If Intersect(Target, Range("A1:B1")) Is _
Nothing Then Exit Sub
x = Range("C1").Value
With Target
If .Count > 1 Then Exit Sub
If .Address = "$A$1" Then
Select Case .Value
Case "ピーマン"
Select Case .Offset(, 1).Value
Case "静岡": y = 5: z = 2
Case "福岡": y = 15: z = 4
以下、同様にCase節を記述
End Select
Case "にんじん"
Select Case .Offset(, 1).Value
End Select
ElseIf .Address = "$B$1" Then
Select Case .Value
Case "東京"
Select Case .Offset(, -1).Value
Case "きゃべつ": y = 5: z = 2
Case "かぼちゃ": y = 15: z = 4
以下、同様にCase節を記述
End Select
Case "大阪"
End Select
End If
End With
With Application
.EnableEvents = False
Range("C3").Value = x * (y / z)
.EnableEvents = True
End With
End Sub
というようなコードになるでしょう。
|
|