Здравствуйте, уважаемые программисты. Помогите с решением вопроса. У меня на Windows7 есть такая программа КОМПАС 3Д - для рисования чертежей. Чтобы открыть файл чертежа - надо нажать "Файл"-"Открыть"- и выбрать файл...
Подскажите как этот выбрать не из программы, а при помощи макроса на листе эксель?
То есть адрес нужного файла известен - и введен в желтую ячейку. Название программы тоже известно "КОМПАС 3Д". Программа открыта. При нажатии на кнопку макроса - файл "переносится" в программу Компас и автоматически открывается.
Здравствуйте, уважаемые программисты. Помогите с решением вопроса. У меня на Windows7 есть такая программа КОМПАС 3Д - для рисования чертежей. Чтобы открыть файл чертежа - надо нажать "Файл"-"Открыть"- и выбрать файл...
Подскажите как этот выбрать не из программы, а при помощи макроса на листе эксель?
То есть адрес нужного файла известен - и введен в желтую ячейку. Название программы тоже известно "КОМПАС 3Д". Программа открыта. При нажатии на кнопку макроса - файл "переносится" в программу Компас и автоматически открывается.rotten41
Private 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
function fOpenFile(sFPath As String) as boolean On Error Resume Next fOpenFile = ShellExecute(0&, "Open", sFPath, _ vbNullString, vbNullString, 1&) > 32 End Sub
' использовать функцию так: sub UsingOf() if not fOpenFile("здесь_полный_путь_к_файлу") Then msgbox "не удалось открыть файл!" end if end sub
[/vba]
файл должен открыться виндой в приложении по-умолчанию для этого типа файлов
если у вас 64-битный офис, то ищите в интернете объявление api-функций для 64-х битного офиса
в отдельном модуле: [vba]
Код
Option Explicit
Private 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
function fOpenFile(sFPath As String) as boolean On Error Resume Next fOpenFile = ShellExecute(0&, "Open", sFPath, _ vbNullString, vbNullString, 1&) > 32 End Sub
' использовать функцию так: sub UsingOf() if not fOpenFile("здесь_полный_путь_к_файлу") Then msgbox "не удалось открыть файл!" end if end sub
[/vba]
файл должен открыться виндой в приложении по-умолчанию для этого типа файлов
если у вас 64-битный офис, то ищите в интернете объявление api-функций для 64-х битного офисаСаня
Сообщение отредактировал Саня - Воскресенье, 26.02.2017, 21:07