Vba: 文字列に別の文字列が含まれているかどうかを確認する方法
VBA でInstr()関数を使用すると、文字列に別の文字列が含まれているかどうかを確認できます。
この関数は次の基本構文を使用します。
Instr(開始、文字列1、文字列2、…)
金:
- start : 検索の開始位置
- string1 : 検索する文字列
- string2 : 検索しようとしている文字列
次の例は、この関数を実際に使用する方法を示しています。
例: VBA を使用して、文字列に別の文字列が含まれているかどうかを確認します。
さまざまなバスケットボール チームに関する情報を含む次のデータセットが Excel にあるとします。
ここで、「Team」列の各文字列のどこかに「avs」が含まれているかどうかを確認したいとします。
VBA で次の構文を使用すると、Team 列の各文字列に「avs」が含まれているかどうかを確認し、含まれている場合は D 列と E 列の行全体を返すことができます。
Sub StringContains() Dim i As Integer , i_num As Integer For i = 2 To 9 If InStr(1, LCase(Range(" A " & i)), " avs ") <> 0 Then i_num = i_num + 1 Range(" D " & i_num & " :E " & i_num) = Range(" A " & i & " :B " & i).Value End If Next i End Sub
このマクロを実行すると、次の出力が表示されます。
Team 列のどこかに文字列「avs」を含む各行が、D 列と E 列に返されることに注意してください。
この例では、チーム列に「avs」が含まれているのは 2 つのチーム (Mavs と Cavs) のみです。
別の文字列を検索するには、上記のコードの「avs」を選択した文字列に置き換えるだけです。
注 #1:セル A2 から A9 に関心のある文字列が含まれているため、コードではFor i = 2 to 9を使用しました。探しているセルの範囲に応じて、この範囲を自由に変更してください。
注 #2 : VBA のInstr()関数の完全なドキュメントは、ここで見つけることができます。
追加リソース
次のチュートリアルでは、VBA を使用して他の一般的なタスクを実行する方法について説明します。