質問: 生のmicrosoftwordフィールドコードを別のテキストドキュメントにコピーするにはどうすればよいですか? フィールドコードを含むword文書からテキストをコピーして、別のアプリケーションに貼り付けたときに、フィールドコードが生のテキストとして残るようにすることは可能ですか?this is about whales { xe "cetations:whales" }. this is about dolphins { xe "cetations:dolphins" }.フィールドコードを取り除くのではなく?
回答: twood のコメントは正しいです。 integratorit のソリューションでは、すべてのフォーマットが失われます。次のマクロfieldtotextは、フォーマットに触れることなく、ドキュメント内のすべてのフィールドを生のテキストとしてフィールドコードに置き換えます。2番目のマクロtexttofieldは、逆の方法です。つまり、フィールドへの生のコードです。パターンを探します{ * }そしてそれをフィールドに変換しようとします。最初のマクロから挿入されたフィールドの生のテキストに対しては機能しますが、テキスト内のどこかに中括弧と空白の組み合わせがあり、(以前の)フィールド関数を示さない場合、予期しない結果が生じる可能性があります。sub fieldtotext() 'selection.homekey unit:=wdstory ' to start from top of document activewindow.view.showfieldcodes = true do with selection.find .text = "^d" .replacement.text = "" .forward = true .wrap = wdfindstop .format = false .matchcase = false .matchwholeword = false .matchwildcards = false .matchsoundslike = false .matchallwordforms = false end with selection.find.execute if selection.find.found = false then exit do selection = "{ " & mid(selection, 3, len(selection) - 2 - 2) & " }" selection.move wdcharacter, 1 loop while true end sub sub texttofield() dim code as string 'selection.homekey unit:=wdstory ' to start from top of document do with selection.find .text = "\{ * \}" .replacement.text = "" .forward = true .wrap = wdfindstop .format = false .matchcase = false .matchwholeword = false .matchwildcards = true .matchsoundslike = false .matchallwordforms = false end with selection.find.execute if selection.find.found = false then exit do code = mid(selection, 3, len(selection) - 2 - 2) selection.cut selection.insertafter (code) selection.fields.add range:=selection.range, type:=wdfieldempty, preserveformatting:=false selection.moveleft unit:=wdword, count:=1, extend:=wdextend selection.moveright unit:=wdword, count:=1 loop while true end sub