• ベストアンサー

WORDマクロで検索文字列の手前に改行を入れたい

質問文通りです。 物:いちご物:みかん物:バナナ となってる文章を 物:いちご 物:みかん 物:バナナ と整形したいため、「物:」を検索し、その手前で改行を入れるVBAを作ろうと考えています。 が、どのように検索してもそんな物が出てこないので困っています。 何方か分かる方がいればよろしくお願いします。

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

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.3

追加のご質問がありましたが,それはまた全く別の問題です。 >イチロー君:いちごジロー君:みかんサブロー君バナナ >となってるものを、「*君」として検索し、 たとえば途中部分の「『いちごジロー』君:」のいちごとジローを,ご質問の状況では区切る方法が無いので,ご質問のような事はできません。

kamonegi21
質問者

お礼

ご回答ありがとうございます。 .Replacement.Text = "^p^p^p\1" とすることによって実現することが出来ましたのでご報告させて頂きます。 本当にありがとうございました。

その他の回答 (2)

  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.2

実際には「物:」を検索するというよりは,添付図の具合で「物:」を「^p物:」に全て置換します。 という操作をマクロの記録でマクロに録れば,次のようなマクロを採取して利用することもできます。 Sub Macro1() ' ' Macro1 Macro ' 記録日 2012/02/07 記録者 User '  Selection.Find.ClearFormatting  Selection.Find.Replacement.ClearFormatting  With Selection.Find   .Text = "物:"   .Replacement.Text = "^p物:"   .Forward = True   .Wrap = wdFindContinue   .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

kamonegi21
質問者

補足

ご回答ありがとうございます。 上のはあくまで例で、実際はワイルドカードで指定することになります。 検索文字列にワイルドカードは使えるのですが、置換後の文字列に検索結果から 文字を代入する手法はありますでしょうか? 上記の例ですと、物:に当たる部分がランダムな数字や名前だと思って頂ければ結構です。 イチロー君:いちごジロー君:みかんサブロー君バナナ となってるものを、「*君」として検索し、 出てきた結果をそれぞれの場所に代入しつつ整形を行いたいです。

  • bin-chan
  • ベストアンサー率33% (1403/4213)
回答No.1

マクロではありませんが、置換する方法(過去問) 「word置換で改行は置換できますか?」 http://okwave.jp/qa/q5736665.html #3さんの回答をみてください。

参考URL:
http://okwave.jp/qa/q5736665.html

関連するQ&A