[[20040209170947]] 『検索結果にて条件により行に色を付けたい』(MOYU) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『検索結果にて条件により行に色を付けたい』(MOYU)

あるセルの検索結果にて、条件により行に色を付けたい。

 例えば、F1のセルに"OK"という文字が入っていたら、
 1.A1を参照し、何らかの文字が入っていたら、A1〜F1のセルに色を付ける。
 2.A1が空白である場合はB1を参照し、何らかの文字が入っていたら、
   B1〜F1のセルに色を付ける。
 3.上記2をF1(E1?)まで繰り返す。

 ということをやりたいのです。
 何か方法がありましたら教えて下さい。お願いします。


 マクロ(VBA)なら出来ると思いますが、構わないですか? 

  (INA)


 A1のセルを選択して「メニューバー」⇒「書式」⇒「条件付き書式」を開き
 条件1に「数式が」と「=AND($F1="OK",$A1<>"")」を指定して色をパターンから選び
 OKをクリックします。これをB1とA列のみの必要行にコピーして下さい。
 次にB1の「条件付き書式」を開いて、
 条件2に「数式が」と「=AND($F1="OK",AND($A1="",$B1<>"")) 」を追加して
 色も選び OKをクリックします。
 これをC1〜F1までコピーして、B1〜F1を必要行コピーすればできると思うのですが、
 いかがでしょうか?
 A1もB1も空白のときには、"OK"が入っていても色は付きませんがよろしいですか?(スー)


 (INA)様(スー)様、返事が大変遅くなり申し訳ありません。

 A1もB1も空白のときも色を付けたいので、「条件付き書式」では
 やりたいことと違う結果になってしまいます。
 なので、VBAで全然構いませんので、お教え願えたらと思います。
 よろしくお願いします。
 (MOYU)

 お待たせしました。

 F列を対象にしています。F列で OK と入力されているセルを判別して処理します。

 Sub sample()
 Dim myRange As Range
 Dim c As Range
 Dim i As Long

    Set myRange = Range("F:F")

    For Each c In myRange
        If c.Value = "OK" Then

            For i = -5 To -1
                If c.Offset(0, i).Value <> "" Then
                    c.Offset(0, i).Resize(1, Abs(i) + 1).Interior.Color = vbYellow
                    Exit For
                End If
            Next i

        End If
    Next c

 End Sub 

   (INA)


 (INA)様、ありがとうございます。待ってました。
 早速使用させていただき、少しの変更を加えさせていただいたら
 ほぼ想像していたとおりのことが出来ました。
 感動です。

 VBA初心者な私ですが、本VBAの内容を理解することから始めようと思います。
 (いきなりこの内容じゃ難しい気はしますが・・・。)
 あせらず少しずつ勉強していきたいと思います。

 この度はありがとうございました。
 きっとまたお邪魔させてもらいます。

 (MOYU)

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.