- ベストアンサー
エクセルのReplaceで使える「?」(ハテナ)は
- エクセルのReplaceで使える「?」(ハテナ)は、ワイルドカードとして複数の文字に対応することができます。
- また、「?」は文字列としても機能し、最後に「?」が付く場合はその部分が置換されます。
- エクセルのReplaceを使用する際には、文字としての「?」とワイルドカードとしての「?」を区別する必要があります。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
VBAの話だよね。 またエクセルのはなしだよね。 基本は http://excelwork.info/excel/cellreplace/ などを読めばわかる。 Replaceはメソッドで、「1つのセルの値」についての機能。 セル単位に見つかったかどうか(Whatの方の指定)を調べるときに使える。 ワイルドカードにある文字そのものを1文字の文字として見てほしいときは (エスケープするという。SQLの処理系では¥を付けて区別するのが多いが) エクセルVBAでは http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1240159837 のような記事がある。 http://stabucky.com/wp/archives/1841 チルダを使うようだ。 Findの例で、やってみた。 取り急ぎ、で第2該当分以降を探索するコードは省略している。 例データ Sheet1にA1:A6 aa asd a?tr af*dfg dd?kio ad*fkl ーー Sub test01() Worksheets("Sheet1").Select Dim x As Object Set x = Cells.Find("~?k") MsgBox x.Address End Sub Find("~?k")の、チルダの直後のところを、*や?など、直前や後続文字など いろいろ変えてやってみてください。 Replaceでもうまく行くかやってみてください。 質問していることが解決すればよいが。
その他の回答 (2)
- ushi2015
- ベストアンサー率51% (241/468)
こんにちは ?自体を置換するには、 Range("a1").Value = "a??a" '文字1文字のワイルドカードなので変化無し Range("a1").Replace What:="a?a", Replacement:="abab" '?が置換される Range("a1").Replace What:="~?", Replacement:="b"
お礼
回答ありがとうございました。
- kkkkkm
- ベストアンサー率66% (1742/2617)
検索値に対しては、?を文字数分で指定文字数の文字列に、*だと文字数指定なしの文字列と見なしてに対応してくれますが、変換後の文字列指定に?や*を使ってもワイルドカードのような対応はしてくれません。
お礼
回答ありがとうございました。
お礼
回答ありがとうございました。