Wordファイルで、ファイル内にある「フィールド」を一括で削除する方法の備忘録。
背景は、ステップ記録ツールのmhtファイルをWordで編集するポイント で示したように、「Previous Next」などのハイパーリンクが余分で削除したかったため。
「Previous Next」は、検索して一括で空白に置換する時は少し注意が必要。わかりづらいがフィールドの文字で、”Previous”と”Next”は別々に検索して置換が必要。ただし、この置換ではWordの表示上は空白で削除できているが、フィールドコードは残っている見込。
目的上は上記でも問題なさそうだが、フィールド文字を完全に消したい場合は、
フィールドコードの表示(表示されていない場合、Alt キーを押しながら F9 キーを押す)をして、”^d”の特殊文字を使って検索、置換する。
参考: フィールド コード: Hyperlink フィールド - Microsoft サポート
フィールドコードが表示されている状態とは、「Previous Next」と表示されている箇所が、次のように”{ }”(波括弧)で表示されている状態。
例: {HYPERLINK \l "Step1" \o "前へ"}{HYPERLINK \l "Step3" \o "次へ"}
具体的なイメージは、下記のとおり①から③の順にする。
なお、特殊文字の”^d”で検索するときは、必ず、フィールドコードの表示(表示されていない場合、Alt キーを押しながら F9 キーを押す)が必要。
WordのVBAでフィールドを一括削除する方法
なお、この上記検索をVBAで実施するサンプルは次のとおり。
ファイル内にある全てのフィールドを一括削除(空白に置換)する。
フィールドコードの表示と削除
Sub フィールドコードの表示と削除() ActiveDocument.ActiveWindow.View.ShowFieldCodes = True Selection.Find.ClearFormatting Selection.Find.Replacement.ClearFormatting With Selection.Find .Text = "^d" .Replacement.Text = "" .Wrap = wdFindContinue .MatchWildcards = False .MatchFuzzy = False End With Selection.Find.Execute Replace:=wdReplaceAll 'Withの外の方が動作安定 End Sub
以上、Wordで、ファイル内のフィールドを一括削除について、一括置換とVBAでする方法でした。
手順書作成のために、WordのVBAでステップ記録ツールのmhtファイルを編集する準備については、以下をご覧ください。