
No.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
No.1
- 回答日時:
>※毎回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が見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
VBAでの Replace関数で、ワイルドカードは使えないのでしょうか?
Visual Basic(VBA)
-
EXCEL警告「置換対象のデータが見つかりません」を出ないようにしたい
Visual Basic(VBA)
-
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
-
4
VBAでループ内で使う変数名を可変にできないか。
Visual Basic(VBA)
-
5
「Columns(A:C")」の列文字を数字にして表記したい"
Excel(エクセル)
-
6
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
7
split関数で区切り文字がない場合
Visual Basic(VBA)
-
8
VBA 変数名に変数を使用したい。
Visual Basic(VBA)
-
9
特定の文字でReplaceメソッドが動作しません
Visual Basic(VBA)
-
10
VBAでEmpty値って何ですか?
Excel(エクセル)
-
11
VBAで文字を反映させると255文字の制限になってしまいます。
Visual Basic(VBA)
-
12
メッセージボックスで1025文字以上を扱う
Visual Basic(VBA)
-
13
worksheetFunctionクラスのVlookupプロパティを取得できません エラーへの対応
Visual Basic(VBA)
-
14
Access VBAから使用したExcelプロセスを閉じる方法について
Visual Basic(VBA)
-
15
Excelでセル参照したとき、書式も一緒に持ってくるには?
Windows Vista・XP
-
16
エクセルVBAで5行目からオートフィルタモードに設定したいたい
Excel(エクセル)
-
17
VBAで、なぜかSendkeyが効きません。
PowerPoint(パワーポイント)
-
18
配列の値を置換するにはどうすればいいでしょう?
Excel(エクセル)
-
19
【Excel VBA】マクロでExcel自体を終了させたい
Excel(エクセル)
-
20
Excel内での検索結果をシートに出力したい
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
フォントの色を保持したままセ...
-
各項目がダブルクォーテーショ...
-
Excel VBAでAA(BBB) → BBB.AA ...
-
VBA 置換文字がみつからない時
-
秀丸エディタで、「-」や「ー」...
-
正規表現でタグとその内容を検...
-
バッチファイルの処理が実際の...
-
複数のパワーポイントファイル...
-
文字コードの%E3%80%とは何です...
-
エクセルで数値を全角文字(カ...
-
CSVファイルの中で、「 , 」カ...
-
CString から LPCTSTRの型に変換
-
VBA 文字に半角が含まれて...
-
「一角」って何でしょうか
-
住宅にカナを入力する際に丁目...
-
WORDで改ページすると時々グレ...
-
【VBA】エクセルで値のみクリッ...
-
.NET3.5におけるキーボードの「...
-
全角/半角キーをSendkeys関数で...
-
データにカンマが入ったCSVデー...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
正規表現で、特定の文字列を含...
-
csvデータのダブルクォーテーシ...
-
各項目がダブルクォーテーショ...
-
VBA 置換文字がみつからない時
-
秀丸エディタで、「-」や「ー」...
-
C言語でテキストファイルの内容...
-
csvデータ ダブルクォーテ...
-
C#で空白行を削除する方法
-
Excel・ユーザーフォームの情報...
-
xmlファイル内の文字列置換
-
フォントの色を保持したままセ...
-
正規表現 特定の文字列を含む行...
-
○文字目に文字挿入
-
複数のパワーポイントファイル...
-
スペースで区切られた氏名から...
-
3回以上の改行を2回にする正...
-
Eclipse 改行後のタブ
-
EXCEL VBA でCTRL+Fのダイア...
-
word VBA 改ページの繰り返しに...
-
MKエディタやサクラエディタを...
おすすめ情報