- ベストアンサー
エクセル2003で、動作するでしょうか?
現在、エクセル2007でマクロの作成練習をしていますが、 マクロの記録を使用して次のマクロを得ました。 > Columns("B:B").Select Selection.Replace What:="P", Replacement:="m" ,_ LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False,_ SearchFormat:=False, ReplaceFormat:=False エクセル2003を使用している友人の依頼で作成したものですが、 当方、エクセル2003の環境がないため、動作するのか エラーが生じるのか分かりません。 どなたか教えて下さい。 エラーが出るなら、どの部分を直せばいいのかも。よろしくお願いします
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
2003なら大丈夫です 2000ならエラーが出ます Sub test() Columns("B:B").Select Selection.Replace What:="P", Replacement:="m" End Sub これで良いのでは 不必要な引数は付ける必要が無い
その他の回答 (2)
- okormazd
- ベストアンサー率50% (1224/2412)
#1です。 MatchCase:=False でも動きます。"P"が全角ではなく、"P"だと思って大文字小文字を区別するのかと思ったので、Trueにしただけです。 Selection.Replace What:="P", Replacement:="m" ,_ ↑ ここのことです。 ここに半角空白がないと行が連続していると思わないのでエラーになります。#2さんのように余計な引数をつけなければ1行ですみます。マクロ記録でFalseになるようなものはたいてい余計です。
- okormazd
- ベストアンサー率50% (1224/2412)
全角"P"を"m"に置き換えたいというなら、下記で、 Sub test() Columns("B:B").Select Selection.Replace What:="P", Replacement:="m", _ LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=True, _ SearchFormat:=False, ReplaceFormat:=False End Sub これで、2003でも動く。 このやり取りでは半角空白は削除されてしまうので、 行の連続を示す_の前に半角空白があるのに注意。
お礼
早速ありがとうございます。 1 MatchCase:=False が 2 MatchCase:=True になっただけのようですが、 1では動かないのですか? このMatchCase:=Trueの意味するところが、恥ずかしいですがよくわからないもので。 それに >このやり取りでは半角空白は削除されてしまうので、 行の連続を示す_の前に半角空白があるのに注意。 この場所でも半角空白の意味があるのですか?
お礼
ありがとうございます。 そうなんですね! >不必要な引数は付ける必要が無い それが必要なのか、そうでないのかが、わからないのですね。 (浅学・・・恥) 2003では大丈夫を聞いて安心しました。