「みんな教えて! 選手権!!」開催のお知らせ

Sub AA()
If Range("D60") Like "*入*" Then
Range("AM60:AP60").Interior.Color = RGB(255, 0, 0) ' セルが赤色
ElseIf Range("D60") Like "*退*" Then
Range("AL60:AM60").Interior.Color = RGB(255, 0, 0) ' セルが赤色
ElseIf Range("D60") = "空" Then
Range("AL60:AN60").Interior.Color = RGB(255, 0, 0) ' セルが赤色
End If
 End Sub


上記の式はシートの60行目についての処理ですが、これを102行目まで同列で同じ処理をしたい場合のループ処理の記載方法を教えて頂きたいです。。。
よろしくお願いいたします。

質問者からの補足コメント

  • 回答ありがとうございます。
    処理を行うとRangeメソッドは失敗しました と表記されてしまいます。
    改善点がわからず苦戦しています、、。

    No.2の回答に寄せられた補足コメントです。 補足日時:2024/11/15 13:48

A 回答 (3件)

For GYO = 60 to 102


IFからEnd IFまで
Next GYO
にします。
IF文の中では、Range("D60")はCells(GYO,"D")、
Range("AM60:AP60")はRange(Cells(GYO,"AM”),Cells(GYO,"AP”))
てな感じに書き換えます。
この回答への補足あり
    • good
    • 1

変更後のコードを見せてもらえますか

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

コードを修正することができました!!
こちらの入力ミスです
ありがとうございました!!!

お礼日時:2024/11/15 15:41

こんにちは



直接の回答ではありませんけれど・・

ご提示の処理は色を付けるだけで、「該当しない場合には色を元に戻す」ということは行っていないようですが、元に戻しても良いのなら、条件付き書式を設定しておけば済む話ではないでしょうか?

どうしてもVBAで行いたいのなら、基準のセル位置(あるいは行番号)を変数化して、そこからの相対処理となるように書き換えてループすれば可能でしょう。
    • good
    • 0

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

このQ&Aを見た人はこんなQ&Aも見ています


おすすめ情報

このQ&Aを見た人がよく見るQ&A