- ベストアンサー
二重引用符の置換処理に関して
エクセルで特定のセルに二重引用符が入力されていた場合、“を““のように置換させたいです。 しかし、下記ソースではエラーが発生してプログラムが動きません。 Columns("J:O").Replace What:="“", Replacement:="““", LookAt:=xlPart, _ SearchOrder:=xlByRows, MatchCase:=False どうすれば正常に置換することが出来るでしょうか? 宜しくお願いします。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
まだまだ勉強中な私ですが 色々調べてみましたので参考になれば幸いです。 まず、「“(二重引用符の大文字)」はVBAでは使えないらしいので 一旦セルに「“(二重引用符の大文字)」を入力し 変数を使って変換してみました。 あらかじめA1セルに「“」、A2セルに「““」を入力しておいて、 Dim i As String '変換前の文字 Dim j As String '変換後の文字 i = Range("A1") j = Range("A2") Columns("J:O").Replace What:=i, Replacement:=j, LookAt:=xlPart, _ SearchOrder:=xlByRows, MatchCase:=False でどうでしょう? お粗末様です m(_ _)m
その他の回答 (3)
- sekkii
- ベストアンサー率50% (13/26)
訂正です; 「“(二重引用符の大文字)」→、「“(全角の二重引用符)」 失礼いたしました。。
- bin-chan
- ベストアンサー率33% (1403/4213)
> この置き換えはエラーが発生しませんでした。 は、「解決した」なのか「未解決」なのか? Replacement:="““", を Replacement:= chr(34) & chr(34) に変更することも必要。 ※ chr(34) とは、文字["]のことです。
補足
ご回答ありがとうございます。 説明不足で申し訳ございません。 Columns("J:O").Replace What:=Chr(34), Replacement:=Chr(34) & Chr(34), LookAt:=xlPart, _ SearchOrder:=xlByRows, MatchCase:=False このように記述したところエラーは発生せず、動作は確認が出来ましたが、置換処理はされませんでした。 どうすれば置換されるようになるでしょうか?
- bin-chan
- ベストアンサー率33% (1403/4213)
EXCELのバージョンを記入いただけると良いかも。 TESTしてないのですが。 What:="“", を What:= chr(34) と置き換えるとどうなります?
補足
エクセルのバージョンは2003 SP3です。 >What:="“", を What:= chr(34) と置き換えるとどうなります? この置き換えはエラーが発生しませんでした。
お礼
ご回答ありがとうございます。 おお…プログラムに直接二重引用符を書き込むとエラーになるので、変数を使ったのですね。 感動しました!! 業務で都度変換するのが手間だったのですが、これで解消できそうです。 ありがとうござました。