- ベストアンサー
VBA 置換文字がみつからない時
お世話になります。 VBAの文字列の置換で教えてください。 replaceを使用したときに、置換対象の文字がなかったら、 「元の値をそのまま返す」という形なのですが、 置換対象がなかったときは、その旨わかるようにしたいのですが、 方法あるでしょうか? ※毎回replaceの前でfind関数であるかないか、調べないと いけないのでしょうか? 何卒宜しくお願いします。
- kgyqk433
- お礼率27% (220/805)
- Visual Basic
- 回答数2
- ありがとう数9
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
こんいちは。 > 置換対象がなかったときは、その旨わかるようにしたいのですが、 > 方法あるでしょうか? > ※毎回replaceの前でfind関数であるかないか、調べないと > いけないのでしょうか? 何れにしても、条件分岐は必要な訳ですから、 なるべく簡単に片付けるとして、Instr()関数を使うのが標準的です。 また、見つからないワードを置換するのも無駄ではあるので、 特に"置換対象がなかったとき"を判別する必要がない場合でも、 Replace()関数はなるべくInstr()関数とセットで使うようにすると 効率的です。 Sub Re8335191() Dim s0 As String Dim sTgt As String Dim sRtn As String s0 = "abc" sTgt = "a" If InStr(s0, sTgt) > 0 Then sRtn = Replace(s0, sTgt, UCase(sTgt)) MsgBox s0 & " → " & sRtn Else MsgBox "notfound : " & sTgt End If sTgt = "d" If InStr(s0, sTgt) > 0 Then sRtn = Replace(s0, sTgt, UCase(sTgt)) MsgBox s0 & " → " & sRtn Else MsgBox "notfound : " & sTgt End If End Sub
その他の回答 (1)
- mshr1962
- ベストアンサー率39% (7418/18948)
>※毎回replaceの前でfind関数であるかないか、調べないといけないのでしょうか? VBAでならFind関数でなく、StrComp関数ですね。 あと変数を使えば比較は前でも後でも出来ます。 問題は、どう知らせるかですね。 例 Dim MAE,ATO As String MAE = Cell(1,1) ATO = Replace(MAE, "A", "B") IF MAE = ATO Then MsgBox("対象文字がありません",VbOkOnly,"置換") Cell(1,1) = ATO
関連するQ&A
- VBA XML の置換方法
XMLの特定の文字列を書き変えたいのですが その文字の場所を特定して Replace (文字列、対象文字列、置換文字列、検索開始位置)で置換をすると 検索開始位置の前の文字が消えてしまいます 検索開始位置まえの文字はそのままにして、検索開始位置から後の文字列のみを置換する方法はないでしょうか
- 締切済み
- XML
- マクロで書式ごと置換
マクロで書式ごと置換 いつもお世話になります。 今回は標記の件についてお伺いしたく質問を投稿させていただきました。 現在、[D5:CN93]に配置している文字列データを記号に置換する作業をおこなっています。置換マクロに関してはreplaceを使用し、今のところ問題なく動いています。作業工程としては、上記の範囲にあるデータの一覧を作成し、どのデータをどのような記号に置き換えたいかの一覧を附します。 例) [A1](置換したい記号) [B1](置換したい文字列) ○ イチゴ ◆ バナナ [D5:CN93]置換対象の文字列例 イチゴ,バナナ マクロでは置換したい文字列、置換したい記号の値をreplace関数に与えて、上記の範囲にあるセル1つ1つに置換をかけていく、というものです。 今までは、文字列の書式は問題ではなかったのですが(置換後に一括変換)、上のほうから「イチゴを赤い○、バナナを黄色い◆のように、色をつけられないか」といわれました。 置換ウィザードを試してみたのですが、セル全体の文字列の色が変わってしまいうまくいきませんでした。 またreplaceで色情報も置換する方法もわかりません(無いのかもしれませんが)・・・ そこで「色情報を持たせたまま、文字列の一部を置換」する方法を教えてください。 これまでのデータを使用したいので、データは以下のように並んでいます。 [A1](置換したい記号) [B1](置換したい文字列) 赤色の○ イチゴ 黄色の◆ バナナ [D5:CN93]置換対象の文字列 イチゴ,バナナ
- ベストアンサー
- その他MS Office製品
- 文字の置換のVBA
こんばんは。 下記の文字列の置換をマクロ(VBA)で出来ますでしょうか。 今は関数(SUBSTITUTE)を繰り返して処理しているのですが、1度で出来る方法がありましたら教えて下さい。 100 ABC-23d=3,4 → 100ABC23D3.4 (1)スペース削除 (2)小文字を大文字へ (3)"-" "=" など数字とアルファベット以外を削除 (4)","→ "." (カンマをドットへ変換) 宜しくお願いします。
- ベストアンサー
- Visual Basic
- テーブルを使った置換
Access2002 Accessでクエリ実行時に特定の文字列を置換したいと思っています。 今までは置換する文字列が1つだけだったので、replace関数を使って直接置換する文字列を書いていたのですが、置換する文字列が今後増えてきそうなのでテーブルで管理したいと思っています。 置換用テーブル 元 ,置換後 000022,002078 000218,002403 000447,002703 クエリは単純な選択クエリなのですが、上記のようなテーブルを使ってクエリ実行時に文字を置換する方法がわかりません。 よろしくお願いします。
- ベストアンサー
- その他(データベース)
- EXCEL VBAにて、WORDへ置換
EXCEL VBAにて、WORD文書への文字列置換を行っております。 文字列の置換自体はできています。 が、 置換文字列に「改行」(vbCRやvbLF)をいれて置換すると、 word側での表示が□になってしまいます。 vbCrだけでもvbLFだけでも、vbCRLFでも□と表示されてしまいました。 chr(13) & chr(10)でも□になりました。 EXCEL VBA にて WORDへ文字列置換する場合に送る、改行コード (たぶん「^p」と予測をつけているのですが)を chr関数等での 表示方法を教えてください。 EXCEL2003 WORD2003 よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- VBAによるBinaryの置換後に先頭の"0"を残す方法
お世話になります。 題記の件、EXCELのVBAで特定の文字に一致した場合、2進数の値への文字列の置換を行っているのですが、置換後の2進数の数値が先頭の"0"が抜けた状態で置換されてしまい困っております。 どなたか対処方法が判る方いらっしゃいましたらアドバイス宜しくお願い申し上げます。
- ベストアンサー
- オフィス系ソフト
- VBA(Excel)でファイル内の文字を置換したいのですが
いつも拝見させていただいております。 初めて質問させていただきます。 現在VBAに興味を持ち始めて独学で学んでおり、 VBAでテキストファイルの文字を置換できないかと思っております。 事例としては以下のような例を考えています。 ・エクセルマクロ実行時に置換する/したい文字を入力 ・対象ファイルを指定 ・対象ファイル内(テキスト)にて文字を検索し、ヒットしたら置換 まだVBAを熟知していないので、出来るのかどうかもわかりませんが 可能であれば、教えて頂きたいと思います。宜しくお願いします
- 締切済み
- その他(プログラミング・開発)
- 1文字だけ置換したい
エクセル2002を使用しています。 「あ」一文字で存在する文字列を 「え」に置換しようと考えています。 しかし表中には「あ」だけでなく「かあか」「けけああ」 といったように「あ」が含まれる文字列が存在します。 これらは置換の対象外としたいのです。 あくまでも「あ」一文字を置換したいのですが…… どのように置換設定すればよいでしょう? ご意見ください。よろしくお願いします
- ベストアンサー
- オフィス系ソフト
- VBAでの文字列置換
表題のとおりですが、過去の質問では良い回答が 見当たりませんでした。 ・やりたいこと ”A”->”001” ”B”->”002” ”C”->”003” ”D”->”004” のようにテキストの置換候補があり(置換、置換対象のテキストは全角、半角さまざまです)、 それをExcelのワークシートに適用したいです。 やり方はどういうやり方でも良いです。ただ置換リストは追加、変更する必要があります。 VBAのreplaceを利用した置換マクロを作成すればよいのでしょうか。 当方、Word用の簡単なVBAマクロの作成経験はありますが、 Excelでは利用したことがありません。 ある程度具体的に御教授いただけると助かります。 よろしくお願いします。
- ベストアンサー
- Visual Basic