複数検索方法
マクロ(Excel)にて検索できるものを作成しています。
例えばネットワークドライブにて割り当てたH22(Zドライブ)~H1(Gドライブ)というフォルダがあり、UserForm1にてH22~H1のチェックボックスを作成しています。ここでH22とH21のチェックボックスにチェックを入れキーワードを入力し検索すると、H22とH21のフォルダ内になるキーワードと同じファイル名をフォルダ名と同じのシートに検索結果を表示したいです。
しかし、下記のようにすると、1つずつの検索は可能なのですが、複数チェック(H22とH21)入れると
H22を検索し終わった後、もう一度キーワードを入力しないとH21を検索してくれません。
複数チェックし1回のキーワード入力で検索するにはどうすれば良いですか?
説明が下手ですが、よろしくお願いします。
Private Sub CommandButton1_Click()
If CheckBox1 = True Then
Sheets("H22").Visible = True
Sheets("H22").Select
With Application.FileSearch
.NewSearch
.LookIn = "Z:\"
buf = InputBox("検索したいファイル名を入力してください" & vbCrLf & "ただし、複数キーワード検索はできません" & vbCrLf & "キーワード入力後、「OK」ボタンを選択", "キーワード入力")
If buf = "" Or buf = "False" Then Exit Sub
.Filename = buf
.SearchSubFolders = True
If .Execute() > -5 Then
MsgBox .FoundFiles.Count - 5 & " 個のファイルが見つかりました", vbOKOnly, "検索結果"
For 検索結果 = 6 To .FoundFiles.Count
Cells(検索結果, 3) = .FoundFiles(検索結果)
Next 検索結果
Else
MsgBox "見つかりませんでした"
End If
End With
Set FSO = Nothing
For i = 6 To 検索結果 Step 1
Cells(i, 3).Select
With ActiveSheet
.Hyperlinks.Add Anchor:=Selection, Address:=Cells(i, 3).Value
End With
Next i
ElseIf CheckBox2 = True Then
Sheets("H21").Visible = True
Sheets("H21").Select
With Application.FileSearch
.NewSearch
.LookIn = "Y:\"
buf = InputBox("検索したいファイル名を入力してください" & vbCrLf & "ただし、複数キーワード検索はできません" & vbCrLf & "キーワード入力後、「OK」ボタンを選択", "キーワード入力")
If buf = "" Or buf = "False" Then Exit Sub
.Filename = buf
.SearchSubFolders = True
If .Execute() > -5 Then
MsgBox .FoundFiles.Count - 5 & " 個のファイルが見つかりました", vbOKOnly, "検索結果"
For 検索結果 = 6 To .FoundFiles.Count
Cells(検索結果, 3) = .FoundFiles(検索結果)
Next 検索結果
Else
MsgBox "見つかりませんでした"
End If
End With
Set FSO = Nothing
For i = 6 To 検索結果 Step 1
Cells(i, 3).Select
With ActiveSheet
.Hyperlinks.Add Anchor:=Selection, Address:=Cells(i, 3).Value
End With
Next i
・
・
・
End If
End Sub
お礼
violetta430 さん、回答に感謝します、有難うございました。
補足
私の認識が不足していたのでしょうか?もう少し教えてください。 最初に、検索結果が2220件と表示され、300件位まで調べたときは、2220件中・・・件と表示され、次のページを表示すると、突然355件中・・・件と表示が変わるのは、重複されたものが除かれ、これ以上有効な表示が無いからなのですか? もしそうなら、納得です。