• ベストアンサー
  • すぐに回答を!

WORDで書式などを利用して置換するマクロをつくりたいです

 WORD2000で書式などをキーにして置換するマクロをつくりたいです。  例)太字の文字列すべてを『♂』『♀』で囲む  これをVBAで表記するにはどう書いたらよいでしょうか?

共感・応援の気持ちを伝えよう!

  • 回答数2
  • 閲覧数1076
  • ありがとう数1

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

  • ベストアンサー
  • 回答No.1
  • TTak
  • ベストアンサー率52% (206/389)

以下のマクロでいかがでしょう?カーソル以降の太字は『♂』『♀』で囲まれます。 Sub BOLDWORD_SANDWICH() With Selection  With .Find   .Font.Bold = True   .Replacement.Text = "♂^&♀"   .Forward = True   .Wrap = wdFindContinue   .Execute  End With  If .Find.Forward = True Then   .Collapse Direction:=wdCollapseStart  Else   .Collapse Direction:=wdCollapseEnd  End If  .Find.Execute Replace:=wdReplaceAll End With End Sub Win2000+Word2000で動作確認

共感・感謝の気持ちを伝えよう!

質問者からの補足

ありがとうございました。 希望通り『♂』『♀』がつきました。 ちなみに文字に網かけがしてある部分をキーにして置換(同じく記号ではさむ)はできますか? もしご存知であれば教えてください。

その他の回答 (1)

  • 回答No.2
  • TTak
  • ベストアンサー率52% (206/389)

> ちなみに文字に網かけがしてある部分をキーにして置換 蛍光ペンは検索機能が使えるのですが、網掛け部分は使えないようで。よって、Shadingを一個ずつチェックするしかなさそうです。これだと、文書の文字数が増えるほど処理が遅くなります。参考までに。 Sub BOLDWORD_SANDWICH2() Dim myTexture Dim i As Integer For i = 1 To ActiveDocument.Characters.Count myTexture = Selection.Font.Shading.Texture Selection.MoveRight If myTexture <> Selection.Font.Shading.Texture Then  If Selection.Font.Shading.Texture <> 0 Then   Selection.TypeText Text:="♂"  Else   Selection.TypeText Text:="♀"  End If End If Next i End Sub

共感・感謝の気持ちを伝えよう!

質問者からのお礼

ありがとうございました。 私のしたいことがそのまま出来ました!

