VBA для тех кто любит думать


VBA и Office XP - часть 116


 

Она сформирует фразу из значений полей ввода и вставит ее в активный документ. Проверим… так, действительно вставляет, но фраза остается выделенной. А значит, что следующая фраза, выведенная с помощью нашей программы, сотрет предыдущую. Надо посмотреть, нет ли в Visual Basic for Applications функции снятия выделения? Посмотрим по выпадающему меню после точки "Selection."… есть команда "Collapse" (то есть "Свернуть") - рис. 6.9.

 

06_09.bmp

Рис. 6.9. Список методов обьекта Selection.

 

Из справки по ней (рис. 6.10) узнаем ее синтаксис:

Selection.Collapse Direction:=wdCollapseEnd.

 

06_10.bmp

Рис. 6.10. Справка по команде Collapse.

 

Эта команда убирает выделение и помещает курсор в его конец.

Можно также вставить текст в активный документ "Selection.TypeText Text:="Мой текст" (двоеточие после слова "Text" обязательно). Тогда в специальном снятии выделения со вставленного текста не будет необходимости, - оно будет автоматически сворачиваться к своему концу.

А если вдруг пользователь вызовет программу тогда, когда открытых документов в Word'е нет? Тогда ведь возникнет ошибка программы. Но этого легко избежать - надо просто проверить перед вставкой, есть ли открытые документы и, если нет, создать новый:

 

If Documents.Count = 0 Then Documents.Add

 

Осталась еще одна маленькая деталь. Кнопка "Вставить результат в документ" не должна работать, если результат вычислить нельзя (то есть поле "TextBox6" пусто). Как это сделать? Среди всего набора возможных свойств элемента "CommandButton" есть свойство "Enabled" (рис. 6.11) - если его установить как "False" (то есть "ложно"), то кнопка будет отображаться серым цветом и не будет реагировать на события (станет неактивной).

 

06_11.bmp

Рис. 6.11. Свойство Enabled элемента CommandButton.

 

Это свойство можно задать и программно - командой "CommandButton1.Enabled = False".


Начало  Назад  Вперед