8

"[フィールド].[フィールド]" の形式で発生する、さまざまな参照フィールドを含む Word 文書があります。つまり、2 つのフィールドの間にピリオドがあります。これをグローバルにスペースに置き換えたい。

Word には、フィールドを検索する特殊文字 ^d が用意されていますが、何らかの理由で、"^d.^d" というクエリでは何も見つかりません。ただし、「.^d」はそうです。ここで問題が発生します。フィールド コードを保持するには、置換テキストとして何を指定すればよいでしょうか。正規表現を使用する場合、\1 などの「Find What Expression」を使用できますが、正規表現 (「ワイルド カード」) モードでは ^d は許可されません。

マクロが書けると思います...

4

6 に答える 6

2

あなたが言うように、Word が使用する検索アルゴリズムは、フィールドで期待するように機能しないため、通常、フィールドを検索するときはマクロ ルートを使用することをお勧めします。

ただし、フィールドに含まれる内容が正確にわかっている場合は、おそらく機能する検索パターンを指定できます (ただし、ワイルドカード モードでは機能しません)。

たとえば、次のような図番号フィールドのペアを探したい場合は、

{ STYLEREF 1 \s }.{ SEQ Figure \* ARABIC \s 1 }

(これは通常、ドキュメント内のどこでも同じフィールドのセットになります)

本当に次のものだけを探す必要がある場合:

{ STYLEREF 1 \s }.<any field>

フィールド コードが表示されていることを確認して、

^d STYLEREF 1 \s ^21.^d

また

^19 STYLEREF 1 \s ^21.^19

より正確にする必要がある場合は、2 番目のフィールドもスペルアウトできます。

"^d" は、フィールドの末尾ではなく、フィールドの先頭を見つけるためにのみ機能します。

^w が少なくとも 1 つの空白文字を見つけたいと思うのは残念です。

^19^wSTYLEREF^w1^w\s^w^21.^19

おそらく、他の誰かがワイルドカードを使用せずにそれを回避する方法を知っていますか?

于 2012-05-24T13:13:17.410 に答える
2

トルザブロー、マクロを使ってこれを行うことをお勧めします。マクロを記録することから始めて、後でマクロ内の処理ステップを調整できます。

まず、[ホーム] > [段落] に移動し、[段落] 記号の表示/非表示を切り替えて、非表示の文字をオンにします。また、すべてを選択してフィールド コードをオンに切り替えます (右クリックして [フィールド コードの切り替え] を選択します。

開いているものに加えて、新しい空白の Word ドキュメントを開きます。これは後で使用します。マクロの記録を開始し、あなたが言ったように「^d」(フィールドコード)を使用してフィールドを見つけます。

フィールドが見つかったら、完全なフィールド参照ではなく、括弧内のフィールド テキストのみをコピーします。マクロがまだ記録されている間に、ALT + TAB で新しい空白のドキュメントに移動し、フィールド コードをプレーン テキストとして貼り付けます。

この時点で、フィールド コードに対して必要な検索と置換の処理を行います。処理されたフィールド コードを強調表示し、コピーし、ALT + TAB で元のドキュメントに戻り、{ } ブラケットの間に貼り付けます。

マクロの記録を停止します。さらにカスタム処理をマクロ VBA に追加します。

すべて選択して、フィールド コードを再度切り替えます。フィールド コードを更新します。

于 2012-05-23T17:12:49.343 に答える
1

免責事項:私はこのソリューションを作成したわけではありませんが、クリーンでエレガントなので、ここに含める必要があると思いました:

( Word のフィールド コードの検索と置換から適応):

  1. テキストを変換するフィールドの単一のインスタンスを作成または検索します
  2. フィールド コードの表示を切り替え ( AltF9)
  3. 使用するフィールドのコードをクリップボードにコピーします (強調表示とCtrlC) 。
  4. [置換] ダイアログ ボックス ( ) を開き、置換するテキストを [検索CtrlH対象] ボックスに挿入してから、 [置換] ボックスに入力します。^c

これにより、テキストがクリップボードの内容に置き換えられ、ステップ 3 でコピーしたフィールド コードに変換されます。また、書式情報 (フォント、色など) もコピーされ、非表示の場合のフィールドの表示方法を制御します。(注意: Windows 7 の Word 2003 のみでテストしました。)

于 2016-12-02T19:40:07.777 に答える
1

マクロは必要ありません。Alt+F9 を使用して、すべてのフィールド コードをオンに切り替えます。次に、変更したいものを検索して置換します。置換が完了したら、もう一度 Alt+F9 を使用してフィールド コードをオフに切り替えます。

于 2013-07-30T16:57:15.090 に答える