- ベストアンサー
VBA初心者のためのデータ検索と着色の方法
- VBA初心者の方がA1からA11のデータを対象に、特定の文字を含むセルを検索し、そのセルに色を付ける方法について質問があります。
- プログラムの中で使用されているフラグ変数についても説明があり、検索時にフラグが立つことで最初の検索とそれ以降の検索を区別しています。
- ただし、一部のプログラムの記載が不完全であり、最初の検索時のセルのアドレスを保存している部分が不明です。アドバイスを求めています。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
元のコードは考慮せず、試しに作成してみました。ユーザーフォームは面倒なので、ワークシート上で試しています。次回検索アドレスをB1セルに保存していますが、ユーザーフォームから実行する場合も、データ一時保管用のワークシートを設けて、同様に行う事も可能です。ご参考になれば幸いです。 Sub test() Dim targetRange As Range Dim c As Range Dim lastRow As Long Dim endFlag As Boolean With ActiveSheet lastRow = .Range("a" & .Rows.Count).End(xlUp).Row If Range("b1").Value = "" Then Set targetRange = Range(.Range("a1"), .Range("a" & lastRow)) Else Set targetRange = Range(.Range(.Range("b1").Value), .Range("a" & lastRow)) End If Set c = targetRange.Find("山", LookIn:=xlValues, LookAt:=xlPart) If c Is Nothing Then .Range("b1").Value = "" endFlag = True Else c.Interior.ColorIndex = 4 If c.Row < lastRow Then .Range("b1").Value = c.Offset(1, 0).Address Else .Range("b1").Value = "" endFlag = True End If End If If endFlag Then MsgBox "検索終了しました" End With End Sub
その他の回答 (1)
- mitarashi
- ベストアンサー率59% (574/965)
#1です。昨日(既に一昨日ですが)から回答がついていないので回答してみましたが、二重投稿状態だったのですね。最初の質問のやりとりは全く見ておりませんでしたので、「この粗忽者」と、ご笑納下さい。
お礼
OKWAVEのビギナーなもので、ここにお礼が書けるとは知りませんでした。ありがとうございます。VBAを勉強し始めたものです。本屋に行っても、基本ばかり書かれている本は山のようにありますが、イザこの機能はどうやって、となると殆ど役に立ちません。 そんなわけで、こんな機能はどうやって組むのか、と自問自答とコピペを繰り返しながら試行錯誤の毎日です。またネットで見かけたら質問に答えてやってください。よろしくお願いします。