
Excel2000のVBAで、"-"(マイナス) を "~"(チルダ)に置き換えたいのですが、動作しません。
Selection.Replace What:="-", Replacement:="~"
というコードです。
以下のコードは、うまく動作しますが
Selection.Replace What:="A", Replacement:="B"
Selection.Replace What:="A", Replacement:="~"
以下のコードは、動作しません
Selection.Replace What:="-", Replacement:="B"
Selection.Replace What:="-", Replacement:="~"
どうやら、What:="-" が原因のようなのですが、理由も対処方法もわかりません。
どなたか、ご教授ください。
A 回答 (4件)
- 最新から表示
- 回答順に表示
No.4
- 回答日時:
NO3です。
>「完全に同一なセルだけを検索する」はオフになっていますし、"-" だけがダメというのも...
⇒ハイフンは単独で使用する事はないと思い、完全一致型になっていればこのような
振る舞いになると思い回答した次第です。
因みに「What:="-" が原因」とは想定し難く、且つ、マクロ記録では正常との事ですので
別モジュールに転用した際のカスタマイズ部分が影響していると思われます。
この辺りを再確認しては如何でしょうか。
No.3
- 回答日時:
Replaceメソッドでは前回設定の条件を引き継ぐことになっています。
(Findでも同じ)仮にこのメソッドを動かす以前に置換操作等で「完全一致型」を設定したとすると
この条件が継承され期待通りの動きになりません。
因みに現在の編集→置換で設定状態を確認してみて「完全一致型」が選択されている
ようならこの原因が考えられますので、構文の条件は省略せずに指定した方が良いと
思いますが如何でしょうか。
No.1
- 回答日時:
A1に、例えば A-sdf-Ad を入れて
Sub test01()
Cells(2, "A") = Cells(1, "A")
Cells(3, "A") = Cells(1, "A")
Cells(4, "A") = Cells(1, "A")
Cells(5, "A") = Cells(1, "A")
Cells(2, "A").Replace "A", "B"
Cells(3, "A").Replace "A", "~"
Cells(4, "A").Replace "A", "-"
Cells(5, "A").Replace "-", "X"
End Sub
を実行すると意図どおりになるようですが。
エクセルVBAのReplaceメソッドの例ですが。
ーーー
関数の場合
Sub test02()
Cells(4, "A") = Replace(Cells(1, "A"), "A", "-")
Cells(5, "A") = Replace(Cells(1, "A"), "-", "X")
End Sub
もうまく行くゆくようですが。
この回答への補足
Replaceメソッドも確認いただいていたようで、申し訳ありませんでした。
単純に記録したマクロを再生(?)するだけなら動作するのですが、記録したコードを別のモジュールにコピペすると、動作しないみたいです。
回答ありがとうございます。
imogasi さんに確認いただいたのは、Replace関数です。
私の質問は、Replaceメソッドなので、違います。
ですが、Replaceメソッドを For Each ~ Next を使って Replace関数に置き換えてみたところ、うまく動作しました。
おかげさまで問題解決しましたが、Replaceメソッドで動作しない原因は不明です。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) Excel vba で1と10を正確に判断させる方法を教えてください。 TからU列に1と入力があれば 3 2022/12/26 16:54
- Visual Basic(VBA) エクセルのマクロについて教えてください。 7 2023/07/04 09:18
- Visual Basic(VBA) エクセルのマクロについて教えてください。 4 2023/07/03 09:11
- Access(アクセス) Accessのテキストボックスの入力文字制限 1 2023/01/18 20:43
- Visual Basic(VBA) Excel VBA 教えてください。 VBA初心者です。 詳しい方がいましたら教えてください。 下記 3 2023/04/25 11:22
- Visual Basic(VBA) VBAでfunctionを利用しようとしたときに「引数は省略できません」というエラーが出ます 1 2022/10/15 16:30
- Visual Basic(VBA) 空白を全て削除したい 2 2023/05/13 21:36
- Access(アクセス) Accessのクエリで、replace関数を使い、データの中にある”をブランクに置き換えたいのですが 6 2022/06/15 14:54
- オープンソース Python openpyxlを使用したセル番地の使用について 1 2023/08/03 22:05
- Excel(エクセル) VBA オリジナル関数で選択セルの合計を作成したい 3 2023/03/19 19:45
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルVBAで、条件に一致する...
-
eclipse-Tomcatでのデバッグに...
-
FEM解析の読み方は?
-
final修飾子を使っているのに、...
-
Application.Wait の参照設定
-
Labelコントロールに数字を代入...
-
execute()
-
エクセルVBAで、ユーザーフォー...
-
配列のメソッド
-
『増加する』メソッド名は?
-
エクセルVBAにおけるON TIMEメ...
-
mainメソッドのthrows節で設定...
-
C#.net Define文
-
drawStringで文字間隔の調整
-
0歳児の指しゃぶりに関して
-
ランダム画像のjsをカスタマイ...
-
CALLされていないメソッドを見...
-
処理内容がほぼ同じメソッドの...
-
worksheets & rows メソッドは...
-
boolean型のフィールドとゲッタ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルVBAで、条件に一致する...
-
【sendkeysメソッドが動かずに...
-
mainメソッドのthrows節で設定...
-
VBA コピーが出来ません…!
-
DataGridViewでセルクリックイ...
-
コマンドプロンプト実行後に画...
-
0歳児の指しゃぶりに関して
-
エクセルVBAにおけるON TIMEメ...
-
javascriptからjavaを呼び出したい
-
配列のメソッド
-
CALLされていないメソッドを見...
-
final修飾子を使っているのに、...
-
Labelコントロールに数字を代入...
-
VBPをダブルクリックするとたま...
-
ウィンドウを最前面にできません
-
処理内容がほぼ同じメソッドの...
-
Application.Wait の参照設定
-
C#.net Define文
-
C# 演算 最大値 最小値 表現の仕方
-
Excel VBA でExcelを終了したい...
おすすめ情報