|
どなたか教えてください。
以下のプログラムを試してみたのですが、上手くいきません。
メッセージボックスに空白またはキャンセルした場合に、
シート全体に意図しない部分に色が着いてしまいます。
そこで、(1)の部分を
If 検索結果 <> False And 検索結果 <> "" Then '
に変更してみたのですが、上手くいきません。
なぜ、思い通りに動かないのか わかりません。
どなたか、教えていただけないでしょうか?
Dim 検索値 As Variant
Dim 検索結果 As Range
Dim 最初結果 As Range
Dim 結果範囲 As Range
Dim データ範囲 As Range
Set データ範囲 = ActiveSheet.UsedRange
検索値 = InputBox("検索する文字列を入力してください")
Set 検索結果 = データ範囲.Find _
(What:=検索値, LookIn:=xlValues, LookAt:=xlWhole, _
SearchOrder:=xlByColumns, MatchCase:=True, MatchByte:=True)
If 検索結果 Is Nothing Then ←(1)
MsgBox 検索値 & "はみつかりません。"
Exit Sub
Else
Set 最初結果 = 検索結果
Set 結果範囲 = 検索結果
End If
Do
Set 検索結果 = データ範囲.FindNext(検索結果)
If 検索結果.Address = 最初結果.Address Then
Exit Do
Else
Set 結果範囲 = Union(結果範囲, 検索結果)
End If
Loop
MsgBox 検索値 & "は" & 結果範囲.Count & "件みつかりました。" & vbCrLf & _
セルを黄色で塗りつぶします。
結果範囲.Interior.Color = RGB(255, 255, 0)
End Sub
|
|