Страницы: 1
RSS
-=Макрос вызова другой программы=-
 
Как из Excel открыть стороннюю (не офис) программу?  
Спасибо.
 
' Specifying 1 as the second argument opens the application in    
' normal size and gives it the focus.  
Dim RetVal  
RetVal = Shell("C:\WINDOWS\CALC.EXE", 1)    ' Run Calculator.
 
Ага, спасибо, нашел в справке по Shell.  
Тока не фурычит. Ошибка 5
 
Может 53 - не тем путем идешь, товарищь!
 
Вижу что не тем, иначе бы работало :-)  
 
Но ошибка всё-так 5 (см. вложение)
 
Такое - знаю  
"C:\Program Files\FSImgViewer\FSViewer.exe"  
Такое - нет  
"C:\Program Files\FSImgViewer\FSViewer"
 
А вот теперь - ошибка 53
 
.
Я сам - дурнее всякого примера! ...
 
.
 
.
 
И что? Файл не найден. Ты уверен в правильности пути? У тебя exe файл правда высыпан в общую директорию "программы"? Может все же "...\программы\Viewer\FSViewer.exe"? Ты бы тоталкоммандером скопировал полный путь.
Я сам - дурнее всякого примера! ...
 
Еще вариант - эта папка(Decktop) является системной, поэтому грубо посылает Эксель на.
Я сам - дурнее всякого примера! ...
 
Я путь копировал со свойств exe-шного файла  
(поэтому там сначала exe и не прописалось)
 
{quote}{login=KukLP}{date=01.03.2012 08:59}{thema=}{post}Еще вариант - эта папка(Decktop) является системной, поэтому грубо посылает Эксель на.{/post}{/quote}А как определить - системная она или нет?
 
Здравствуйте Сергей!  
нашел инете  
 
Sub Test()  
 Dim myFile As String  
 myFile = Quote("C:\Program Files\Mozilla Firefox\firefox.exe")  
 Shell "CMD /c " & myFile  
End Sub  
 
Function Quote(str As String) As String  
 If Left(str, 1) = """" Then  
   Quote = str  
   Else: Quote = """" & str & """"  
 End If  
End Function
Excel 2007
 
Серж, а ты зайди по этому пути в проводнике, там точно не ярлык со ссылкой?
Я сам - дурнее всякого примера! ...
 
Смотри, что на самом деле.
Я сам - дурнее всякого примера! ...
 
Sub d()  
Shell "Explorer.exe C:\Program Files\Mozilla Firefox\firefox.exe", vbNormalFocus  
End Sub
Excel 2007
 
Только что проверил на jpg и txt:  
 
 
Sub fopen()  
With Application.FileDialog(msoFileDialogFilePicker)  
.Filters.Clear  
.Filters.Add "All files", "*.*"  
.Filters.Add "Microsoft Excel files", "*.xls"  
.Filters.Add "Microsoft Excel dbf files", "*.dbf"  
.Filters.Add "Pictures", "*.jpg"  
.AllowMultiSelect = False  
.InitialFileName = ThisWorkbook.Path  
If .Show = 0 Then Exit Sub  
CreateObject("WScript.Shell").Run Chr(34) & .SelectedItems(1) & Chr(34)  
End With  
End Sub  
 
Фильтры можно по вкусу добавить, InitialFileName поменять.
 
И на exe тоже проверил только что :)
 
Всем огромное спасибо!  
Заработало :-)  
 
АВС - один твой макрос работает, другой (с функцией) нет. Или у меня не получилось :-)  
 
Hugo - работает на ура, только цель у меня была одной кнопкой запускать прогу :-)  
 
KukLP - твой совет оказался бесценным. Я долго искал на компе тотал коммандер, потом скачал его и да, действительно путь был как ты говорил  
<<<У тебя exe файл правда высыпан в общую директорию "программы"?>>>  
Нет. Это была ещё одна папка, которой я присвоил такой же ярлык как и самому exe...  
А при копировании свойств самой проги путь её обрезается на названии ПАПКИ в которой она лежит, а название exe-файла и его расщирение нужно добавлять самому...    
тотал коммандер мне это показал  
 
Что интересно макрос (я остановился на этом) работает и в таком виде  
 
Sub FSViewer()  
Dim RetVal  
RetVal = Shell("c:\Users\ион\Desktop\Программы\FSViewer45\FSViewer", 1)  
End Sub  
 
и если добавить в конец пути расширение.  
Проверил несколько раз, выбрал одно из двух, повесил на кнопку, сижу играюсь как ребёнок :-)  
 
Всем ещё раз огромное спасибо!
 
Сергей, а ты не ведись на "много слов" :)  
Одна строка, одна кнопка:  
 
Sub tt()  
CreateObject("WScript.Shell").Run Chr(34) & "c:\MyPrograms\HijackThis\HijackThis.exe" & Chr(34)  
End Sub
 
Еще раз ГЫ:-)
Я сам - дурнее всякого примера! ...
 
Так, не мешайте моему счастью :-)))  
 
{quote}{login=Hugo}{date=01.03.2012 11:26}{thema=}{post}Сергей, а ты не ведись на "много слов" :)  
Одна строка, одна кнопка:  
 
Sub tt()  
CreateObject("WScript.Shell").Run Chr(34) & "c:\MyPrograms\HijackThis\HijackThis.exe" & Chr(34)  
End Sub{/post}{/quote}  
 
Это чего должно быть?
 
Да тоже самое, что и у твоего тёзки :)  
Только "в профиль"
 
Игорь спасибо, так тоже работает.  
 
Тема закрыта
Страницы: 1
Наверх