[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『指定文字以外の検索』(素人)
マクロ素人です。あるシステムのデータをクリップボードコピーしてエクセルに貼り付けを行っています。その際に、シート2以降を対象として「G5」以降の行に指定した名称以外があった場合は、文字を赤くしたい。(もしくは塗りつぶし)指定文字ですが「A・B・C・D・E」の五種類としておきます。(実際はもっと多いです)行数が多いので目視確認が大変です。シート1にはマクロ実行ボタンを設定して指定文字以外の検索を行いたいのですがどのようになるのか教えていただきたいです。この作業は毎月何度も行うので何とかならないかと思い質問してみました。よろしくお願いします。
< 使用 Excel:Excel2016、使用 OS:Windows7 >
G列のみ対象 A,B,C,D,Eを「含む」文字列があるセルを赤で塗りつぶし これで実用に耐えうるか確認してもらえますか?
Sub a() Dim i As Long Dim fArea As Range Dim f As Range Dim f_ As Range Dim x As Variant For i = 2 To Sheets.Count With Sheets(i) .Activate For Each x In Array("A", "B", "C", "D", "E") '検索する文字列一覧 Set fArea = .Range("G5:G" & Rows.Count) Set f_ = fArea.Find(x, fArea(1), xlValues, xlPart, xlByRows, xlNext, False, False) '検索条件設定 xlPartが部分一致、xlWholeで完全一致 If Not f_ Is Nothing Then Set f = f_ Do f.Interior.Color = vbRed '塗りつぶし Set f = fArea.FindNext(f) Loop Until f_.Address = f.Address End If Set f_ = Nothing Next x End With Next i End Sub
(稲葉) 2019/12/02(月) 14:08
んではこんな感じ? Sub a() Dim i As Long Dim fArea As Range Dim f As Range Dim f_ As Range Dim x As Variant For i = 2 To Sheets.Count With Sheets(i) .Activate Set fArea = .Range("G5:G" & Rows.Count) fArea.Interior.Color = vbRed For Each x In Array("A", "B", "C", "D", "E") '検索する文字列一覧 Set f_ = fArea.Find(x, fArea(1), xlValues, xlPart, xlByRows, xlNext, False, False) '検索条件設定 xlPartが部分一致、xlWholeで完全一致 If Not f_ Is Nothing Then Set f = f_ Do f.Interior.Color = xlNone Set f = fArea.FindNext(f) Loop Until f_.Address = f.Address End If Set f_ = Nothing Next x End With Next i End Sub
(稲葉) 2019/12/02(月) 15:00
ちょっと自分でやってみません? (稲葉) 2019/12/02(月) 15:37
じゃあ >指定文字ですが「A・B・C・D・E」の五種類としておきます。(実際はもっと多いです) はどうやってメンテナンスするんですか? (稲葉) 2019/12/02(月) 16:12
最終行の取得で検索してみてください。 塗りつぶしは先に述べたコードないのコメントで、なんとなくはわかると思います。 やってだめなら、ダメだった箇所をご提示ください。 (稲葉) 2019/12/02(月) 16:23
G5からデータのある最終行まで。
Cells(5, 7).End(xlDown)
このような事?
でも、動かないです。
(素人) 2019/12/03(火) 14:47
Set fArea = .Range("G5", .Cells(Rows.Count, "G").End(xlUp)) こちらでどうですか? (稲葉) 2019/12/03(火) 15:45
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.