• ベストアンサー

エクセル2003で、動作するでしょうか?

現在、エクセル2007でマクロの作成練習をしていますが、 マクロの記録を使用して次のマクロを得ました。 > Columns("B:B").Select Selection.Replace What:="P", Replacement:="m" ,_ LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False,_ SearchFormat:=False, ReplaceFormat:=False エクセル2003を使用している友人の依頼で作成したものですが、 当方、エクセル2003の環境がないため、動作するのか エラーが生じるのか分かりません。 どなたか教えて下さい。 エラーが出るなら、どの部分を直せばいいのかも。よろしくお願いします

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

  • ベストアンサー
  • hige_082
  • ベストアンサー率50% (379/747)
回答No.2

2003なら大丈夫です 2000ならエラーが出ます Sub test() Columns("B:B").Select Selection.Replace What:="P", Replacement:="m" End Sub これで良いのでは 不必要な引数は付ける必要が無い

banzaiA
質問者

お礼

ありがとうございます。 そうなんですね! >不必要な引数は付ける必要が無い それが必要なのか、そうでないのかが、わからないのですね。 (浅学・・・恥) 2003では大丈夫を聞いて安心しました。

その他の回答 (2)

  • okormazd
  • ベストアンサー率50% (1224/2412)
回答No.3

#1です。 MatchCase:=False でも動きます。"P"が全角ではなく、"P"だと思って大文字小文字を区別するのかと思ったので、Trueにしただけです。 Selection.Replace What:="P", Replacement:="m" ,_                                 ↑                                 ここのことです。 ここに半角空白がないと行が連続していると思わないのでエラーになります。#2さんのように余計な引数をつけなければ1行ですみます。マクロ記録でFalseになるようなものはたいてい余計です。

  • okormazd
  • ベストアンサー率50% (1224/2412)
回答No.1

全角"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でも動く。 このやり取りでは半角空白は削除されてしまうので、 行の連続を示す_の前に半角空白があるのに注意。

banzaiA
質問者

お礼

早速ありがとうございます。 1 MatchCase:=False  が 2 MatchCase:=True  になっただけのようですが、 1では動かないのですか? このMatchCase:=Trueの意味するところが、恥ずかしいですがよくわからないもので。 それに >このやり取りでは半角空白は削除されてしまうので、 行の連続を示す_の前に半角空白があるのに注意。 この場所でも半角空白の意味があるのですか?

関連するQ&A

専門家に質問してみよう