|
▼kanabun さん:
ご丁寧にありがとうございました。
kanabunさんの方法を試させていただきました。
解決といいながら,追加の質問をして大変申し訳ないのですが,
kanabunさんの方法で,条件にあう行が塗りつぶされることは
確認できました。
>A1="0" かつ B1="0" ならば,
>B1セルの色は何もなし。
>それ以外は,
>B1セルの色を赤くする。
[質問1]↑行全体ではなく,条件にあう行のかつB列のみを塗りつぶしたい
という場合は,kanabunさんのコードをどのように修正すれば
よいでしょうか?
〉Dim LastRow As Long
〉'A、B列の最終行を求める
〉With Cells(Rows.Count, 1)
〉 LastRow = WorksheetFunction.Max( _
〉 .End(xlUp).Row, _
〉 .Offset(, 1).End(xlUp).Row)
〉End With
[質問2]↑応用して,A,B,C列の最終行(A列とB列とC列の最終行が
異なるばあいに大きいほうをLastRow とする)を求めるとしたい
ときはコードをどのようにすればよいでしょうか?
>▼ぼこ さん:
>
>解決後にすみません。
>実をいうと
>Sub Try1b()
>でも、条件にあう行が塗りつぶされませんでした。
>その理由をずっと考えても分からなかったので、
>他の掲示板に質問しましたところ、すぐ理由が分かりました
>
>Sub Try1c()
> Dim LastRow As Long
> With Cells(Rows.Count, 1)
> LastRow = WorksheetFunction.Max( _
> .End(xlUp).Row, _
> .Offset(, 1).End(xlUp).Row)
> End With
> With Range("A1:B" & LastRow)
> .Interior.ColorIndex = xlNone
> .Cells(1).Select '◆ここを追加
> With .FormatConditions
> .Delete
> .Add Type:=xlExpression, _
> Formula1:="=NOT(ASC($A1)&ASC($B1)=""00"")"
> .Item(1).Interior.ColorIndex = 6
> End With
> End With
>End Sub
>
>マクロ記録のコードがうまく行って、Select Selectionを取り払った
>コードがうまくいかなかったのは、
>数式中で使っている $A1 というアドレスと 選択範囲の先頭セルが
>対応するということを指定するために、[A1]をアクティブにしてやら
>ないとダメだったんですね。
>以上、事後談となりましたが、何かの機会に参考になれば
>と思いまして投稿させていただきました
>では (^^)
|
|