Читаем Тайны и секреты компьютера полностью

Запустив эту программу несколько раз, получаем, что в переменную «papka» записывается путь и имя папки, но, если в пути или имени были пробелы, то путь окаймляется кавычками: "C: \Program Files\Microsoft Office\Шаблоны\", а если пробелов в пути не было, то кавычки по краям не ставятся. Поэтому возвращаемую переменную нужно обработать — убрать кавычки. Сделать это можно с помощью уже известных нам команд «Left», «Rigth», «Mid» и "Len":

If Right(papka, 1) = Chr$(34) Then papka = Mid(papka, 2, Len(papka) — 2)

"Chr$(34)" — это команда, которая возвращает символ с ASCII-кодом 34: кавычку. (Каждый символ в Dos и Windows имеет свой номер — ASCII-код, по которому его можно вызвать на экран. Узнать код выделенного символа можно командой "MsgBox Asc(Selection.Text)". Узнать о командах "Chr$" и «Asc» можно, порывшись в справке.)

Кроме того, не мешало бы сделать так, чтобы при запуске программы окно "Копирование файла" по умолчанию стояло бы на директории с активным документом — не всегда же нужно сохранять все обрабатываемые документы в отдельной папке! Нет ничего проще — установим параметр «Directory» как "ActiveDocument.Name" перед командой".Display":

With Dialogs(wdDialogCopyFile)

Directory = ActiveDocument.Path

Display

papka =.Directory

End With

If Right(papka, 1) = Chr$(34) Then papka = Mid(papka, 2, Len(papka) — 2)

Это и есть необходимый код для отображения диалогового окна и получения пути к папке для сохранения обработанных документов. Наконец, сделаем так, чтобы нажатие кнопки «Отмена» в диалоговом окне приводило бы не к простому продолжению работы программы, а к выходу из нее. Для этого в справке по слову".Display" узнаем, что эта команда является функцией — то есть возвращает определенное значение, в зависимости от того, какая кнопка была нажата. Добавим в программу условие и команду выхода из программы:

With Dialogs(wdDialogCopyFile)

Directory = ActiveDocument.Path

If.Display = 0 Then Exit Sub

papka =.Directory

End With

If Right(papka, 1) = Chr$(34) Then papka = Mid(papka, 2, Len(papka) — 2)

Теперь при нажатии кнопки «Отмена» в диалоговом окне выбора папки произойдет выход из программы.

Окончательный вид нашего макроса:

Перейти на страницу:

Похожие книги