色彩を教える人になるための講座「色彩講師養成講座」の魅力とは>>

こんにちは いつもお世話になっています
ワード2010で、選択範囲だけの部分の改行を削除するマクロを記録マクロで作ったのですが、選択部以外もすべて改行してしまいます。どこがいけないのでしょうか。あるいは、操作の仕方でしょうか。以前は使えていたと思うのですが、仕様が変わったのでしょうか。
任意の範囲を選択しておいて、記録を開始しました。
よろしくお願いします。

Sub Macro1()
'
' Macro1 Macro
'
'
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = "^p"
.Replacement.Text = ""
.Forward = True
.Wrap = wdFindAsk
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchByte = False
.MatchAllWordForms = False
.MatchSoundsLike = False
.MatchWildcards = False
.MatchFuzzy = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
End Sub


ネット上で見つけた以下のマクロでもすべての改行が削除されます。
http://oshiete.goo.ne.jp/qa/960285.html

Sub Macro14()
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = "^p"
.Replacement.Text = " "
End With
Selection.Find.Execute Replace:=wdReplaceAll

End Sub

gooドクター

A 回答 (1件)

Word2010のことはわかりませんが。



記録マクロを実行したときに、選択範囲以外の部分に対して
検索を続けるかどうかの確認のメッセージがありませんか?
http://ameblo.jp/gidgeerock/archive1-201104.html

 .Wrap = wdFindAsk

こちら↑の部分がメッセージを出す部分なので、検索範囲以外
にはメッセージで確認を問うと思います。

 .Wrap = wdFindStop

こちら↑に書き換えたときの動作はどうなりますか?
これで選択範囲の置換が終わると、それ以降の置換がされず
終了すると思いますので。
http://www.ujasiri.com/prglib/vba_word/vba_word_ …


ちなみに、ネットで見つけたという過去ログのマクロでは、
省略してあるだけで記録マクロと基本的に同じです。
With Selection.Find
これを使う場合は、記録マクロで記録された部分を省略で
記載するのは好ましくありません。
エラーになる可能性があるので、[置換]ダイアログの項目
に対応するものを、基本的に書いておきましょう。
    • good
    • 0
この回答へのお礼

enunokokoro 様 ありがとうございました。お蔭様で解決しました。
AskをStopにしたら成功しました。
参照サイトのご紹介まで頂き助かりました。
大切に使わせていただきます。
簡単で恐縮ですが、お礼申し上げます。

お礼日時:2012/05/24 12:20

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

このQ&Aを見た人はこんなQ&Aも見ています

gooドクター

人気Q&Aランキング