Рис. 5.21
.Но нам ведь нужно одно только имя, без расширения! Как же его получить? Наверное, проще всего убрать последние четыре символа — ".doc". Но как?
Воспользуемся справкой.
Дальнейшие наши действия и их результат весьма серьезно отличаются в зависимости от той версии Microsoft Office, с которой мы работаем.
1. При работе в Microsoft Office 97 нажмем F1 в Редакторе VBA, в открывшемся окне нажмем кнопку "Разделы" (рис. 5.22), а там — "Предметный указатель" (рис. 5.23 — в нем все разделы справки классифицированы по смыслу, в то время как в разделе "Поиск" просто составлена база данных по всем словам, входящим в справочную систему Visual Basic for Applications).
Рис. 5.22.
Рис. 5.23.
Наберем в строке поиска слово "строка". Из списка разделов справочной системы Visual Basic for Applications выберем то, что нам надо — строчку "крайние левые символы" (ведь нам нужно получить из имени документа с расширением только его имя, то есть левую часть строки без четырех правых символов, то есть крайние слева символы). Получаем справку по функции "Left" (рис. 5.24).
Рис. 5.24.
Превосходно — функция "Left" является именно той функцией, которая нам требовалась. Но она требует значение количества символов во всей строке — как это узнать? Да так, как описано в данном справочном окне — через функцию "Len". Нажмем ссылку "См. также" и выберем из списка строчку "Функция Len" (рис. 5.25).
Рис. 5.25.
Справка по функции Len в Microsoft Office 97.2. Ну, а если мы используем Microsoft Office 2000 или Microsoft Office ХР, то просто задаем вопрос Помощнику (рис. 5.26) или открываем Справочную систему VBA (рис. 5.27) из меню "Help" Редактора VBA, если Помощник скрыт или не установлен. Вопрос, естественно, формулируется по-английски и может звучать, например, так: "Delete right symbols in string" — "Удалить правые символы из строки".
Рис. 5.26.
Рис. 5.27…
В обоих случаях нам выдается список ссылок на разделы Справочной системы. Перебрав их все (через окно Справочной системы это делать удобнее, чем с помощью Помощника), определяем, что нужная нам информация содержится в рассказе о функции Left (см. рис. 5.27). В нижней части окна справки по функции Left есть строчка — "То determine the number of characters in string, use the Len function", то есть для определения числа символов в строке (а это нужно, чтобы подсчитать, сколько символов нужно брать слева из исходного имени файла: оно будет равно числу символов в строке минус четыре — длина расширения в три символа и точка) следует использовать функцию Len.
Раз так сказано в Справке по функции Left, то, наверное, рассказ о функции Len и ее синтаксисе находится где-то "рядом". И действительно — открыв ссылку See Also в верхней части окна Справки по функции Left, смотрим на список связанных тем (рис. 5.28)…
Рис. 5.28.
…и видим, что Справка по функции Len там присутствует. Открываем ее (рис. 5.29)…
Рис. 5.29.
Цель вышеприведенных абзацев, посвященных Справочной системе — не столько проиллюстрировать процесс поиска информации для разработки нашей программы конвертации документов, сколько показать вам основные приемы работы со Справкой VBA, которые вы должны весьма хорошо знать при создании программ на Visual Basic for Applications. В разных версиях Microsoft Office они немного отличаются, однако общие алгоритмы одинаковы — поиск по ключевым словам, переход по ссылкам на связанные рассказы Справки для поиска в них нужной информации.
Найдя нужную нам информацию в Справочной системе (любой версии Microsoft Office — как описано выше), немного подумав и использовав данные о синтаксисе обеих команд в справке, можно написать команду, которая возвращает строку без последних четырех символов:
imyadoc = Left (ActiveDocument. Name, Len (ActiveDocument. Name) — 4)
Можно проверить. Создадим еще один модуль:
Sub experience3()
imyadoc = Left (ActiveDocument. Name, Len (ActiveDocument. Name) — 4)
MsgBox imyadoc
End Sub
и запустим его. В окне сообщения — имя документа без расширения (рис. 5.30).