Sub Find00() '住所一部検索
Dim MyData, HitData As Range
Dim SerachAdd As String
Set MyData = Range("D2:D20") '検索範囲を指定「D列:住所」
SerachAdd = "東京" '検索文字として指定
Set HitData = MyData.Find(What:=SerachAdd, lookat:=xlWhole) 'D列「住所」の中から検索文字「東京」の部分一致(xlPart)で検索します。
If HitData Is Nothing Then '検索文字が無ければ、「該当データはありません」っと表示してプログラムを終了します。
MsgBox "該当データはありません"
Exit Sub
End If
MsgBox "該当セルは" & HitData.Row - 1 & "行目にあります。" '検索文字が発見された行がメッセジーボックスとして表示されます。
End Sub
Sub Find01() '名前検索
Dim MyData, HitData As Range
Dim SerachName As String
Dim lRow As Long
Do
SerachName = InputBox("名前を入力して下さい。") '検索値(名前)を入力
Loop Until SerachName <> "" '名前が入力されたか確認
lRow = Cells(Rows.Count, "A").End(xlUp).Row 'A列の最終行を取得
Set MyData = Range("B2:B" & lRow) '検索範囲を指定
Set HitData = MyData.Find(What:=SerachName, lookat:=xlPart) '検索範囲から検索値を検索する。
If HitData Is Nothing Then '検索範囲から検索結果があるか確認する。
MsgBox "該当データはありません"
Exit Sub
End If
Range("B" & HitData.Row).Interior.ColorIndex = 6 '検索された該当する名前の背景色を塗りつぶす。
End Sub
Sub Find() '複数検索
Dim NameData, AddData, HitName, HitAdd As Range
Dim SerachName, SerachAdd As String
Dim lRow, I, NameCnt, AddCnt As Long
Do
SerachName = InputBox("名前を入力して下さい。") '検索値(名前)を入力
SerachAdd = InputBox("都道府県名を入力して下さい。") '検索値(住所)を入力
Loop Until SerachName <> "" And SerachAdd <> "" '名前と都道府県名(文字)が入力されたか確認・入力されるまで繰り返す
lRow = Cells(Rows.Count, "A").End(xlUp).Row 'A列の最終行を取得
For I = 2 To lRow '2行目から最終行まで繰り返す。
Set NameData = Range("B" & I & ":B" & I) '検索範囲を指定(名前)
Set HitName = NameData.Find(What:=SerachName, Lookat:=xlPart) '検索範囲から検索値(名前:xlPart 部分一致)を検索する。
Set AddData = Range("D" & I & ":D" & I) '検索範囲を指定(住所)
Set HitAdd = AddData.Find(What:=SerachAdd, Lookat:=xlPart) '検索範囲から検索値(住所:xlPart 部分一致)を検索する。
If HitName Is Nothing Then
Else
Range("B" & HitName.Row).Interior.ColorIndex = 7 '検索された該当する名前の背景色を塗りつぶす。
NameCnt = NameCnt + 1
End If
If HitAdd Is Nothing Then
Else
Range("D" & HitAdd.Row).Interior.ColorIndex = 6 '検索された該当する住所の背景色を塗りつぶす。
AddCnt = AddCnt + 1
End If
Next I
Range("G2") = NameCnt '検索された名前の件数を代入
Range("G3") = AddCnt '検索された住所の件数を代入
End Sub
Sub FindNext() '複数結果
Dim RData, HitBL As Range
Dim SerachBl As String
Dim lRow, i As Long
Do
SerachBl = InputBox("血液型を入力") '検索値(血液型)を入力
Loop Until SerachBl <> "" '性別と血液型(文字)が入力されたか確認・入力されるまで繰り返す
lRow = Cells(Rows.Count, "A").End(xlUp).Row 'A列の最終行を取得
Set RData = Range("E2:E" & lRow) '検索範囲を指定
Set HitBL = RData.Find(What:=SerachBl, Lookat:=xlWhole) '検索範囲から検索値(血液型:xlWhole 完全一致)を検索する。
If HitBL Is Nothing Then
MsgBox "検索データがありません"
Exit Sub
Else
Range("E" & HitBL.Row).Interior.ColorIndex = 6 '検索された該当する住所の背景色を塗りつぶす。
End If
For i = 2 To lRow '2行目から最終行まで繰り返す。
Set HitBL = RData.FindNext(HitBL) '検索範囲から検索値(血液型:xlWhole 完全一致)を検索する。「次の検索」
If HitBL Is Nothing Then
Else
Range("E" & HitBL.Row).Interior.ColorIndex = 6 '検索された該当する住所の背景色を塗りつぶす。
End If
Next i
End Sub