[VBA][Excel]文字列検索 InStr関数


※全てのExcelで動作する保証はありません。また、内容に関し管理人は全ての責任を負いかねます

サンプル ※説明に必要な部分しか記述していません

文字列bufに文字列wwwがあればMid処理へ

    If InStr(1, buf, "www") <> 0 Then
        buf = Mid(buf, 5)
    End If

※下記はヘルプからの引用です

構文

InStr([start, ]string1, string2[, compare])

 

指定項目 内容
start 省略可能です。検索の開始位置を表す数式を指定します。省略すると、先頭の文字から検索されます。
string1 必ず指定します。検索対象となる文字列式を指定します。
string2 必ず指定します。引数 string1 内で検索する文字列式を指定します。
compare 省略可能です。文字列比較の比較モードを指定する番号を設定します。

●別のサンプルです

下記を実行すると

Private Sub CommandButton1_Click()

Dim buf As String

buf = "go-net"

If InStr(1, buf, "go") = 0 Then
    Sheet1.Range("A1").Value = "なし"
Else
    Sheet1.Range("A1").Value = Left(buf, 4)
End If

buf = "abcdef.co.jp"

If InStr(1, buf, "co.") = 0 Then
    Sheet1.Range("A2").Value = "なし"
Else
    Sheet1.Range("A2").Value = Mid(buf, 3, 5)
End If

buf = "xyz.com"

If InStr(1, buf, "ne.") = 0 Then
    Sheet1.Range("A3").Value = "なし"
Else
    Sheet1.Range("A3").Value = Right(buf, 5)
End If

buf = "www.ドメイン.org"

If InStr(1, buf, "org") = 0 Then
    Sheet1.Range("A4").Value = "なし"
Else
    Sheet1.Range("A4").Value = Right(buf, 6)
End If

End Sub

このようになります。

vba-excel-instr