電子書籍の厳選無料作品が豊富!

現在、エクセル2007でマクロの作成練習をしていますが、
マクロの記録を使用して次のマクロを得ました。

> Columns("B:B").Select
Selection.Replace What:="P", Replacement:="m" ,_
LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False,_
SearchFormat:=False, ReplaceFormat:=False

エクセル2003を使用している友人の依頼で作成したものですが、
当方、エクセル2003の環境がないため、動作するのか
エラーが生じるのか分かりません。
どなたか教えて下さい。
エラーが出るなら、どの部分を直せばいいのかも。よろしくお願いします

A 回答 (3件)

2003なら大丈夫です


2000ならエラーが出ます

Sub test()
Columns("B:B").Select
Selection.Replace What:="P", Replacement:="m"
End Sub
これで良いのでは
不必要な引数は付ける必要が無い
    • good
    • 0
この回答へのお礼

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

お礼日時:2009/05/23 16:27

#1です。


MatchCase:=False
でも動きます。"P"が全角ではなく、"P"だと思って大文字小文字を区別するのかと思ったので、Trueにしただけです。

Selection.Replace What:="P", Replacement:="m" ,_
                                ↑
                                ここのことです。
ここに半角空白がないと行が連続していると思わないのでエラーになります。#2さんのように余計な引数をつけなければ1行ですみます。マクロ記録でFalseになるようなものはたいてい余計です。
    • good
    • 0

全角"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でも動く。

このやり取りでは半角空白は削除されてしまうので、
行の連続を示す_の前に半角空白があるのに注意。
    • good
    • 0
この回答へのお礼

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

お礼日時:2009/05/22 23:06

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!