重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

A列に『在庫+出庫済みの合計』、B列に『受注合計』の数値がそれぞれ入力されています。
AとBそれぞれの値を計算した結果、C列に入力されてある『月平均』よりも小さい場合にメッセージを入力したいと考えて、以下のマクロを作りましたが、動きませんでした。
VBAの素人です。

どなたかご教授お願いいたします。


Sub 変数()

Dim i ,lastrow As Long

lastrow = Range("A400").End(xlUp).Row
For i = 1 To lastrow
'Y列にコメント記載

'『在庫+出庫済みの合計』から『受注合計』を引いた残りが月平均を下回る場合
If Range("A" & i).Value - Range("B" & i).Value < Range("C" & i).Value Then
Range("Y" & i).Value = "月平均を下回る"
Range("X" & i).Font.ColorIndex = 1
End If

End Sub

A 回答 (3件)

sub f()


For i = 1 To lastrow
'Y列にコメント記載

'『在庫+出庫済みの合計』から『受注合計』を引いた残りが月平均を下回る場合
If Range("A" & i).Value - Range("B" & i).Value < Range("C" & i).Value Then
Range("Y" & i).Value = "月平均を下回る"
Range("X" & i).Font.ColorIndex = 1
End If
next


End Sub
    • good
    • 0
この回答へのお礼

お陰様で無事に動作しました。
ありがとうございました。

お礼日時:2018/03/02 04:26

エラーするならデバックにして変数「i」には何が入っているか確認してください。


多分、その行のセルに数値にならないものが入っているのだと思います。
    • good
    • 1

「For に対応する Next がありません。

」のエラーが出たはずですが…
「End Sub」の前に「Next」を入れれば動くのでは?
    • good
    • 0
この回答へのお礼

すみません。
NEXTは投稿時にコピー忘れでした。

If Range("A" & i).Value - Range("B" & i).Value < Range("C" & i).Value Then
のところで『型が一致しません』とデバックになります。

よろしくお願いいたします。

お礼日時:2018/02/28 07:03

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!