プロが教えるわが家の防犯対策術!

いつもお世話になっております。
マクロボタンでI列が空欄だった場合、色を変える処理をしたいのですが、(データ一列目がI6です)
下へループするにはどうすればいいでしょうか。変数 iをつかってみましたが、forの使い方、ifとどう合わせて使うかが分かりません。。初歩的で申し訳無いですが、宜しくお願い致します。
-----現在のコード-----------------------
Sub ボタン13_Click()

If Range("I6").Value = "" Then
Range("A6").Interior.ColorIndex = 3

End If
End Sub

A 回答 (2件)

こんにちは!



I列6行目からI列最終行までループさせれば良いのですね。
一例です。

Sub Sample1()
 Dim i As Long
  For i = 6 To Cells(Rows.Count, "I").End(xlUp).Row
   If Cells(i, "I") = "" Then
    Cells(i, "A").Interior.ColorIndex = 3
   Else
    Cells(i, "A").Interior.ColorIndex = xlNone
   End If
  Next i
End Sub

こんな感じで大丈夫だと思います。m(_ _)m
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
ズバリ、色が変わりました!見ると理解できますが、考えた通りコードを書くことがまだまだできません。。今後も宜しくお願い致します。

お礼日時:2019/08/08 17:34

こんにちは



>forの使い方、ifとどう合わせて使うかが分かりません。
Forループをご存知なら、何raかの変数の値を変えながらループすることはご存知ですよね?

ご質問の場合は、各行についての処理なのでしょうから、行の値を変えながら順に処理するできるようなコードにする必要があります。
例えば、行番号を表す変数を「r」とするなら、
まずご提示のコードを、「r行でI列が空白だったら、r行のA列の色を変える」という内容に変えてみます。

例えば、以下のようにな感じ。
 If Cells(r, 9).Value = "" Then Cells(r, 1).Interior.ColorIndex = 3
あるいは、Rangeを使ってセル位置を示すなら
 If Range("I" & r).Value = "" Then Range("A" & r).Interior.ColorIndex = 3

元のA列のセルの状態がわからないので、空白でない場合には必ず背景色無しにセットするとかであるなら、カラーコードを一旦変数colorに入れるとして
 If Cells(r, 9).Value = "" Then color = 3 Else color = xlNone
 Cells(r, 1).Interior.ColorIndex = color
みたいになるのかも知れませんね。

このあたりまで考えられれば、後は、rの値を6から「処理したい最終行番号」まで変えながらループさせて、この処理を繰り返せば良さそうに思いませんか?

では、Good Luck ‼。
    • good
    • 0
この回答へのお礼

凄く順序立てて説明いただきありがとうございます。
背景色を無しにセットをまさに考えていました!
まだエラーなのですが、教えて頂いた方法でトライしてみます。
また宜しくお願い致します。

お礼日時:2019/08/08 17:38

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