2011年12月11日日曜日

[ExcelVBA] Replace関数


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

■説明
文字列の一部を別の文字列へ指定された回数分置換して返します。
第一引数:置換対象文字列を指定します。
第ニ引数:置換該当文字列を指定します。
第三引数:置換該当文字列を置換する文字列を指定します。
第四引数:(省略可能)置換該当文字列を検索開始する位置を指定します。省略時1になります。
第五引数:(省略可能)置換する文字列数を指定します。省略時-1となり全て置換されます。
第六引数:(省略可能)文字列比較の比較モードを指定。省略時、Option Compareステートメントの設定にしたがいます。
定数説明
vbUseCompareOption-1Option Compare ステートメントの設定を使用して比較を行います。
vbBinaryCompare0バイナリ モードの比較を行います。
vbTextCompare1テキスト モードの比較を行います。

■サンプルコード
Option Explicit

Sub SampleCode()
    Debug.Print Replace("検索文字列", "検索", "置換")
    
    'Start,Countオプション Startで指定した検索位置より前は返さないことに注意
    Debug.Print Replace("1a3a5a7a9a", "a", "*")
    Debug.Print Replace("1a3a5a7a9a", "a", "*", Start:=1, Count:=2)
    Debug.Print Replace("1a3a5a7a9a", "a", "*", Start:=3, Count:=2)
    Debug.Print Replace("1a3a5a7a9a", "a", "*", Start:=5, Count:=2)
    

    '文字列比較、デフォルト(バイナリモード)、テキストモードの比較
    '大文字/小文字
    Debug.Print Replace("Aa", "A", "*")
    Debug.Print Replace("Aa", "A", "*", Compare:=vbTextCompare)
    '全角/半角
    Debug.Print Replace("AA", "A", "*")
    Debug.Print Replace("AA", "A", "*", Compare:=vbTextCompare)
    'ひらがな/カタカナ
    Debug.Print Replace("あア", "あ", "*")
    Debug.Print Replace("あア", "あ", "*", Compare:=vbTextCompare)
End Sub

0 件のコメント: