- ベストアンサー
エクセルVBAでマクロの計算式を変更したい
- エクセルのVBAで作成したマクロの計算式を変更したいです。現在の計算式ではD5の値を100下げるごとにD6の値が+4され、D5の値を100上げるごとにD6の値が-4されます。同様に、E5の値を100下げるごとにE6の値が+4され、E5の値を100上げるごとにE6の値が-4されます。しかし、私はD5の値を100下げるごとにD6の値が+4され、D5の値を100上げるごとにD6の値が-8されるように変更したいです。同様に、E5の値を100下げるごとにE6の値が+4され、E5の値を100上げるごとにE6の値が-8されるように変更したいです。
- エクセルのVBAで作成したマクロの計算式を変更したいです。現在の計算式ではD5の値を100下げるごとにD6の値が+4され、D5の値を100上げるごとにD6の値が-4されます。同様に、E5の値を100下げるごとにE6の値が+4され、E5の値を100上げるごとにE6の値が-4されます。しかし、私はD5の値を100下げるごとにD6の値が+4され、D5の値を100上げるごとにD6の値が-8されるように変更したいです。同様に、E5の値を100下げるごとにE6の値が+4され、E5の値を100上げるごとにE6の値が-8されるように変更したいです。
- エクセルのVBAで作成したマクロの計算式を変更したいです。現在の計算式ではD5の値を100下げるごとにD6の値が+4され、D5の値を100上げるごとにD6の値が-4されます。同様に、E5の値を100下げるごとにE6の値が+4され、E5の値を100上げるごとにE6の値が-4されます。しかし、私はD5の値を100下げるごとにD6の値が+4され、D5の値を100上げるごとにD6の値が-8されるように変更したいです。同様に、E5の値を100下げるごとにE6の値が+4され、E5の値を100上げるごとにE6の値が-8されるように変更したいです。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
こんな感じでいかがでしょう。 Private Sub Worksheet_Change(ByVal Target As Range) Dim 初期値 As Integer Dim 増減値 As Integer Select Case Target.Address Case "$C$5" Select Case Target.Value Case 1 Range("C6").Value = 24 Range("D5").Value = 600 Range("E5").Value = 400 Case 2 Range("C6").Value = 32 Range("D5").Value = 1000 Range("E5").Value = 500 End Select Case "$D$5" Select Case Range("C5").Value Case 1 初期値 = 600 Case 2 初期値 = 1000 Case Else Exit Sub End Select If Target.Value < 初期値 Then 増減値 = 4 Else 増減値 = 8 Range("D6").Value = (初期値 - Target.Value) / 100 * 増減値 Case "$E$5" Select Case Range("C5").Value Case 1 初期値 = 400 Case 2 初期値 = 500 Case Else Exit Sub End Select If Target.Value < 初期値 Then 増減値 = 4 Else 増減値 = 8 Range("E6").Value = (初期値 - Target.Value) / 100 * 増減値 End Select End Sub