Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 07.08.2010, 16:49   #1
chobo
 
Регистрация: 07.08.2010
Сообщений: 9
По умолчанию Запуск приложения макросом

Возник еще один вопрос:
Как запустить внешнюю программу (скрипт) из макроса, при этом дождаться окончания выполнения программы, чтобы выполнить другую инструкцию?
chobo вне форума Ответить с цитированием
Старый 07.08.2010, 17:01   #2
doober
Старожил
 
Аватар для doober
 
Регистрация: 02.05.2009
Сообщений: 3,907
По умолчанию

Запуск так.
Код:
Shell ("I:\Program Files\Notepad++\Notepad++.exe")
А как определяется конец выполнения программой определенного этапа.?
Варианты могут быть разные.
1.если программа отработала и закрылась-по запущенным процессам
2.Если известно время отработки-через таймер.
3.если создается файл-по его наличию,или времени изменения файла

Посмотрите здесь по процессу
Анализ,обработка данных Недорого

Последний раз редактировалось doober; 07.08.2010 в 17:03.
doober вне форума Ответить с цитированием
Старый 07.08.2010, 17:20   #3
chobo
 
Регистрация: 07.08.2010
Сообщений: 9
По умолчанию

Надо запустить скрипт cmd, дождаться его отработки (закрытия черного окна), и продолжить выполнения макроса.

Последний раз редактировалось chobo; 07.08.2010 в 17:22.
chobo вне форума Ответить с цитированием
Старый 07.08.2010, 17:41   #4
doober
Старожил
 
Аватар для doober
 
Регистрация: 02.05.2009
Сообщений: 3,907
По умолчанию

Код:
Function Cont_Proc() As Boolean
Dim Process As Object
Dim Flag As Boolean
 Do
Flag = False
For Each Process In GetObject("winmgmts:").ExecQuery("Select * from Win32_Process")
If Process.Caption Like "cmd.exe*" Then Flag = True: Exit For

 Next
  Loop Until Flag = False
Cont_Proc = True
End Function

Private Sub CommandButton1_Click()
Shell ("C:\2.cmd")

 Cont_Proc
-- Далее ваш код будет выполняться после окончания работы скрипта
End Sub
Анализ,обработка данных Недорого
doober вне форума Ответить с цитированием
Старый 07.08.2010, 18:03   #5
chobo
 
Регистрация: 07.08.2010
Сообщений: 9
По умолчанию

Класс!!! Спасибо, не знаю как, но работает!
Правда я для того, чтобы окно видеть изменил команду Shell:
ID = Shell("C:\TV\links_tv.cmd", vbNormalFocus)
chobo вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
запуск приложения БД на др компе Nika03 БД в Delphi 0 26.05.2010 01:03
б.д и запуск с макросом neprogrammist Microsoft Office Access 0 10.05.2010 18:29
Запуск приложения jkpro Помощь студентам 16 08.11.2009 12:31
Запуск приложения Zloy_Doomer Общие вопросы Delphi 2 10.10.2008 13:47
Запуск приложения Артэс Общие вопросы C/C++ 2 07.06.2008 17:38