|
▼つん さん
こんにちは。
迅速なご回答ありがとうございます!
シンプルで美しいなあ、と感激しています!!
そこですみませんが、またお助けいただけますでしょうか。
逆引き大全とか購入して四苦八苦しておりますが。
【1】
セルの「A4」と「E4:E7」の範囲の空白セルを赤く塗りつぶしたいんですよね?
とありますが、実は、E4は単一セルで、E5:E7は「セルを結合した状態」です。
下記で試したのですが、E5:E7は色がついてしまいました。
「セルを結合した状態」で色付けするにはどうしたらよいのでしょうか。
Range("e5:e7").Mergeのように、if文に入る前に処理したほうが??
【2】
Else
>> MsgBox "赤セルを入力して下さい"
> ここで、メッセージいれたら、どこにも赤セルがない状態の時に
> メッセージが出るだけちゃうの?
は、ご指摘の通りで、MsgBoxの代わりにユーザーフォームを挿入しようと
思っていました。
そこで、ユーザーフォームはどの位置に記述すればよいのでしょうか。
(もし、一例頂ければ、トライしてみます)
【3】
End Ifの後に、Set r = Nothingを記述するのは何故でしょうか。
【4】
これでも同じ結果が得られると言えるでしょうか。
Sub test3()
Dim r As Range
Set r = Worksheets("Sheet1").Range("a4,d4,d5:d7,e5:e7").SpecialCells(xlCellTypeBlanks)
Do
r.Interior.ColorIndex = 3
Loop While r Is Nothing
Set r = Nothing
MsgBox "赤セルを入力してちょ"
Cells.Interior.ColorIndex = 0
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
>
>で、どうですか?
|
|