アプリ版:「スタンプのみでお礼する」機能のリリースについて

(たとえばreplace関数で)すべての文字列に対して置き換えを行うには?


よろしくお願いします。

ACCESSとVBをやっているのですが、
A行には下記の文字列があるとします。

BBBCCCDDD
EEEGGGGFFF
ああいいいいうう
えええええおおほほほ

これらについて、
「初めの3文字を***に置き換える」
「前から4文字目から3つを***に置き換える」
「最後の3文字を***に置き換える」

と言ったことは関数で可能なのでしょうか?

A 回答 (2件)

言語のバージョンによって微妙に違うかもしれませんが。


mid関数で可能かと。

mid(元の文字列,開始位置,置換え文字数) = 置換え文字

で出来ると思います。
ただ、最後の数文字を置換えという点に関しては、元の文字列が固定長ではない場合、
開始位置を算出する処理を事前に入れる必要が有るかと。

これは
len(元の文字列) - 変換する文字数 で出るかと。
(1文字目の指標が0か1かで補正が必要になります。)
    • good
    • 0
この回答へのお礼

ありがとうございました。
参考にします。

お礼日時:2010/09/22 10:42

わかり難いのでサンプルを、ABCDEFGHIJK とします。



「初めの3文字を***に置き換える」
"***" & mid("ABCDEFGHIJK",4)
"***" & right("ABCDEFGHIJK",len("ABCDEFGHIJK")-3)
***DEFGHIJK

「前から4文字目から3つを***に置き換える」
left("ABCDEFGHIJK",3) &"***" & mid("ABCDEFGHIJK",7)
ABC***GHIJK

「最後の3文字を***に置き換える」
strreverse("***" & mid(strreverse("ABCDEFGHIJK"),4))
ABCDEFGH***
left("ABCDEFGHIJK",len("ABCDEFGHIJK")-3)& "***"
ABCDEFGH***
など
    • good
    • 0
この回答へのお礼

ありがとうございます。いろいろ応用できそうですね。

お礼日時:2010/09/24 09:11

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!