• ベストアンサー

エクセルで特定の文字列を含むセルを自動的に塗りつぶしたい

ということなのですが。条件付き書式、あるいはマクロなどで解決できないでしょうか? 特定の文字列に「等しい」セルを塗りつぶすというのは、かんたんにできるようなのですが、「含む」になると、過去ログから見つけられませんでした。 300ファイルくらいあるデータから、特定の文字を含むセルをマーキングし、情報を抽出せねばなりません。 どなたか知恵をかしてくださいませ!

質問者が選んだベストアンサー

  • ベストアンサー
  • kojitti
  • ベストアンサー率32% (449/1386)
回答No.6

これでどうでしょうか? Sub main() Moji = "特定の文字列" For i = 1 To Sheets.Count With Worksheets(i).Range("a1:IV65536") Set c = .Find(Moji, LookIn:=xlValues) If Not c Is Nothing Then firstAddress = c.Address Do c.Interior.Pattern = xlPatternGray50 Set c = .FindNext(c) Loop While Not c Is Nothing And c.Address <> firstAddress End If End With Next i End Sub

fishpaw
質問者

お礼

いけてます。 しかし、網掛けなのが少し見えずらいかもしれません…。 ぜいたくですが。 色をしくとかって可能ですか? さらにぜいたくですが、 その横一列をピンク色とかにするのって可能ですか? お手数おかけします。

その他の回答 (8)

  • kojitti
  • ベストアンサー率32% (449/1386)
回答No.9

>しかし、網掛けなのが少し見えずらいかもしれません…。ぜいたくですが。 この部分をお好みに変えればよいとおもいます。 c.Interior.Pattern = xlPatternGray50 >その横一列をピンク色とかにするのって可能ですか? もちろん可能なのですが、そもそもシートの全セルを検索対象にしていますが、検索対象とするのは特定の列のみでよいのでしょうか?

fishpaw
質問者

補足

すみません。お手数おかけしております。 検索文字が含まれる列は、3列ほどに限定されています。パターンのところは、ほかの質問者の方への回答などから調べればわかりそうなので、もしあれでしたら…。

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.8

#5です。お礼の記述に関連して。当方WIN98SEで エクセル2000でやってます。ですから2000でうまく行かないのは信じられません。OSのバージョンは関係ないと思います。かといって原因を思いつくものはありませんが。 文字列を英数半角、全角等変えてテストしてみてもらえませんか。式をミスタイプしないようにして。B付きとBなし(FIND,FINDB)の関連はないかなあ。

fishpaw
質問者

お礼

ありがとうございました。 B付き、Bなしも試してみます。 半角、全角は両方試してみたのですけど…。

  • maruru01
  • ベストアンサー率51% (1179/2272)
回答No.7

こんにちは。maruru01です。 条件付き書式で、以下のような式もあります。 「数式が」 「=COUNTIF(A1,"*abc*")>0」

fishpaw
質問者

お礼

わたしがあほなせいなのか、できません。 アスタリスクって必要なんですよね?

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.5

1つの同じシート内の操作に限られますが、 (やって見るとCTRLキーを押しながら、別のシートタブを次々クリックすると、同一区画の範囲指定で良ければ、2以上シート間でも1回の下記の操作で書式設定ができました。) (1)「特定の文字列を含む」を問題にする、セルを範囲指定する。 (2)書式-条件付き書式-「数式が」を選ぶ (3)数式のボックスに =FIND("dd",A2)>0と入れる。(仮にddを含むを考える)。 (4)書式を指定する。「パターン」のタブをクリックして色を指定。 (5)「OK」をクリック これでddを含むセル(だけ)の色が変わります。 検索にはFIND,FINDB,SEARCH,SEARCHBがありますので 違いを調べて、適当なものを使ってください。

fishpaw
質問者

お礼

ありがとうございました。さっそくやってみました。 OSがXPだとうまくいくのですが、2000だと、 なぜか処理できません。 ファイルの書式設定のせいなのかなと思うのですが…。

回答No.4

#3の方と同じですが... [数式が] =ISERROR(FIND("検索文字",対象セル))=FALSE

  • ja7awu
  • ベストアンサー率62% (292/464)
回答No.3

条件付き書式で「含む」ですと、こんな感じでどうでしょうか。 例: セルA1の文字列に"abc" が含まれているとき [数式が] =LEN(A1)<>LEN(SUBSTITUTE(A1,"abc","")) 300ファイルもあるのに、こんなことでいいのかな? と気にはなりますが・・・ 詳しい状況が解りませんので、そこには触れません。

  • 4500rpm
  • ベストアンサー率51% (3209/6282)
回答No.2

#1です。 少しちがってました。 1)編集→置換でオプションを押して下さい。 2)検索する文字列と置換後の文字列を同じ文字にして、置換後の書式でセルの色を指定して下さい。 これで置換すると指定文字が含まれているセルの色が変わります。書式設定により文字色を変えたりすることもできます。 くれぐれも置換後の文字を同じにして下さい。

  • 4500rpm
  • ベストアンサー率51% (3209/6282)
回答No.1

エクセル2002ですが、編集の検索で書式を設定するところがあるので、そこで設定するとできると思います。

fishpaw
質問者

お礼

すみません。明記してなかったのですが、エクセルは2000を使ってます。