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