IF 分岐処理がうまくできません
エクセルVBAで、分岐がうまくできません。
A、B,Cのリンゴとみかんの3種類の仕入れパターンがあり仕入の数量を算出したいですが、適正値が算出されません。
どのようにしたら、適正値を算出できるにのか教えてください。
Sub 仕入計算()
Dim i As Integer
'A リンゴは、500以下になったら1000個になるように仕入
'A みかんは、500以下になったら1000個になるように仕入
i = 2
Do While Worksheets("sheet1").Cells(i, 1) <> ""
If Cells(i, 1) = "A" And Cells(i, 2) <= 500 Or Cells(i, 3) <= 500 Then
Worksheets("sheet1").Cells(i, 4) = 1000 - Cells(i, 2)
Worksheets("sheet1").Cells(i, 5) = 1000 - Cells(i, 3)
End If
i = i + 1
Loop
'B リンゴは、400以下になったら2000個になるように仕入
'B みかんは、400以下になったら2000個になるように仕入
i = 2
Do While Worksheets("sheet1").Cells(i, 1) <> ""
If Cells(i, 1) = "B" And Cells(i, 2) <= 400 Or Cells(i, 3) <= 400 Then
Worksheets("sheet1").Cells(i, 4) = 2000 - Cells(i, 2)
Worksheets("sheet1").Cells(i, 5) = 2000 - Cells(i, 3)
End If
i = i + 1
Loop
'C リンゴは、300以下になったら3000個になるように仕入
'C みかんは、300以下になったら3000個になるように仕入
i = 2
Do While Worksheets("sheet1").Cells(i, 1) <> ""
If Cells(i, 1) = "C" And Cells(i, 2) <= 300 Or Cells(i, 3) <= 300 Then
Worksheets("sheet1").Cells(i, 4) = 3000 - Cells(i, 2)
Worksheets("sheet1").Cells(i, 5) = 3000 - Cells(i, 3)
End If
i = i + 1
Loop
End Sub
結果は以下になってしまいます。
id りんご みかん りんご仕入 みかん仕入
A 500 700 500 300
A 400 600 600 400
A 300 500 700 500
A 300 400 1700 1600
A 200 300 2800 2700
A 100 200 2900 2800
B 500 400 1500 1600
B 400 600 1600 1400
B 340 500 1660 1500
B 260 400 1740 1600
B 180 300 2820 2700
B 100 200 2900 2800
C 200 700 2800 2300
C 500 200 2500 2800
C 300 500 2700 2500
C 200 400 2800 2600
C 100 300 2900 2700
C 100 200 2900 2800
Cは、適正値ですが、A,Bの1部の計算ができません。
お礼
お教え頂いたマクロを解読し、自分なりに組み立ててみて、 変数Limitにより上限値を設定することができました。 ただ、for j = 0 to Limitを二回使用しているので、もっとシンプルにできるはずなのですが、簡略化の仕方を教えて頂けませんか? 色々試してみたのですが、うまくいきませんでした。 Sub l() Dim a(6) As Integer Limit = 2 a(0) = a(1) = 省略 a(6)= sum = 0 For j = 0 To Limit sum = sum + a(j) Next j ActiveSheet.Select Dim flag As Boolean For i = 1 To 100 For j = 0 To Limit flag = True flag = flag And (Cells(i, 5 + j) = sum) If flag Then Cells(i, 5).Interior.Color = RGB(255, 0, 0) Next j Next i End Sub