1行目と2行目に任意の数字が入っていたとして、
3行目、4行目に下記のような計算をするマクロを作って下さい。
3行目=1行目の数字×2行目の数字×0.01
4行目=1行目ー3行目
ただし、下記の点をご留意下さい。
①1行目に数字がある場合、その全てにおいて作業が行われること。
②2行目に数値が無い場合、「100」が入っているものとして作業が行われること。
③3行目に小数点以下が出る場合、四捨五入してから、4行目を算出すること。
例えば1行目に500が入っていて、2行目に40が入っている場合、
3行目に200、4行目に300が入るようにしてください。
2行目の40というのはつまり40%ということです。
以上、よろしくお願いします。
無駄な部分もありますが、こんな感じでしょうか?
1行目が空白をはさむと処理が止まります。
---
Dim x As Integer
Dim tmp As Double
Dim tmp2 As Double
x = 1
While Cells(1, x).Value <> ""
tmp = Cells(2, x).Value
If Cells(2, x).Value = "" Then
tmp = 100
End If
Cells(3, x) = Cells(1, x).Value * tmp * 0.01
tmp2 = Cells(3, x).Value
If tmp2 > 0 Then
tmp2 = Int(tmp2 + 0.5)
Else
tmp2 = Int(tmp2 - 0.5)
End If
Cells(4, x) = Cells(1, x).Value - tmp2
x = x + 1
Wend
---
すみません、要件を読み間違えました。
---
Dim x As Integer
Dim tmp As Double
x = 1
While Cells(1, x).Value <> ""
tmp = Cells(2, x).Value
If Cells(2, x).Value = "" Then
tmp = 100
End If
tmp = Cells(1, x).Value * tmp * 0.01
If tmp > 0 Then
tmp = Int(tmp + 0.5)
Else
tmp = Int(tmp - 0.5)
End If
Cells(3, x).Value = tmp
Cells(4, x).Value = Cells(1, x).Value - tmp
x = x + 1
Wend
---
再度のご回答ありがとうございました。
これで完璧です。
ご回答ありがとうございます。
だいたいこれで良いと思うのですが、
③の「小数点以下・・・」を満たしておりません。
ご回答いただいた物を改良していただければ幸いです。
よろしくお願いします。