|
▼kumi さん:
こんにちは。
Select Case の使い方はJakaさんの御回答を参考に^^
私のは質問の内容とはまったく違うのですが
今回のような計算の場合、数学的にもっと簡単に
1つの計算式の中で値の条件分岐で求められると思ったので
ご参考程度に・・・
(VBAの質問の回答としては相応しく無いかもですが・・・)
Private Sub Worksheet_Change(ByVal Target As Range)
'変更セルがA2:D21以外か変更範囲が1つ以上なら終わり
If Application.Intersect(Target, Range("A2:D21")) Is Nothing _
Or Target.Count > 1 Then Exit Sub
'計算式の中で条件設定
'(上辺+下辺)×高さ÷2 の台形の計算式を基準に
'A列が「台形」の時だけ上辺を設定、その他の場合は0
'A列が「正方形」の時だけ「÷1」、その他の場合は「÷2」
With Target
Cells(.Row, 5).Value = _
(IIf(Cells(.Row, 1).Value = "台形", Cells(.Row, 2).Value, 0) + _
Cells(.Row, 3).Value) * Cells(.Row, 4).Value / _
IIf(Cells(.Row, 1).Value = "正方形", 1, 2)
End With
End Sub
|
|