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.
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
' При необходимости дополняем имя папки "\"
If Right(strFolder, 1) <> "\" Then strFolder = strFolder & "\"
' Полный путь файла
strFullPath = strFolder & strFileName
' Вывод окна с отчетом о поиске средствами VBA
MsgBox «Использование команды VBA...» & vbCrLf & vbCrLf & _
dhSearchVBA(strFullPath), vbInformation, strFullPath
' Вывод окна с отчетом о поиске средствами объекта _
FileSystemObject
MsgBox «Использование объекта FileSystemObject...» & vbCrLf
& _
vbCrLf & dhSearchFileSystemObject(strFullPath), vbInformation, _
strFullPath
End Sub
Function dhSearchVBA(varFullPath As Variant) As Boolean
' Использование команды VBA
dhSearchVBA = Dir(varFullPath) <> ""
End Function
Function dhSearchFileSystemObject(varFullPath As Variant) As
Boolean
Dim objFSObject As Object
' Использование объекта FileSystemObject
Set objFSObject = CreateObject(«Scripting.FileSystemObject»)
dhSearchFileSystemObject = objFSObject.FileExists(varFullPath)
End Function
В результате запуска макроса открывается окно, в котором указывается папка для поиска, а затем (после нажатия кнопки ОК) – имя искомого файла. В данном примере для поиска файла используются два разных метода. После ввода имени папки и файла они будут применены поочередно, и в каждом случае будет показан отдельный результат: если файл обнаружен по указанному пути, то отобразится значение True, в противном случае – False.
В результате написания приведенного выше кода, помимо макроса FileSearch, будут созданы три пользовательские функции (их можно найти в категории Определенные пользователем). С помощью этих функций можно отдельно использовать каждый из методов, которые автоматически применяются при выполнении макроса. В данном случае в качестве аргументов функций указываются ячейки, содержащие путь к искомому файлу. Если файл обнаружен по указанному пути, то в активной ячейке отобразится значение ИСТИНА, в противном случае – ЛОЖЬ.
Автоматизация удаления файлов