• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:変更履歴オンでのワイルドカードの置換について)

変更履歴オンでのワイルドカードの置換について

enunokokoroの回答

  • ベストアンサー
回答No.3

No.1の回答者です。 No.2で説明した私の手順やフォーラムモデレーターが行ったと思われる 手順と、質問者さんの手順の違いが判りました。 変更履歴を記録する手順の問題だと思います。 変更履歴を記録していない状態のテキストが書かれた文書が用意されて いて、変更履歴の記録を実行後に置換をしたためですね。この場合は、 置換を実行した段階で置換後の文字列を挿入し、検索する文字列を削除 する手順になっているためのようです。 ワイルドカードを使わなくても、挿入+削除の組み合わせで置換された 結果が表示されますよね。 私やフォーラムモデレーターがした手順は、変更履歴を記録した文書に テキストを入力し、挿入された履歴を記録してから置換を実行する手順 をしたために、挿入されたテキストへの置換の場合は単純な置換になる ためですね。質問者さんが示した手順の(2)と(3)が逆にしたときの動作 だと問題なく置換されるということです。 このような動作がある以上、[変更履歴の記録]をしたままの置換をする のは問題が起きやすくなるのだと思います。 変更履歴の記録を有効にしたままワイルドカードでの置換を使う場合、 ワイルドカード以外と置換したい文字列とでは、ワイルドカードの対象 文字列が先に置換され、その後ろにワイルドカードの前後にある文字列 を挿入する仕様みたいです。そのため、   変更履歴オン:をるあわせと にような組み合わせでの置換になるようです。 このようにワイルドカードの使い方の問題もありますが、置換する手順 として変更履歴の記録をしてからの実行には問題があるのです。 一応、ワイルドカードのみにしての置換なら、挿入+削除の組み合わせ で置換後の文字列が挿入された後ろに検索する文字列が削除する履歴に することは可能です。 【手順】(Wordは立ち上がっている前提です) (1)「あわせ」を事前にクリップボードにコピーしておきます。 (2)「を併せると」と入力(この時点では変更履歴はオフです) (3)変更履歴をオンにする (4)置換ウィンドウに以下を入力   検索する文字列:([!合])併せ([!も])    置換後の文字列:\1^c\2 (5)置換のオプションのワイルドカードをオンにする (6)変更履歴の表示は「すべての変更履歴」にしておく (7)置換の実行 これで挿入履歴の「をあわせる」+削除履歴の「を併せる」の組み合わせ での置換が実行されます。 これを研究して、VBAに組み込んでみてはいかが。

XML_beginner
質問者

お礼

ご連絡ありがとうございました. 当初よりこちらの説明に不足があったようで失礼いたしました. ご指摘のように,こちらの要件は「既存の文書に対して変更履歴をオンにした後のワイルドカードを用いた置換」になります. Wordの仕様でワイルドカードを用いた場合「検索する文字列」全体が一語として扱われないということが了解できました. クリップボードを使う方法でこちらの要件を満たす置換となりました. ご教示ありがとうございました. ワイルドカードの置換リストが1000語以上あるので速度が気になるところですが,VBAで正規表現と一緒に検証してみたいと思います. この度はありがとうございました.

