エクセルマニア

VBA 文字列 置換 検索

TOP > VBA・マクロ >  文字列を置換・検索する関数
このエントリーをはてなブックマークに追加

文字列の置換・検索のVBA関数


指定された文字列の一部を、別の文字列で指定された回数分で置換した文字列を返します。

構文:Replace(expression, find, replace[, start[, count[, compare]]])

expression:置換対象の文字列を指定。。
find:検索する文字列を指定。
replace:置換する文字列を指定。
start:省略可能。検索を開始する位置を指定。
count:省略可能。置換する回数を指定。省略するとすべて置換されます。
compare:省略可能。文字列比較のモードを指定。

Range("A1").Value = Replace(" A B C ", " ", "")
Range("B1").Value = Replace(" A B C ", " ", "", 1, 2)

実行結果

A
1ABC
2AB C 
文字列を検索し、最初に見つかった文字位置を返します。

構文:InStr([start, ]string1, string2[, compare])

start:検索を開始する位置を指定。省略時は先頭から。
string1:検索対象の文字列を指定。。
string2:検索する文字列を指定。。
compare:省略可能。文字列比較のモードを指定。 compareがNull値の場合は、エラーが発生します。
compareを指定した場合は、引数startも指定する必要があります。
省略すると、Option Compare ステートメントの設定に応じて、比較モードが決まります。ローカル固有の比較ルールを使用するには、有効なLCID (LocaleID) を指定します。

Range("A1").Value = InStr("あいうえおかきくけこ", "か")
Range("A2").Value = InStr(1, "あいうえおあいうえお", "あ")
Range("A3").Value = InStr(2, "あいうえおあいうえお", "あ")

実行結果

A
16
21
36
最後の文字位置から検索を開始し、最初に見つかった先頭からの文字位置を返します

構文:InStrRev(string1, string2[, start, compare])

string1:検索対象の文字列を指定。。
string2:検索する文字列を指定。。
start:検索を開始する位置を指定。省略時は先頭から。
compare:省略可能。文字列比較のモードを指定。 compare を省略すると、バイナリ モードで比較が行われます。

Range("A1").Value = InStrRev("あいうえおかきくけこ", "か")
Range("A2").Value = InStrRev("あいうえおあいうえお", "あ", 1)
Range("A3").Value = InStrRev("あいうえおあいうえお", "あ", 2)

実行結果

A
16
21
31

定数 説明
vbBinaryCompare バイナリ モードで比較。
vbDatabaseCompare データベース モードで比較。
vbTextCompare テキスト モードで比較。


このエントリーをはてなブックマークに追加