Excelマクロの置換に関する添削

このQ&Aのポイント
  • Excelのマクロを使用して、特定の範囲内の文字列を置換する方法について教えてください。具体的には、セルD9からD195までの範囲で、D1セルの文字列をD2セルの文字列に置換したいと思っています。また、D9からD195には参照式が入っており、その参照先も置換したいです。現在使用しているExcelのバージョンは2000 XPです。
  • Excelのマクロを使用して、特定の範囲内の文字列を置換する方法について教えてください。具体的には、セルD9からD195までの範囲で、D1セルの文字列をD2セルの文字列に置換したいと思っています。また、D9からD195には参照式が入っており、その参照先も置換したいです。
  • Excelのマクロを使用して特定の範囲内の文字列を置換しようとしていますが、思うように動作しません。マクロの記録を基に作成しましたが、どこが問題なのでしょうか?Excelのバージョンは2000 XPです。
回答を見る
  • ベストアンサー

Excel マクロ 添削お願いします

まず下記マクロをご参照下さい Sub 置換() Range("D9:D195").Select Selection.Replace What:="D1", Replacement:="D2", LookAt:=xlPart, _ SearchOrder:=xlByRows, MatchCase:=False Range("D9").Select End Sub D9からD195を選択して、文字列の置換をマクロで行うつもりで この時置換の対象は D1セルの文字列→D2セルの文字列 で 日々D2には違う文字列が入ります またD9からD195には参照式が入っており、その参照先を置換で切り替えたいのです マクロの記録を基に作ったのですが 思うように動いてくれませんでした 何がいけないのでしょうか? Excel2000 XP です よろしくお願いします

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

  • ベストアンサー
  • papayuka
  • ベストアンサー率45% (1388/3066)
回答No.1

D1やD2はセルのアドレスを意味しているのですね? 単純に "D1" では 「D1」と言う文字を探してしまいます。 セルD1 に入力した「文字」を対象とするなら   Range("D2").Text のように指定します。 ついでに Select と Selection は纏められるので、 Sub 置換()  Range("D9:D195").Replace What:=Range("D1").Text, _    Replacement:=Range("D2").Text, LookAt:=xlPart, _      SearchOrder:=xlByRows, MatchCase:=False End Sub のような感じで宜しいかと。

yukinojyou7
質問者

お礼

回答ありがとうございます 間違いを正していただいた上に、スッキリ纏めていただいて とてもありがたいです またよろしくお願いします

関連する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

  • エクセルで指定した文字に自動で置換することは可能ですか??

    A1セルに「バナナ」と表示されると下のマクロの記録で作った”置換するマクロ”の「りんご」の部分を「バナナ」に変更し、さらにこの置換マクロを自動実行することはできますか?? Sub Macro1()' Cells.Select Selection.Replace What:="名前(1)", Replacement:="りんご", LookAt:=xlPart, _ SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _ ReplaceFormat:=False Range("A1").Select 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を出し任意のものを手で入力するようにコメントを出す様には出来ないでしょうか?

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

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

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

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

  • 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 のようになるのですが、このプロシージャーを実行しても、うまく置換できません。 どのように記述したら、できるのか、教えていただけるとうれしいです。 よろしくお願いいたします。

  • VBAで実行時エラー '1004'の解決方法

    VBA初心者です。 文字列を置換しようと思い、マクロを記録したところ下記ソースになりました。 Sub Macro1() Columns("D:D").Select Selection.Replace What:="エリア:", Replacement:="", LookAt:=xlPart, _ SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _ ReplaceFormat:=False End Sub このマクロを単体で動かすと問題なく動作するのですが、他シートにおいてあるボタンに登録して一番最初に実行すると「実行時エラー '1004'」が出てしまいます。 ネットで色々調べましたが、解決方法が分かりません。 宜しくお願い致します。

  • エクセル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」・・・・・というふうに置換するにはどうすればいいでしょうか?

  • VBAセル参照のパスのブック名に汎用性を持たせたい

    皆様どうぞ宜しくお願いいたします。マクロ初心者です。 Excel 2003で作業をしております。 今回の仕事で必要なので、大変困っております。 BOOK1とBOOK2を開き、BOOK1のAシートのセル参照をBOOK2でもBOOK2でのセル参照として活かす為、BOOK1のAシートの=をすべて#に置換した後、BOOK2にAシートをコピーし、逆に#を=に戻しました。 ここから後なのですが、BOOK名が特定されてしまうため、汎用性が効きません。 どのようにすればよいのかお教えください。 どうぞ宜しくお願いいたします。 下記マクロコード Cells.Replace What:="=", Replacement:="#", LookAt:=xlPart, SearchOrder _ :=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False Sheets("店頭").Select Sheets("店頭").Copy Before:=Workbooks("ここの部分です.xls").Sheets(3) Cells.Replace What:="#", Replacement:="=", LookAt:=xlPart, SearchOrder _ :=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False End Sub

専門家に質問してみよう