VBA で検索文字列の数を調べる方法

サポートが終了した KB の内容についての免責事項

この記事は、マイクロソフトがサポートを提供しなくなった製品について記述しています。 したがって、この記事は「現状のまま」で提供され、更新されることはありません。

概要

この資料は、VBA で検索文字列の数を調べる方法について説明したものです。

VBA で検索文字列の数を調べる方法

InStr 関数、For Each...Next ステートメントを組み合わせて選択範囲を対象に検索 文字列の数を調べることができます。

1.選択範囲の中から検索文字列を含むセルの数を求める


Sub sample1()
Dim Count As Integer
Dim N As Integer
Dim Target
Dim Cell As Range
'インプットボックスの表示
Target = Application.InputBox(prompt:="文字列入力", _
Title:="文字列検索", Type:=2)
'<キャンセル> ボタンをクリックまたは
'検索文字列を入力しなかった時
If (Target = False) Or (Target = "") Then Exit Sub
'カウンタ変数初期化
Count = 0
For Each Cell In Selection
'検索
N = InStr(1, Cell.Value, Target)
'検索文字列が見つかった時
If (N > 0) Then
'カウンタ変数をインクリメント
Count = Count + 1
End If
Next Cell
If (Count = 0) Then
MsgBox Target & "は、見つかりませんでした。"
Else
MsgBox Target & "は、" & Count & "個見つかりました。"
End If
End Sub

2.選択範囲の中から検索文字列の数を求める


Sub sample2()
Dim Count As Integer
Dim N As Integer
Dim Target
Dim Cell As Range
'インプットボックスの表示
Target = Application.InputBox(prompt:="文字列入力", _
Title:="文字列検索", Type:=2)
'<キャンセル> ボタンをクリックまたは
'検索文字列を入力しなかった時
If (Target = False) Or (Target = "") Then Exit Sub
'カウンタ変数初期化
Count = 0
For Each Cell In Selection
N = 0
Do
'検索
N = InStr(N + 1, Cell.Value, Target)
'検索文字列が見つかった時
If (N > 0) Then
'カウンタ変数をインクリメント
Count = Count + 1
End If
Loop While (N > 0)
Next Cell
If (Count = 0) Then
MsgBox Target & "は、見つかりませんでした。"
Else
MsgBox Target & "は、" & Count & "個見つかりました。"
End If
End Sub

3.選択範囲の中から検索文字列と完全一致したセルの数を求める


Sub sample3()
Dim Count As Integer
Dim Target
Dim Cell As Range
'インプットボックスの表示
Target = Application.InputBox(prompt:="文字列入力", _
Title:="文字列検索", Type:=2)
'<キャンセル> ボタンをクリックまたは
'検索文字列を入力しなかった時
If (Target = False) Or (Target = "") Then Exit Sub
'カウンタ変数初期化
Count = 0
For Each Cell In Selection
'検索文字列とセルに入力された文字列が一致した時
If (Target = Cell.Value) Then
'カウンタ変数をインクリメント
Count = Count + 1
End If
Next Cell
If (Count = 0) Then
MsgBox Target & "は、見つかりませんでした。"
Else
MsgBox Target & "は、" & Count & "個見つかりました。"
End If
End Sub
例えば、A1 に aa 、A2 に aA 、 A3 に AA と入力し、A1 : A3 を選択してマクロ
を実行した場合は次の結果になります。検索文字列が「 a 」の時、「 Sample 1 」マク ロは 2 個、「 Sample 2 」マクロは 3 個、「 Sample 3 」マクロは 0 個の結果を返します。 InStr 関数については、「 Microsoft Excel ヘルプの目次」-「 Visual Basic を
使ったプログラミング」-「関数」をご参照ください。
For Each...Next ステートメントについては、「 Visual Basic ユーザーズガイド
177 ページ」-「第 7 章 コードの実行の制御」-「 For Each ...Next 」および、
「 Microsoft Excel ヘルプの目次」-「 Visual Basic を使ったプログラミング」-
「ステートメント」をご参照ください。
プロパティ

文書番号:405103 - 最終更新日: 2003/11/10 - リビジョン: 1

フィードバック