|
▼つん さん
こんにちは。
また直ぐにご回答頂き感謝します。
ご説明により、すっきりしました。
(頓珍漢なこと言ってしまったこと含め。お恥ずかしい)
これで、やる気が俄然出てきました。
本当にありがとうございます。
また、壁にぶつかったらご教示頂ければ幸いです。
P.S
D4とD5:D7って、連続してるセルだけど、分けてるのは
→D4は日付、D5:D7はセル結合して、署名してもらうためでした。
D5の行を広げればよかったのですが、文書のレイアウト上できなくて。
▼つん さん:
>▼T-K さん
>こんにちは^^
>
>>【1】
>>セルの「A4」と「E4:E7」の範囲の空白セルを赤く塗りつぶしたいんですよね?
>>とありますが、実は、E4は単一セルで、E5:E7は「セルを結合した状態」です。
>>下記で試したのですが、E5:E7は色がついてしまいました。
>
>あー結合なんかあ・・・
>「結合」とマクロは相性が悪いので、なるべく結合しない方がいいらしいのですが、そうも言ってられないこともありますよね。
>
>ちうことで、結合してる場合、左上のセルに値が入ってる形になるので
>(ってことでいいんだろうか・・・・)
>
>「E5:E7」で空白セルを見ていくと、E6,E7でヒットしてしまうので、色がついてしまいます。左上のセルだけ指定してやればいいと思います。
>
>
>>End Ifの後に、Set r = Nothingを記述するのは何故でしょうか。
>ht tp://www.moug.net/tech/exvba/0150027.htm
>このへん読んでもらったらわかるかな?
>
>
>>これでも同じ結果が得られると言えるでしょうか。
>>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
>
>えーっと、一応色はついたりしますが、なんでLoopしてるのかわかりません^^;
>
>Set r = Worksheets・・・・
>の下に、「r.Select」でもしてもらったらわかるけど、変数「r」に、処理対象のセル範囲が全部入ってます。
>それで、一気に処理出来るので、Loopする必要はないかと・・・
>(う・・・説明が難しい)
>
>で、メッセージの直後に
>Cells.Interior.ColorIndex = 0
>が、入ってますが、すぐ色が消えてしまうけど、それはかまへんの?
>あと、これ入れるなら、
>r.Interior.ColorIndex = 0
>で、OKです。
>Cellsにすると、もし対象セル以外に、何か色づけされてたら、それも解除されちゃいます。
>
>
>あ、あと、
>Range("a4,d4,d5:d7,e5:e7")
>のところで、D4とD5:D7って、連続してるセルだけど、分けてるのはなんで?
|
|