Перейти к содержимому

VBA Excel. Открыть файл другой программы

Открытие файла другой программы из кода VBA Excel с помощью функции ShellExecute и метода Run объекта Wscript.Shell по ассоциации с расширением файла.

  1. Функция ShellExecute
  2. Метод Run объекта Wscript.Shell

Функция ShellExecute и метод Run объекта Wscript.Shell позволяют открывать файлы других приложений из кода VBA Excel по ассоциации с их расширениями. Если файл не имеет расширения, или оно ассоциируется с «Неизвестным приложением», будет отображено диалоговое окно для ручного выбора программы, с помощью которой можно открыть этот файл:

Функция ShellExecute

Чтобы открыть файл другой программы с помощью функции ShellExecute, ее необходимо объявить в разделе Declarations того модуля, в котором она будет использоваться.

Разместите следующий код в раздел Declarations программного модуля:

Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hWnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long

Открывайте файлы сторонних приложений из кода VBA Excel с помощью следующей строки:

ShellExecute 0, vbNullString, "C:\Тестовая\Справка VBA Excel.doc", vbNullString, vbNullString, vbNormalFocus

Замените адрес файла «C:\Тестовая\Справка VBA Excel.doc» на адрес своего файла, который необходимо открыть по ассоциации с его расширением.

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

Минус способа – в необходимости объявлять функцию ShellExecute в разделе Declarations каждого модуля, где планируется ее использование.

Метод Run объекта Wscript.Shell

Используйте следующий код VBA Excel, чтобы открыть файл другой программы по его расширению с помощью метода Run объекта Wscript.Shell:

Sub Primer()
Dim ws As Object
  Set ws = CreateObject("WScript.Shell")
    ws.Run "C:\Тестовая\123.png"
  Set ws = Nothing
End Sub

Замените адрес файла «C:\Тестовая\123.png» на адрес своего файла, который необходимо открыть по ассоциации с его расширением.

Минус этого способа заключается в его способности открывать файлы только с адресом, не содержащим пробелы. Если адрес будет содержать пробелы, произойдет следующая ошибка:

Содержание рубрики VBA Excel по тематическим разделам со ссылками на все статьи.

Добавить комментарий

Ваш комментарий будет опубликован после прохождения обязательной модерации. Исходящие ссылки не допускаются. Время модерации составит от нескольких минут до нескольких часов в зависимости от времени суток и занятости модератора. При добавлении в комментарий кода VBA Excel, вставьте перед его началом тег [vb] и по окончании кода - [/vb].