Excel. Трюки и эффекты | страница 110



With .MenuItems.Add(Caption:="Покупатели")

' Настройка кнопки

.OnAction = «Макрос3»

End With

End With

End With

End Sub

Как и в первом случае, два последних макроса предусматривают использование дополнительных макросов Макрос1, Макрос2 и Макрос3.

Проверка наличия файла по указанному пути

При необходимости можно быстро проверить, существует ли файл по указанному адресу. Чаще всего для этого используется макрос, приведенный в листинге 3.46 (путь и название файла условные, взяты только для примера).

Листинг 3.46. Проверка наличия файла (вариант 1)

Sub VerifyFileLocation()

Dim strFileName As String

Dim strFileTitle As String

' Имя и путь искомого файла

strFileTitle = «primer.xls»

strFileName = «C:\Документы\primer.xls»

' Проверка наличия файла (функция Dir возвращает пустую _

строку, если по указанному пути файл обнаружить не удалось)

If Dir(strFileName) <> "" Then

MsgBox "Файл " & strFileTitle & « найден»

Else

MsgBox "Файл " & strFileTitle & « не найден»

End If

End Sub

Результатом выполнения данного макроса является выводимое на экран окно, в котором сообщается, существует данный файл по указанному адресу или нет (рис. 3.14).

Рис. 3.14. Результат поиска файла


Для такой же проверки можно применить макрос, код которого приведен в листинге 3.47 (путь и название файла условны).

Листинг 3.47. Проверка наличия файла (вариант 2)

Sub VerifyFileLocation1()

Dim strFileName As String

' Имя искомого файла

strFileName = «C:\Документы\primer.xls»

' Проверка наличия файла (функция Dir возвращает пустую _

строку, если по указанному пути файл обнаружить не удалось)

If Dir(strFileName) <> "" Then

MsgBox "Файл " & strFileName & « найден»

Else

MsgBox "Файл " & strFileName & « не найден»

End If

End Sub

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

В приведенных выше макросах мы напрямую указывали имя искомого файла. Однако такой подход не всегда приемлем, поэтому иногда целесообразнее использовать макрос, код которого приведен в листинге 3.48.

Листинг 3.48. Поиск нужного файла

Sub FileSearch()

Dim strFileName As String

Dim strFolder As String

Dim strFullPath As String

' Задание имени папки для поиска

strFolder = InputBox(«Определите папку:»)

If strFolder = "" Then Exit Sub

' Задание имена файла для поиска

strFileName = Application.InputBox(«Введите имя файла:»)

If strFileName = "" Then Exit Sub

' При необходимости дополняем имя папки "\"