|
▼つん さん
こんにちは。
下記、頂きましたSub test3()を元にうまくいきました!
ありがとうございます!
・・・が、また要求がきてしまいまして。
エラーが出たあと(r.Interior.ColorIndex = 3)、一度終了し、
再度マクロ実行した時、このままだとセルは赤いままですよね。当然。
次にマクロ実行時、もしセルがブランクでなくても赤セルのまま。
クリア(色は白)にしてからIF文に入るにはどうしたらよいでしょうか。
IF文の前に、r.Interior.ColorIndex = 0 とか入れてみたのですが。
助けて頂けますでしょうか。何度もすみません。
Sub test3()
Dim r As Range
Set r = Worksheets("Sheet1").Range("a4,e4:e7").SpecialCells(xlCellTypeBlanks)
If Not r Is Nothing Then
r.Interior.ColorIndex = 3
MsgBox "赤セルを入力してちょ"
End If
Set r = Nothing
End Sub
▼つん さん:
>▼T-K さん:
>こんにちは^^
>
>
>> If 発行番号 = Range("A4").SpecialCells(xlCellTypeBlanks) Then
>
>Rangeオブジェクトの変数に代入するときは、Setせんとあきません。
>
>Set 発行番号 = Range("A4").SpecialCells(xlCellTypeBlanks)
>
>If Not 発行番号 Is Nothing Then
> 処理処理
>End If
>
>って形ですね。
>でも、単一セルを指定すると、全セル対象になるみたいなので、これもアウトみたいですが^^;
>単一セルの処理だったら単純に
>
>If Range("a4").Value = "" Then
>
>でいいように思います。
>
>
>> ElseIf 日付1 = Range("E4").SpecialCells(xlCellTypeBlanks) Then
>> Range("E4").Interior.ColorIndex = 3
>> ElseIf 発行者 = Range("E5:E7").SpecialCells(xlCellTypeBlanks) Then
>> Range("E5:E7").Interior.ColorIndex = 3
>> Else
>> MsgBox "赤セルを入力して下さい"
> ここで、メッセージいれたら、どこにも赤セルがない状態の時に
> メッセージが出るだけちゃうの?
>> End If
>>End Sub
>
>よくわからんのですけど、結局は、セルの「A4」と「E4:E7」の範囲の空白セルを赤く塗りつぶしたいんですよね?
>やったら、
>
>Sub test3()
>
> Dim r As Range
>
> Set r = Worksheets("Sheet1").Range("a4,e4:e7").SpecialCells(xlCellTypeBlanks)
>
> If Not r Is Nothing Then
> r.Interior.ColorIndex = 3
> MsgBox "赤セルを入力してちょ"
> End If
>
> Set r = Nothing
>
>End Sub
>
>で、どうですか?
|
|