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

この記事は、以前は次の ID で公開されていました: JP405103
サポート期間が終了した「サポート技術情報」資料に関する免責事項
この資料は、マイクロソフトでサポートされていない製品について記述したものです。そのため、この資料は現状ベースで提供されており、今後更新されることはありません。
概要
この資料は、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 - 最終更新日: 11/10/2003 14:29:51 - リビジョン: 2.0

Microsoft Excel 5.0 for Macintosh

  • kbhowto KB405103
フィードバック