Excel VBAのInStr関数について
Excel VBAのInStr関数は、文字列の中から特定の文字列が初めて現れる位置を返す関数です。特定の文字列が含まれていない場合、関数は0を返します。
InStr関数の構文
InStr関数の基本的な構文は以下の通りです。
InStr([start], string1, string2, [compare])
各パラメータの詳細は以下の通りです:
- start: 検索を開始する位置を指定します。これはオプションのパラメータです。省略された場合、文字列の最初から検索が開始されます。
- string1: 検索対象となる文字列です。このパラメータは必須です。
- string2: string1内で検索する文字列を指定します。このパラメータは必須です。
- compare: 文字列の比較方法を指定します。これはオプションのパラメータです。省略された場合、オプションの設定によります。
InStr関数の使用例
以下に、InStr関数の基本的な使用例を示します。このコードは、指定されたフレーズの中に特定の単語が存在するかどうかを確認します。
Sub CheckWordInPhrase() Dim Phrase As String Dim Word As String Dim Position As Integer Phrase = "Excel VBAは強力なツールです" Word = "VBA" Position = InStr(1, Phrase, Word, vbTextCompare) If Position > 0 Then MsgBox Word & " はフレーズの " & Position & " 番目の位置に存在します。", vbInformation, "検索結果" Else MsgBox Word & " はフレーズに存在しません。", vbInformation, "検索結果" End If End Sub
このコードでは、まずPhraseとWordに検索対象となるフレーズと検索したい単語を代入しています。
次に、InStr関数を使用してWordがPhraseの中に存在する位置を取得します。その位置がPosition変数に代入されます。
最後に、Ifステートメントを使用してPositionが0より大きいかどうかを確認します。0より大きい場合、つまりWordがPhraseの中に存在する場合は、その位置をメッセージボックスで表示します。Positionが0の場合、つまりWordがPhraseの中に存在しない場合は、その旨をメッセージボックスで表示します。