• ベストアンサー

二重引用符の置換処理に関して

エクセルで特定のセルに二重引用符が入力されていた場合、“を““のように置換させたいです。 しかし、下記ソースではエラーが発生してプログラムが動きません。 Columns("J:O").Replace What:="“", Replacement:="““", LookAt:=xlPart, _ SearchOrder:=xlByRows, MatchCase:=False どうすれば正常に置換することが出来るでしょうか? 宜しくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • sekkii
  • ベストアンサー率50% (13/26)
回答No.3

まだまだ勉強中な私ですが 色々調べてみましたので参考になれば幸いです。 まず、「“(二重引用符の大文字)」は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

udon0318
質問者

お礼

ご回答ありがとうございます。 おお…プログラムに直接二重引用符を書き込むとエラーになるので、変数を使ったのですね。 感動しました!! 業務で都度変換するのが手間だったのですが、これで解消できそうです。 ありがとうござました。

その他の回答 (3)

  • sekkii
  • ベストアンサー率50% (13/26)
回答No.4

訂正です; 「“(二重引用符の大文字)」→、「“(全角の二重引用符)」 失礼いたしました。。

  • bin-chan
  • ベストアンサー率33% (1403/4213)
回答No.2

> この置き換えはエラーが発生しませんでした。 は、「解決した」なのか「未解決」なのか? Replacement:="““",  を Replacement:= chr(34) & chr(34) に変更することも必要。 ※ chr(34) とは、文字["]のことです。

udon0318
質問者

補足

ご回答ありがとうございます。 説明不足で申し訳ございません。 Columns("J:O").Replace What:=Chr(34), Replacement:=Chr(34) & Chr(34), LookAt:=xlPart, _ SearchOrder:=xlByRows, MatchCase:=False このように記述したところエラーは発生せず、動作は確認が出来ましたが、置換処理はされませんでした。 どうすれば置換されるようになるでしょうか?

  • bin-chan
  • ベストアンサー率33% (1403/4213)
回答No.1

EXCELのバージョンを記入いただけると良いかも。 TESTしてないのですが。 What:="“", を What:= chr(34) と置き換えるとどうなります?

udon0318
質問者

補足

エクセルのバージョンは2003 SP3です。 >What:="“", を What:= chr(34) と置き換えるとどうなります? この置き換えはエラーが発生しませんでした。

関連するQ&A