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


VBA и Office XP - часть 92


Активный документ приобрел имя “Doc1.doc” (или “Doc2.doc”, “Doc3.doc” - у кого как[8]). Но где же он сохранился? Ищем по F3 в "Проводнике" - так, сохранен он в папке, где произошло последнее ручное сохранение какого-либо файла или в папке для документов Word по умолчанию: “Мои документы” или другая, заданная пользователем, путь к которой можно посмотреть во вкладке “Сервис - Параметры - Расположение” (рис. 5.19).

 

05_19.bmp

Рис. 5.19. Здесь можно посмотреть путь к папке для документов Word по умолчанию.

 

Следовательно, при программном сохранении ранее несохранявшегося документа без задания ему имени и места сохранения[9] происходит сохранение активного документа в папке по умолчанию (или в папке, где был последний раз сохранен вручную какой-нибудь документ) и с именем по умолчанию. Примем к сведению.

Но как же нам быть с нашей программой? Нам ведь надо, чтобы все обрабатываемые файлы сохранялись под своим именем и в формате и с расширением Rtf! А попробуем-ка каким-нибудь способом получить программно имя активного документа. Создадим еще один макрос, и напишем там "ActiveDocument", ставим точку (рис. 5.20) и видим, что среди возможных продолжений команды есть свойство "Name".

 

05_20.bmp

Рис. 5.20. А так можно найти нужное продолжение команды...

 

 Похоже, это и есть то, что нам надо. Проверим. Модифицируем экспериментальную процедуру следующим образом:

 

Sub experience2()

MsgBox ActiveDocument.Name

End Sub

 

Это позволит нам вызвать окно сообщения с значением функции "ActiveDocument.Name". Можно было бы написать "Debug.Print ActiveDocument.Name", что отобразило бы значение этой функции в специальном Окне отладки (вызывается из меню редактора Visual Basic for Applications "Вид"-"Окно отладки"). Но использовать окно сообщения как-то привычнее. Итак, нажимаем F5... получаем окно с сообщением: "Доклад1.doc".

 

 

05_21.bmp

Рис. 5.21.


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