[Access 2016/2013/2010/2007]
AccessのReplace関数の使い方を紹介します。
スポンサーリンク
書式
Replace(文字列, 検索文字列, 置換文字列, 開始位置, 置換回数, 比較モード)
文字列から検索文字列を検索し、見つかった文字列を置換文字列で置換して返します。
■戻り値の型:文字列型 (String)
■引数
引数 | 指定 | 説明 |
---|---|---|
文字列 expression | 必須 | 置換対象となる文字列を指定 |
検索文字列 find | 必須 | 検索のキーワードとなる文字列を指定 |
置換文字列 replace | 必須 | 置換する文字列を指定 |
開始位置 start | 省略可 | 検索の開始位置を指定。省略した場合は、1文字目から検索を開始する |
置換回数 count | 省略可 | 置換する回数を指定。検索されたすべての文字列を置換したい場合は、-1を指定するか、指定を省略する |
比較モード compare | 省略可 | 文字列の比較モードを 表A の値で指定。クエリやフォームでの使用で省略した場合は「2」、モジュール(VBA)での使用で省略した場合は「-1」が指定されたものと見なされる |
■表A 引数 比較モード の設定値
値 | 定数 | 説明 |
---|---|---|
-1 | vbUseCompareOption | Option Compareステートメントの設定にしたがう(Option Compareステートメントの設定がない場合はバイナリモード) |
0 | vbBinaryCompare | バイナリモードで比較する(全角/半角、大文字/小文字、ひらがな/カタカナを区別する) |
1 | vbTextCompare | テキストモードで比較する(全角/半角、大文字/小文字、ひらがな/カタカナを区別しない) |
2 | vbDatabaseCompare | Accessの設定にしたがう(Accessの設定の既定値はテキストモード) |
使用例
使用例 | 戻り値 | 説明 |
---|---|---|
Replace("ざるそば", "そば", "うどん") | ざるうどん | 「そば」が「うどん」に置き換わる |
Replace("ざるそば", "かけ", "もり") | ざるそば | 検索文字列が見つからない場合、文字列がそのまま返る |
Replace("ざるそば", "そば", "") | ざる | 置換文字列が長さ0の文字列「""」の場合、文字列から検索文字列が削除される |
Replace("AbAbAb", "Ab", "Xy") | XyXyXy | すべての「Ab」が「Xy」に置き換わる |
Replace("AbAbAb", "Ab", "Xy", 2) | bXyXy | 2文字目から検索を開始して置換する |
Replace("AbAbAb", "Ab", "Xy", 1, 1) | XyAbAb | 先頭から検索を開始して1回だけ置換する |
Replace("AbAbAb", "AB", "Xy", 1, -1, 0) | AbAbAb | バイナリモードでは「Ab」と「AB」は異なるので置換が行われない |
Replace("AbAbAb", "AB", "Xy", 1, -1, 1) | XyXyXy | テキストモードでは「Ab」と「AB」は同じなので置換が行われる |
Replace(Null, "Ab", "Xy") Replace("AbAbAb", Null, "Xy") Replace("AbAbAb", "Ab", Null) |
エラー | 文字列、検索文字列、置換文字列のいずれかがNull値の場合、エラーになる |
Replace関数のエラーに対処する
引数文字列がNull値(未入力)の場合、ほとんどの文字列操作関数がNull値を返すのに対して、Replace関数ではエラーが発生するので注意が必要です。エラーを回避するには、Nz関数を使用してNull値を長さ0の文字列「""」に変換してから、Replace関数による置換を行いましょう。Nz関数は、「Nz(データ,Nullの代替値)」の形式で使用して、データが入力されていない場合にデータを長さ0の文字列「""」に変換する関数です。
式1
× 新バージョン: Replace([バージョン],"2013","2016")
式2
○ 新バージョン: Replace(Nz([バージョン],""),"2013","2016")
スポンサーリンク