Access Replace関数は文字列の一部を、別の文字列で指定した回数分、置換した文字列を返します。
例えば「2007年、2008年、2009年」の”年”を”年度”に1回置き換えた場合、「2007年度、2008年、2009年」が返ります。
全部置き換えた場合、「2007年度、2008年度、2009年度」が返ります。
■ 構文
Replace(expression, find, replace[, start[, count[, compare]]])
■ 引数
expression : (必須) 置換する文字 を指定します。
find : (必須) 検索する文字列を指定します。
replace : (必須) 置換する文字列を指定します。
start : (省略可) 検索する開始位置を指定します。引数を省略すると、1 になります。.
count : (省略可) 置換する回数を指定します。省略すると、-1 になり、すべてが置換されます。
compare : (省略可) 文字列比較のモードを表す数値を指定します。
compareの定数
定数 値 説明
- vbUseCompareOption :(-1) Option Compareステートメントの設定を使用して比較を行います。
- vbBinaryCompare :(0) バイナリモードで比較を行います。
- vbTextCompare :(1) テキストモードで比較を行います。
- vbDatabaseCompare :(2) Microsoft Access の場合のみ有効。
データベースに格納されている設定に基づいて比較を行います。
■ 戻り値
Replace関数は置換えした結果をバリアント型で返します。
Replace$関数は置換えした結果を文字列型で返します。
- 長さ0の文字列 ("") : 検索対象の文字列の長さが0 の文字列 ("") のとき
- エラー : 検索対象の文字列がNULL値の時
- 検索対象の文字列のコピー : 検索する文字列の長さが0 の文字列 ("") のとき
- 検索する文字列がすべて削除された検索対象の文字列のコピー : 置換する文字列が長さ0の文字列 ("") のとき
- 長さ0の文字列 ("") : 検索する開始位置の値が検索対象の文字列の文字数より大きいとき
- 検索対象の文字列のコピー : 置換する回数が0のとき
■ Access実行画面
実行前の画面です。
「元の文字」「検索する文字」「置換えする文字」を入力し、「置換え個数」を設定後、「Replace実行」ボタンをクリックします。
すると、置換え後の結果を右のテキストボックスに表示します。
置換え個数を1個に設定した結果です。
最初の”29歳男”のみ”29歳男性”に置き換えられています。
置換え個数を2個に設定した結果です。
先頭から”29歳男”と”18歳男”が”29歳男性”と”18歳男性”に置き換えられています。
置換え個数を全部に設定した結果です。
全部の”男”が”男性”に置き換えられています。
■ Access実行コード
Option Compare Database
Private Sub Form_Load()
'置き換えする文字
Me!テキスト0 = "29歳男・15歳女・18歳男・35歳男・25歳女・21歳男"
'検索する文字
Me!テキスト2 = "男"
'置き換えする文字
Me!テキスト1 = "男性"
End Sub
Private Sub コマンド5_Click()
Dim sRet As String
If Me!フレーム5 = 1 Then
'文字の置き換え
sRet = Replace(Me!テキスト0, Me!テキスト2, Me!テキスト1, , 1)
ElseIf Me!フレーム5 = 2 Then
'文字の置き換え
sRet = Replace(Me!テキスト0, Me!テキスト2, Me!テキスト1, , 2)
Else
'文字の置き換え
sRet = Replace(Me!テキスト0, Me!テキスト2, Me!テキスト1)
End If
'置き換え結果を表示
Me!テキスト3 = sRet
End Sub