教えて!ExcelVBA!

ExcelVBAの基礎知識・書き方について紹介します。

ExcelVBAでInStr関数の使い方

構文

構文は以下の通りです。

InStr([開始位置], 文字列1, 文字列2, [比較モード])

解説

InStr関数は、ある文字列の中に特定の文字列が含まれている位置を調べるための関数です。開始位置(省略可能):検索を開始する文字位置です。省略した場合、1から開始されます。文字列1は、検索対象となる文字列です。文字列2は、検索する文字列です。比較モード(省略可能)は、大文字と小文字を区別するかどうかの指定です。比較モードの種類は、以下で紹介します。実行の結果、検索した文字が見つかるとその文字の位置が返され、見つからない場合は0が返されます。

【比較モード】

定数 内容
vbBinaryCompare 0 バイナリ比較を行います。大文字と小文字を区別して比較します。
vbTextCompare 1 テキスト比較を行います。大文字と小文字を区別せずに比較します。

プログラミング例

具体的なプログラミング例を紹介します。

Sub 文字を探す()
    Dim 文章 As String
    Dim 探す文字 As String
    Dim 結果 As Integer
    文章 = "小学校でExcelVBAを学ぶ"
    探す文字 = "Excel"
    結果 = InStr(1, 文章, 探す文字, vbTextCompare)
    If 結果 > 0 Then
        MsgBox "「" & 探す文字 & "」は" & 結果 & "文字目にあります。"
    Else
        MsgBox "「" & 探す文字 & "」は見つかりませんでした。"
    End If
End Sub

上記のプログラムは、文章という変数に「小学校でExcelVBAを学ぶ」という文字列を格納し、探す文字という変数に「Excel」を格納しています。InStr関数を使って、文章内で探す文字の位置を検索し、見つかった場合はその位置を表示します。見つからなかった場合はメッセージボックスで「見つかりませんでした」と表示されます。

まとめ

InStr関数は、ある文字列の中に特定の文字列が含まれている位置を調べるための関数です。開始位置や比較モードを指定することで、細かい検索条件を設定できます。