Программно задать текст поля (Field) в VBA Word
От: Аноним  
Дата: 11.07.10 21:20
Оценка:
Подскажите, как правильно из VBA MSWord задать текст поля?

Поле создаю как
Set myRange = ActiveDocument.Range(ActiveDocument.Range.End - 1, ActiveDocument.Range.End)
Set openingBracesField = ActiveDocument.Fields.Add(myRange, wdFieldAddin, "OPENINGBRACESFIELD", False)


Таким образом, в конце документа появляется поле {OPENINGBRACESFIELD}

Нажав Alt+F9, оно исчезает.
Некоторые поля, вроде {DATE} содержат текст с форматированием (например 12.12.10), который и выводится при печати. При нажатии Alt+F9, текст {DATE} заменится на то, что будет напечатано (12.12.10)
Как можно программно задать этот текст в поле?

Делаю так (1):
openingBracesField.Result.Select
Selection.TypeText "MyFieldText"


Получаю текст MyFieldText после поля, то есть

{OPENINGBRACESFIELD}MyFieldText


причем этот текст не исчезает при нажатии Alt+F9

Подскажите, что я делаю не так? Как задать текст для поля?
Извините, если слишком дотошно описал проблему. Мне казалось, так понятнее. Спасибо
Re: Программно задать текст поля (Field) в VBA Word
От: Аноним  
Дата: 28.07.11 02:27
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Подскажите, как правильно из VBA MSWord задать текст поля?


А>Поле создаю как

А>
А>Set myRange = ActiveDocument.Range(ActiveDocument.Range.End - 1, ActiveDocument.Range.End)
А>Set openingBracesField = ActiveDocument.Fields.Add(myRange, wdFieldAddin, "OPENINGBRACESFIELD", False)
А>


А>Таким образом, в конце документа появляется поле {OPENINGBRACESFIELD}


А>Нажав Alt+F9, оно исчезает.

А>Некоторые поля, вроде {DATE} содержат текст с форматированием (например 12.12.10), который и выводится при печати. При нажатии Alt+F9, текст {DATE} заменится на то, что будет напечатано (12.12.10)
А>Как можно программно задать этот текст в поле?

А>Делаю так (1):

А>
А>openingBracesField.Result.Select
А>Selection.TypeText "MyFieldText"
А>


А>Получаю текст MyFieldText после поля, то есть


А>
А>{OPENINGBRACESFIELD}MyFieldText
А>


А>причем этот текст не исчезает при нажатии Alt+F9


А>Подскажите, что я делаю не так? Как задать текст для поля?

А>Извините, если слишком дотошно описал проблему. Мне казалось, так понятнее. Спасибо


Нужно поставить значение поля docvariable и выставить какую нибудь переменную, и потом этой переменной задать значение
ActiveDocument.Variables.Item("<имя переменной>").Value= "<значение>"
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.