0

私はVBScriptを持っています(ただし、VBAに関連付けることはできます)。

Set selection = application.Selection
With document.Fields.Add(selection.Range, 35, "Default" , True)
  .Result.Paste
  ...

注: ドキュメント変数は以前に宣言されており、フィールド タイプが quote の場合は 35 です。

問題 以前のバージョンの Word では、貼り付けはフィールド自体で行われるため、「既定」のテキストが新しいテキストに置き換えられますが、Word 2013 では、「既定」のテキストが削除され、フィールドの前にプレーン テキストとしてデータが貼り付けられます。したがって、プレーンテキストと空のフィールドになります。

4

1 に答える 1

0

選択を使用してフィールドに貼り付ける回避策を作成しました。

Set application = GetObject(, "Word.Application")

Function PasteInField(f)
    Set s = application.Selection
    'select all except last char and paste data instead of it
    f.Result.Select
    s.SetRange s.Start, s.Start+Len(f.Result.Text)-1
    s.Paste
    'select last char and remove it
    f.Result.Select
    s.SetRange s.End-1, s.End
    s.Delete
end Function

基本的に、最後の文字を除くすべてを選択し、代わりに貼り付け、最後に残りの文字を削除します。私のフィールドは次のように作成されます:

set field = application.ActiveDocument.Fields.Add(selection.Range, 35, "DEFAULT" , True)
于 2013-08-12T09:09:05.400 に答える