• ベストアンサー

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

エクセルで特定のセルに二重引用符が入力されていた場合、“を““のように置換させたいです。 しかし、下記ソースではエラーが発生してプログラムが動きません。 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

  • Excelマクロ 置換について教えてください。

    A列の,10を,15に置換したいので下記マクロを記録しました。 ほかに,10を,16などにしたい場合もあるため、 入力画面を表示して初期値は,10から,15ですが、ほかを入力した場合は他の値で置換するマクロを教えてください。 Sub Macro1() Columns("A:A").Select Selection.Replace What:=",10", Replacement:=",15", LookAt:=xlPart, _ SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _ ReplaceFormat:=False End Sub

  • エクセルで置換のマクロの際

    Selection.Replace What:="あ", Replacement:="", LookAt:=xlPart, _ SearchOrder:=xlByRows, MatchCase:=False エクセルのマクロで置換をする際に 自動記録で書くとこうなります。 「あ」を「(空白)」におきかえる内容ですが 置き換え候補がたくさんある場合は 上記の記述をくりかえし記述するしかないのでしょうか? 例 「あ」を「」に 「い」「」に   というような具合です

  • エクセル2003で特殊文字の置換方法

    エクセル2003、XPを使用しています。 エクセルのマクロで置換をしているのですが、 置換対象がCHAR(160)です。 セル上に上のを打ち込むと、実際は違いますが半角スペースに見えます。 特殊文字であっているのでしょうか。 それで、この文字を消したいと思い、以下の通りマクロで記述しているのですが、成功しません おわかりになる方いらしたらよろしくお願いします。 Cells.Replace What:=Chr(160), Replacement:="", LookAt:=xlPart, SearchOrder:= _ xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False

  • 置換のVBA

    エクセルのあるシート内の「abc」という文字列を「abc20」に置換するには以下で可能ですが、 Sub chikan() Cells.Replace What:="abc", Replacement:="abc" & "20", _ LookAt:=xlPart,SearchOrder:=xlByRows, MatchCase:=False End Sub 「abc」という文字列を連番で「abc20」「abc21」「abc22」・・・・・というふうに置換するにはどうすればいいでしょうか?

  • excelのvbaを使って日付を置換したいのです

    こんにちは。いつも質問ばかりですみません。 今、excell の VBAの勉強をしているのですが、たとえば、B列に2004/5/3 とか、2004/5/5とか、5月の日付ばかりはいっていたとして、その2004/5の部分を2004/6に置換したいとします。 それを、マクロでやらせてみて、VBAを見ると Sub Macro9() Cells.Replace What:="2004/5", Replacement:="2004/6", LookAt:=xlPart, _ SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _ ReplaceFormat:=False End Sub のようになるのですが、このプロシージャーを実行しても、うまく置換できません。 どのように記述したら、できるのか、教えていただけるとうれしいです。 よろしくお願いいたします。

  • エクセルのマクロ 大量の置換の記述を簡略化

    Cells.Select Selection.Replace What:="東京", Replacement:="東京都", LookAt:=xlPart, _ SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _ ReplaceFormat:=False このような置換のマクロが何十個とあって 置換前の語句と置換後の語句ごとに すべて記述していますが 「置換の記述そのものはまったく同じなので  その中に語句を順番に入れ込んでいく」 という風な記述はできるものでしょうか? もし方法があるならば御教授願いたいです 宜しくお願い致します

  • エクセルでマクロを使用しての置換

    マクロ初心者です。 データを変換するシステムをマクロで作成していますが、 自分のPCではちゃんと実行できるのに、お客さんのPCで実行するとエラーが出てしまいます。 エラーが出る部分は、どうも置換するところらしく、 Selection.Replace What:="<BR>", Replacement:="", LookAt:=xlPart, _ SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _ ReplaceFormat:=False ここが黄色く表示されるそうです。 どこを直せばよいですか?

  • エクセルの置換の検索場所に「ブック」を指定し置換

    エクセルの置換の検索場所に「ブック」を指定し置換するには? 過去ログを見たのですが http://okwave.jp/qa/q5268557.html シートをループするしかないのでしょうか? Sub Macro2() Cells.Replace What:="aaaa", Replacement:="zzz", LookAt:=xlPart, _ SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _ ReplaceFormat:=False End Sub のように、シート全体にするかブック全体にするかのプロパティは存在しないのでしょうか?

  • 置換のマクロ

    先ほど質問させていただいている件なのですが 余りにも自分が記入した内容が分かりにくいので質問形式を変更します。 「置換」をするのに ボタンで簡単にできるよう以下のマクロを記録しました。 Sub Macro1() ActiveWindow.SmallScroll Down:=-15 Range("E7:AC7").Select Selection.Replace What:="2009年度契約", Replacement:="8.24-8.29", LookAt:=xlPart, _ SearchOrder:=xlByRows, MatchCase:=False Range("E14:AC14").Select Selection.Replace What:="2009年度契約", Replacement:="8.24-8.29", LookAt:=xlPart, _ このマクロの「8.24-8.29」の部分を「シート名取得」にしたいのです。出来ないでしょうか? もしくは BOXを出し任意のものを手で入力するようにコメントを出す様には出来ないでしょうか?

  • 置換(検索場所に「ブック」を指定した)

    vbaでわからないので教えてください。 手作業なら可能ですが 何回も行なうのでマクロを組みたいのですが Sub 置換() Cells.Replace What:="スッキリ", Replacement:="すっきり", LookAt:=xlPart, _ SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _ ReplaceFormat:=False End Sub のコードのどこに「検索場所」が書かれているのでしょか? 前回、シート単位で置換した後、上記のコードを実行すると、 またシート単位での置換になってしまいます。 検索場所を「ブック」にするコードを教えてください!ご教授よろしくお願い致します。

専門家に質問してみよう