関連するQ&A

  • Word2003 置換 書式が設定されている文字列すべてを書式無し(標準スタイル)に置換するのは?

    練習で、書式の条件をつけた文字列に置換えた単語があったとします。 それらをまた書式をつけていない文字列に置き換えを使って戻すのは どうすればいいのでしょうか? (例)  太陽という文字列に対して、  赤い色と太字を条件にし置き換えたとする。  ↓  赤い色と太字を解除して本来の文字列にもどしたい。  この条件は、どうればいいいのか???  置換をつかって、できそうなんですが、  どうすればいいのでしょう。。  教えてくださいませ。。。。。。。。。。。。

  • マクロで書式ごと置換

    マクロで書式ごと置換 いつもお世話になります。 今回は標記の件についてお伺いしたく質問を投稿させていただきました。 現在、[D5:CN93]に配置している文字列データを記号に置換する作業をおこなっています。置換マクロに関してはreplaceを使用し、今のところ問題なく動いています。作業工程としては、上記の範囲にあるデータの一覧を作成し、どのデータをどのような記号に置き換えたいかの一覧を附します。 例)  [A1](置換したい記号)   [B1](置換したい文字列)      ○          イチゴ      ◆          バナナ    [D5:CN93]置換対象の文字列例    イチゴ,バナナ マクロでは置換したい文字列、置換したい記号の値をreplace関数に与えて、上記の範囲にあるセル1つ1つに置換をかけていく、というものです。 今までは、文字列の書式は問題ではなかったのですが(置換後に一括変換)、上のほうから「イチゴを赤い○、バナナを黄色い◆のように、色をつけられないか」といわれました。 置換ウィザードを試してみたのですが、セル全体の文字列の色が変わってしまいうまくいきませんでした。 またreplaceで色情報も置換する方法もわかりません(無いのかもしれませんが)・・・ そこで「色情報を持たせたまま、文字列の一部を置換」する方法を教えてください。 これまでのデータを使用したいので、データは以下のように並んでいます。  [A1](置換したい記号)   [B1](置換したい文字列)     赤色の○         イチゴ     黄色の◆         バナナ    [D5:CN93]置換対象の文字列   イチゴ,バナナ

  • ワードの置換機能で、書式を置換しましたら、一点わからないことがあります

    ワードの置換機能で、書式を置換しましたら、一点わからないことがあります。 文書全体の、「太字」を全て「斜体」に変えようとして、 置換を使って、検索する文字列の書式を「太字」、置換後の文字列の書式は「斜体」を 設定したところまでは良いのですが、 結果が、全て太字の文字が斜体に変わっているのです。 置換を使って、文字色を変えると、前の色が残ることなく変わるのですが、 太字の場合は、なぜ残ってしまうのでしょうか。 他のやり方でかえることもできるのはわかりますが、 置換機能を使って変えたいので、 その理由がわかる方、 どうか教えてください。

  • Word2003の検索・置換について

    検索・置換のダイアログボックスを使い、 書式がフォントやスタイル(太字・斜体) が設定されている文字を、 太字に置換えようと思い、 検索する文字列に設定し、 置換後の文字列をクリックし、置換ようとしたところ、 なぜか、検索する文字列の書式に設定がなってしまいました 何回か試していると、ちゃんと設定がなるときもあるのですが、 ならないときもあります。 どうすれば確実に設定を一回でできるでしょうか?

  • Wordで文字を検索してすべて書式変更

    Word2000で、特定の文字列の書式をすべて太字にする・フォントを変える ということはできますか? 「」で挟まれたすべての文字の書式を置換するって感じの使い方です。

  • Word2003で書式の置換がをすると斜体が残るのは?

    よろしくお願いします。 WINDOWS XP上で Word2003を使っています。 編集 置換 コマンドで 文書中から斜体・ピンクの文字を探して 太字・オレンジに置換しようとすると ピンク色はオレンジに変わるのですが、斜体はそのまま残り、太字に書式を置換することができません。 斜体なし のスタイルを選んで、もう一度、太字に置換するのは 面倒なので 何かいい方法がありましたら ぜひ教えてください。

  • word2003の置換について

    以前、複数のword2003の複数のファイルに共通してある文字列を一括して置換する方法を質問させていただきましたが、ファイルの数が100近くあり、回答を下さった方には申し訳ありませんでしたが、うまくいきませんでした。 そこで、別の方法を考えましたが、知識がなく方法がわかりません。どなたかご教授ください。 word2003のファイルを開いた際に、自動的に特定の文字列を置換するマクロは組めないでしょうか? もしくは、上書き保存やファイルを閉じる際に自動的に文字列を置換するマクロはできないでしょうか? 欲を言えば、どのファイルを開いても、設定等を必要とせずに自動実行したいです。 特定の文字列というのは、すべてのファイルに共通している言葉1種類のみです。 例えば、「親」を「子」に置換できればいいのです。 よろしくお願いいたします。

  • Word マクロに関する質問です

    Wordで大量の文字を青い太字にしたいのですが、マクロの組み方が分かりません。 置換したい文字(例):計算力 実力講座 カレンダー ↑この文字を、青い太字にしたいです。 よろしくお願いします。 WinXP Word2007を使っています。

  • マクロを使い、特定の文字を青く太字で置換したい

    Wordで大量の文字を青い太字にしたいのですが、マクロの組み方が分かりません。 置換したい文字(例):計算力 実力講座 カレンダー ↑この文字を、青い太字にしたいです。 (置換したい文字が、10,000程度あります) WinXP Word2007を使っています 非常に困っております。 何卒、よろしくお願いします。

  • EXCEL VBAにて、WORDへ置換

    EXCEL VBAにて、WORD文書への文字列置換を行っております。 文字列の置換自体はできています。 が、 置換文字列に「改行」(vbCRやvbLF)をいれて置換すると、 word側での表示が□になってしまいます。 vbCrだけでもvbLFだけでも、vbCRLFでも□と表示されてしまいました。 chr(13) & chr(10)でも□になりました。 EXCEL VBA にて WORDへ文字列置換する場合に送る、改行コード (たぶん「^p」と予測をつけているのですが)を chr関数等での 表示方法を教えてください。 EXCEL2003 WORD2003 よろしくお願いします。