さて。
普通に来たらreplace関数の解説な訳ですが・・・

「どうせreplace関数のややこしい説明すんだろ・・・」
と思ってたそこの貴方!

ぶっちゃけreplace関数はプログラムでは滅多に使いません(笑
使う事は殆ど無い(普通は正規表現置換使うので)ので完全に理解する必要はありませんが
「覚えておくと便利」程度の気軽な気持ちで読んで構いません。
※注:replace関数は正規表現ではありません。

だから解説しないでおこう・・・・・・
なんて思うわけありません。(結局説明するのかよ

という訳でreplace関数の仕様。
仕様・・・・
仕様・・・。
残念ながら余り利用しないので詳しく知らなかったり(ぁw

という訳で参考書を引っ張り出しつつ・・・
replace [置換元文字列],[置換文字列],[置換後文字列](,[開始位置],[置き換え数],[比較方式])

で、これ異常にややこしい訳です。

※以下真剣な解説ですがネタにしかなりえません。簡潔に説明するのでそっちを理解して下さい・・・
まぁようは、
[置換元文字列]の中に[置換文字列]が存在した場合、[置換後文字列]に置き換えるんだけど、
[置換元文字列]の中の[置換文字列]の[開始位置]個目から[置き換え数]個だけ[置換後文字列]に置き換えますよと。
んでもって[開始位置]個目以前の[置換文字列]は除去されますよと。

・・・・まぁ理解できる訳ないですね。
これは相当ややこしい。
とりあえず[比較方式]は指定しないで下さい。
プログラミングを相当理解してないと、理解は厳しいです。
ちなみに・・・
「テキスト比較」「バイナリィ比較」「データベース比較」モードがあるようです。

まず

"あいうえおあいうえおあいうえお"

という文字列があります。
この時、

src="あいうえおあいうえおあいうえお"

だとします。
まずは簡単な使い方。

result=replace(src,"あ","か")

「src」の中から「"あ"」という文字列を検索し「"い"」に置き換えます。
よって・・・
result="かいうえおかいうえおかいうえお"

となります。
この時、「src」は「"あいうえおあいうえおあいうえお"」のままです。
ちょっと難しくして、(「src」は「"あいうえおあいうえおあいうえお"」のままですよ。)

result=replace(src,"あい","か")

「src」の中から「"あい"」という文字列を検索し「"い"」に置き換えます。
よって・・・

result="かうえおかうえおかうえお"

となります。
次に[開始位置]ですが・・・
開始位置は、

result=replace(src,"あい","か",2)

この時「src」を左から見ていくと、最初が「"あい"」となっていますが
「置き換えるのは「2」つめ」からと指定しているので最初は置き換えずにそのまま・・・
だったらややこしくなくて良かったんですけどね(笑
開始位置を指定した場合、
「そこ個数に到達するまでに見つかった文字列は除去され」
てしまうんです。
どういう事か・・・?
replace関数は文字列を左から順に眺めていくので、

この場合最初の2文字で「"あい"」が合致します。
合致しますが合致した文字列を除去するので・・・・

result="うえおあいうえおあいうえお"

そして左から順に見ていくと2個目の「"あい"」があります。
今回は開始位置を2と指定しているので、ここからは「"か"」に置き換わります。
結果的に、

result="うえおかうえおかうえお"

となるのです。

最後に[置き換え個数]ですが
これは開始位置に比べれば簡単で「いくつ置き換えるか」を指定します。
例えば、([開始位置]は指定せず省略してます。)

result=replace(src,"あい","か",,2)

となっていた場合、

srcの中には「"あい"」が3つありますが、
置き換えるのは「2つ」と指定しているので左から2個が置き換えられ、
最後の1個は無視されます。
よって、

result="かうえおかうえおあいうえお"

となります。

※参考までに・・・
replace関数の動作を分解して見ました(何
2009/1/26 23:30 ミスってたので修正しました。

replace("a","b","c",1,2)
とした場合に

replace(src,target,dest,start,count)
という名前の変数に値が入る物とします。
("a"がsrcという変数に、"b"がtargetという変数に・・・)
また、結果はresultという変数に格納します。

if esc<>"" then
  esc=src
  result=""
  if (len(esc)>=len(target)) then
    do until len(esc)<len(target)
      if left(esc,len(target))=target then
        if count<>0 then
          if start>1 then
            esc=right(esc,len(esc)-len(target))
            start=start-1
          elseif start=1 then
            result=result & target
            count=count-1
          else
            msgbox("プロシージャの呼び出しが不正〜")
            exit do
          end if
        else
          exit do
        end if
      else
        result=result & left(esc,1)
        esc=right(esc,len(esc)-1)
      end if
    loop
    result = result & esc
  else
    result= esc
  end if
end if

これで合ってるはずですが・・・
関数や構文について解説をすると、
len(x):「x」の文字数を取得
left(x,y):「x」を左から「y」文字分切り出す
right(x,y):「x」を右から「y」文字分切り出す
mid(x,y,z):「x」を「y」文字目から「z」文字分切り出す。

do until [条件式]
[処理]
loop

[条件式]がTrue(0以外の数値)になるまで
[処理]を繰り返す。