教えて!ExcelVBA!

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

【ExcelVBA 関数】Instr関数の使い方を教えて!

構文

構文は以下の通りです。

Instr(開始位置, 検索対象文字列, 検索文字列, 比較方法)

解説

Instr関数は、指定した文字列内で特定の文字列を検索し、その位置を返す関数です。
●開始位置(省略可): 検索を開始する位置を指定します。省略すると1(先頭)から検索が始まります。
●検索対象文字列: 検索を行う文字列を指定します。
●検索文字列: 検索する文字列を指定します。
●比較方法(省略可): 文字列の比較方法を指定します。省略するとバイナリ比較が行われますが、日本語の場合はvbBinaryCompareを指定することが多いです。
Instr関数は、検索文字列が見つかった場合はその位置を返し、見つからなかった場合は0を返します。

使い方

Instr関数の使い方を具体的な例で解説します。

例1: 文字列内の特定の文字の位置を検索する

Dim text As String
text = "Hello, world!"
Dim position As Integer
position = Instr(text, "world")

上記のコードを実行すると、変数positionには文字列"world"が始まる位置が格納されます。

例2: 特定の文字列が含まれているかを判定する

Dim sentence As String
sentence = "I love programming!"
Dim result As Boolean
result = (Instr(sentence, "love") > 0)

上記のコードを実行すると、変数resultには文字列"love"が含まれているかどうかがTrueまたはFalseで格納されます。Trueの場合は含まれており、Falseの場合は含まれていません。

プログラミング例

以下にInstr関数を使用した具体的なプログラミング例を示します。

Dim text As String
Dim searchString As String
Dim count As Integer
Dim position As Integer
text = "This is a sample text."
searchString = "is"
count = 0
position = 1
Do While position > 0
    position = Instr(position, text, searchString)
    If position > 0 Then
        count = count + 1
        position = position + 1
    End If
Loop
MsgBox "文字列 """ & searchString & """ は " & count & " 回出現します。"

上記のコードでは、文字列"searchString"が文字列"text"内でいくつ出現するかを数える例です。Instr関数をDo Whileループと組み合わせて使用し、出現回数を変数"count"に格納しています。

まとめ

Instr関数の構文としては、「開始位置」「検索対象文字列」「検索文字列」「比較方法」の4つの引数を指定します。具体的な使い方としては、特定の文字列の位置検索や含まれているかの判定などが挙げられます。Instr関数を活用して効率的なプログラムを作成してみてください。