関連するQ&A

  • WORDのワイルドカード置換について

    WORDで、ワイルドカード[0-9]で半角数字を検索し(検索は出来ました)、これを全角数字に置換したいとき、置換後の文字列はどういう風に入力したらよいでしょうか。全角数字の表示形式が分かりません。[0-9]では出来ませんでした。 文字種の変換で行うしかないのでしょうか?

  • wordのワイルドカードを使った置換について

    word2007でワイルドカードを使った置換をしたいと思いますが、うまくいきません。 数字の前の全角空白を半角空白にしたいと思います。、数字は全て半角です。 ○全角空白 △半角空白として 「第○1章」を「第△1章」と置換したいと思います。 置換で検索する文字列に 「○([0-9])」 置換後の文字列       「△\1」 と指定すると、置換後の結果は 「第1△章」 となります。 どうしてでしょうか。 どのように指定すればよいのかお教えください。 インストールしているアプリと関係があるということはあるでしょうか。そんなに複雑な使い方はしていませんが…… よろしくお願いいたします。

  • ワードのワイルドカードを使った置換について

    ワードでワイルドカードを使って置換をしたいのですが、うまくいきません。 数字の前の全角スペースを半角スペースに変えたいのです。 置換でワイルドカードを使用するにチェックを入れ、 検索する文字列は「全角スペース[0-9]」 置換後の文字列は「半角スペース\1」 として実行してみたのですが、 〔置換後の文字列〕に指定できない範囲の番号が含まれています というメッセージが出ます。 全角スペース[0-9]はきちんと認識しているようで、検索まではうまくいっているようですが、 置換後の指定の仕方が悪いようなのです。 お教えいただければと思います。 よろしくお願いいたします。

  • ワードでの変更履歴について

    変更の履歴についての質問です。 本文中の「A」という文字を「B」に履歴付きで変更したいとします。 しかし、一括で「すべて置換」にすると既に訂正されている(削除線が付いている)ところの「A」まで拾って「B」に変換してしまい、結果、その部分は反映後には「BB」と表示されてしまいます。 あとでまた「BB」を「B」に一括置換すればいいのでしょうが、それ以前に「既に消されている文字は置換の対象にならない」という方法はないでしょうか?

  • 置換時にワイルドカードを使って複写することは可能でしょうか?

    カテゴリーこちらでよろしいか不安ですが、よろしくお願い致します。 HTMLに置換えたい文字列が複数ありますが、置換方法がわかりません。 「カテゴリー/*">名前</A>」の *の部分の違う文字列が一つのHTML内にたくさんあり、 それを 「カテゴリー/*">*</A>」と置換したいのです。 カテゴリー/*">名前</A>  ↓ カテゴリー/*">*</A> ということです。 ご覧の通り、ワイルドカードを使って複写したいのですが・・・。 調べてみたのですが、Wordではワイルドカードで検索 したものを置換え後に反映させることはできないらしく、ただ「カテゴリー/*">*</A>」という文字列になってしまいます。 TextSSでは、検索文字列と置換後文字列の中のワイルドカードの数が違うと置換実行さえできません。 何か良い方法があるものでしょうか? どうぞよろしくお願い致します。

  • wordのワイルドカードを使用しての置換について

    word2007を使用しています。 置換を簡単に行うために、ワイルドカードを使用したいのですが、どのような指定をしたらよいでしょうか。お知恵をお貸しください。 やりたい内容は次のようなものです。 ・行頭から始まる「文字列1(文字列2)」のような形を見つけ、文字列1の前に★をつける。 (例)下記のような<文章1>を<文章2>のように置換する。 <文章1> あいうえお(かきくけこ) さしすせそ たちつてと あああ(いいい) ううううう えええ(おおお) <文章2> ★あいうえお(かきくけこ) さしすせそ たちつてと ★あああ(いいい) ううううう  えええ(おおお) よろしくお願いいたします。

  • MS Word の変更履歴で取り消し線が出ない

    Windows 2000 Professional上のOffice XPのWordですが、変更履歴の記録をONにして履歴を記録している状態での問題です。挿入文字列は下線付きの赤字になるのですが、削除文字列は色が赤に変わるだけで取り消し線が現れません。これでは使えません。解決方法を教えてください。なお、吹き出しでの履歴表示は正常に行われます。Wordの導入が不完全だったかも知れないと思いOffice XPのCD-ROMで修復作業をしてみましたが状況は変わりません。 よろしくお願いします。

  • 文字列の置換

    文字列の置換 たとえば, if(abcd) という文字列があったときに,これを while(abcd){ に置換するにはどうすればいいでしょうか(同じような置換をしたいところが文章中にいくつもあるとします).つまり,文字列の一部をそのままにして置換するということです.いまの場合だと if( → while( はできたとしても, ) → ){ は,文章中に“)”がたくさんある場合は難しいですよね.wordなら,ワイルドカードを使って if(*) とすれば,検索はできるのですが,そのまま置換すると while(*){ となってしまい,*がそのまま残ってしまいます.どうにかできないでしょうか?

  • 「置換」ダイアログで上書きをオフにするには

    「置換」ダイアログで「置換後の文字列」において文字を挿入して、一部変更するとき、上書きしないようにするにはどうするのですか。つまり、例えば「置換後の文字列」で「carryout」を「carry out」に変更するとき、yの後にカーソルを置いてスペースを入れると、oが消えてしまうのです。 word2000使用

  • ワードのワイルドカードについて

    ワードのワイルドカードを使用して置換を行おうとしているのですがうまくいきません。 ¥に置き換えたいのですが、”指定できない範囲の番号”とでてきてしまいます。 元の文字列 かきくけこあいうえお 検索する文字列 かきく(*)あいうえお 置き換え後の文字列 (?) あいうえお\1 (?) 期待する置換後結果 \ あいうえおけこ \  ←¥で囲みたいのです。 (?)の部分に \\としたり、\0としたりGoogleで検索してみたのですが、見つけられませんでした。 ご存知の方がいらっしゃいましたら教えていただけないでしょうか? よろしくお願いいたします。