Тайны и секреты компьютера | страница 41



Наберем в строке поиска слово «строка». Из списка разделов справочной системы VBA выберем то, что нам надо — строчку "крайние левые символы" (ведь нам нужно получить из имени документа с расширением только его имя, то есть левую часть строки без четырех правых символов, то есть крайние слева символы). Получаем справку по функции «Left» (рис. 3.10).



Рис. 3.10. Справка по функции Left.


Превосходно — функция «Left» является именно той функцией, которая нам требовалась. Но она требует значение количества символов во всей строке — как это узнать? Да так, как описано в данном справочном окне в разделе "Дополнительные сведения" — через функцию «Len». Нажмем ссылку "См. также", выберем из списка строчку "Функция Len" и изучим появившуюся информацию.[4]

Немного подумав и использовав данные о синтаксисе обеих команд в справке, можно написать команду, которая возвращает строку без последних четырех символов:

imyadoc = Left(ActiveDocument.Name, Len(ActiveDocument.Name) — 4)

Можно проверить. Создадим еще один модуль:

Sub experience3()

imyadoc = Left(ActiveDocument.Name, Len(ActiveDocument.Name) — 4)

MsgBox imyadoc

End Sub

и запустим его. В окне сообщения — имя документа без расширения. Все так, как нам необходимо.


Небольшое отступление

Вышеизложенный способ получения имени активного документа без расширения — не самый лучший, хотя имеет право на существование. Есть еще один способ узнать только имя документа, унаследованный из предыдущих версий Word, — в Word 6.0 и Word 95 была специальная команда для получения имени документа, к сожалению, в VBA не включенная. Однако она может быть использована в VBA, так как макросы для Word 6.0 и Word 95 могут выполняться и в более новых версиях Office. При открытии в Office 97/2000/XP шаблонов с макросами, созданных в предыдущих версиях Office, все макросы автоматически конвертируются для выполнения в VBA с помощью включенной в него версии языка WordBasic, на котором писались макрокоманды для Word 6.0 и Word 95.

В Word 6.0 и Word 95 имелась функция "FileNameInfo$(документ, параметр)", с помощью которой можно было получить имя документа без расширения, путь к документу без имени и путь к документу вместе с именем. Для того, чтобы узнать одно имя документа, без расширения и пути, значение параметра должно быть равно 4. (Все это подробно описано в справке по WordBasic для Microsoft Word 6.0 и Microsoft Word 95.)

В VBA эта функция будет выглядеть так: