| 
    
     |  | >条件を満たすセルを3つ作る 例えば A1:A3 に入力された値で・・ということなら、先のやり方では条件分岐の
 ネストが深くなりすぎて、極端に可読性が悪くなってしまいますから「A1,A2,A3の
 値を & で連結したときの全パターン」によって、一回の Select Case で対応できる
 ように改造します。その場合先の y / z の結果は、予め算出済みの定数としてしまい、
 コードではそれに C1 の値をかけるだけとします。
 即ち
 
 Private Sub Worksheet_Change(ByVal Target As Range)
 Dim x As Long, y As Long
 Dim St As String
 
 If Intersect(Target, Range("A1:A3")) Is _
 Nothing Then Exit Sub
 If Target.Count > 1 Then Exit Sub
 x = Range("C1").Value
 St = Range("A1").Text & Range("A2").Text & _
 Range("A3").Text
 Select Case St
 Case "ピーマン東京3月10日": y = x * ? '?は定数
 
 以下、全てのパターンを書き出す
 End Select
 With Application
 .EnableEvents = False
 Range("C3").Value = y
 .EnableEvents = True
 End With
 End Sub
 
 というようなコードになりますが、他のやり方は分かりません。
 
 |  |