サンプルでは、全シートを対象に、インプットボックスで指定された文字列を検索し、
総数をメッセージボックスに表示しています。
検索範囲から指定された文字列を検索するために、ワークシート関数のCountIf関数
を使っています。
CountIf関数は、指定された範囲に含まれるセルのうち、検索条件に一致するセルの
個数を返してくれます。
●準備●
新規ブックを用意して標準モジュールを挿入し、サンプルマクロを貼り付けてください。
●サンプル●
Sub Sample()
Dim myWS As Object
Dim myCnt As Integer
Dim AllSu As Integer
Dim target As Variant
'<検索結果保管先を初期化します。>
AllSu = 0
'<検索する文字列を指定する入力用のダイアログボックスを表示します。>
target = Application.InputBox(Prompt:="検索する文字を入力して下さい。")
'<キャンセルか未入力ではなかったら検索します。>
If target <> False And target <> "" Then '←(1)
'<全てのシートを対象に検索を行います。>
For Each myWS In Sheets
'<使われているセル範囲に含まれるセルのうち、
'検索条件に一致するセルの個数を取得します。>
myCnt = WorksheetFunction.CountIf(myWS.UsedRange, target) '←(2)
'<検索条件に一致したセルの個数をカウントします。>
AllSu = AllSu + myCnt
Next myWS
'<全てのシートの検索が終わったら、結果を表示します。>
If AllSu = 0 Then
MsgBox target & "は見つかりませんでした。"
Else
MsgBox target & "は" & AllSu & "個あります。"
End If
End If
End Sub
●補足説明●
(1)InputBoxメソッドは、ユーザー入力用のダイアログボックスを表示します。
そして、表示したダイアログボックスに入力された情報を返します。
このメソッドによるダイアログボックスには、[OK]ボタンと[キャンセル]ボタンが表示さ
れます。
[OK]ボタンをクリックすると、ダイアログボックスに入力した値が返されます。
[キャンセル]ボタンをクリックすると、Falseが返されます。
(2)COUNTIF関数は、VisualBasicで使用できるワークシート関数です。
指定された範囲に含まれるセルのうち、検索条件に一致するセルの個数を返します。
<構文>
COUNTIF(範囲, 検索条件)
範囲 :セルの個数を求めるセル範囲を指定します。
検索条件:計算の対象となるセルを定義する条件を、数値、式、または文字列で指定します。
式および文字列を指定する場合は、">32"、"Windows"のように、半角のダブルクォーテーシ
ョン(")で囲む必要があります。
|