Запуск вба программ можно организовать с помощью

Чаще всего Word запускается из Excel, Access или другого приложения, но иногда встречается и обратная необходимость — нужно открыть из Word другое приложение и переключиться в него. Самый простой способ запустить другое приложение из Word — воспользоваться стандартным объектом VBA Shell. Например, чтобы запустить блокнот, можно воспользоваться командой

Есть и множество других возможностей, например, воспользоваться объектом Application для других приложений Word, или средствами WSH (особенно для консольных приложений), или — если приложение нужно запустить на другом компьютере — средствами WMI.

После того, как приложение запущено, весь набор работающих приложений представляется в Word коллекцией Tasks, а каждое отдельное приложение — соответственно, объектом Task. У коллекции Tasks есть два интересных метода:

  • Exists() — проверить, запущено ли нужное нам приложение. Например, запуск нашего блокнота с проверкой может выглядеть так:

If Tasks.Exists(«Notepad») = False Then

Автоматический запуск макросов в Excel

  • ExitWindows() — произвести операцию Log Off, то есть завершить сеанс работы в Windows. Несохраненные документы Word при этом закроются без сохранения (и без вопросов к пользователю), а документы остальных приложений пользователю будет предложено сохранить.

У объекта Task интересных свойств и методов больше:

  • Height, Width, Top, Left — эти свойства позволяют точно настроить размер окна выбранного вами приложения.
  • Visible — возможность спрятать приложение.
  • WindowState — возможность развернуть, свернуть или восстановить окно.
  • назначение методов Activate(), Close(), Move(), Resize() очевидно.

самый интересный метод — это метод SendWindowMessage(). Он позволяет передавать окну приложения сообщения Windows (щелчки мышью, нажатия клавиш и т.п.). Разобраться в том, какие приложения можно посылать окнам приложений и что они значат, можно при помощи Microsoft Platform Software Development Kit. Например, чтобы в нашем блокноте отобразить окно «О программе», можно воспользоваться командой

Tasks(«Notepad»).SendWindowMessage https://vbastudio.ru/Book/11/11.6.10.html» target=»_blank»]vbastudio.ru[/mask_link]

VBA последовательный запуск макросов в Excel

Макрос запускает другие макросы последовательно. Макросы работают с Excel таблицами. Нужно запускать макрос, если выполнение предыдущего завершено. В текущем варианте:

Sub ОбновитьБазу() Application.Run «Открыть» Application.Run «Загрузка» Application.Run «Выгрузка» Application.Run «Закрыть» End Sub

  • счетчик и его отслеживание
  • запуск по времени

Но я уверена, есть какое-то более правильное и красивое решение.

Отслеживать
13.6k 12 12 золотых знаков 43 43 серебряных знака 72 72 бронзовых знака
задан 16 сен 2020 в 9:18
Анна Лебедева Анна Лебедева
475 3 3 серебряных знака 12 12 бронзовых знаков
Что в данном случае «макрос»? подпрограмма на VBA? тогда тупо CALL — он синхронный.
16 сен 2020 в 10:31
может попробуете циклы?! Типа: If макрос «Открыть» завершен, Then макрос «Загрузка» начать
16 сен 2020 в 16:16

Запуск макроса по времени

17 сен 2020 в 11:25

Так у вас ещё и внутри макросов что-то асинхронно выполняется? ну тогда не знаю. заводите флаги выполнения и отслеживайте их значения, что ли.

17 сен 2020 в 11:29

В VBA код выполняется последовательно. Процедура ОбновитьБазу передает управление процедуре Открыть и ждет завершения ее работы. После отработки Открыть управление переходит к процедуре Загрузка. и т.д. Возможно. даные на каком-то этапе (Загрузка или Выгрузка) не успевают обновиться, но это не имеет отношения к последовательности выполнения макросов

Читайте также:
Как пользоваться программой песочница

17 сен 2020 в 12:24

1 ответ 1

Сортировка: Сброс на вариант по умолчанию

Application.Run — это не самый простой и широко используемый способ запускать макросы (программы, функции) в VBA. Не углубляясь в детали, для Вашего случая подойдут такие способы:

  • имя_программы (макроса) и без скобок перечисление аргументов через запятую
  • Call имя_программы и в скобках перечисление аргументов через запятую.

Ниже — пример тестовой программы с обоими типами синтаксиса. По результатам выполнения видно, что программы выполняются строго последовательно, а не одновременно, как в Вашем случае.

Sub TEST() Dim wait_sec_1 As Integer, wait_sec_2 As Integer wait_sec_1 = 10 wait_sec_2 = 5 Macros1 wait_sec_1 Macros2 wait_sec_2 Call Macros1(wait_sec_1) Call Macros2(wait_sec_2) End Sub Sub Macros1(wait_sec_1 As Integer) Dim i As Integer For i = 0 To wait_sec_1 Application.Wait(Now + TimeValue(«0:00:01»)): DoEvents ‘one second wait Next i Debug.Print «First Macros work end» End Sub Sub Macros2(wait_sec_2 As Integer) Dim i As Integer For i = 0 To wait_sec_2 Application.Wait(Now + TimeValue(«0:00:01»)): DoEvents ‘one second wait Next i Debug.Print «Second Macros work end» End Sub

Источник: ru.stackoverflow.com

Общий цикл создания vba программ

Процесс создания программы обычно разбивается на ряд этапов:

1. Тщательный анализ задачи, решение которой предстоит запрограммировать.

2. Проектирование программы, т.е., подразделение её на отдельные блоки, каждый из которых будет предназначен для решения какой-нибудь локализованной подзадачи. Вместе с тем продумать, как эти блоки будут связаны друг с другом общим процессом решения всей задачи.

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

4. Для каждого из элементов таких форм надо продумать, какие действия должны происходить в программе при воздействии на эти элементы. Вот тут уже придётся писать соответствующие подпрограммы (процедуры), которые эти действия будут производить в общей программе.

5. Когда этапы 1 – 4 пройдены, т.е., детальный проект составлен, можно переходить к его реализации:

Ø проектирование внешнего вида нужных форм и размещение на них элементов управления;

Ø описание свойств этих элементов в среде редактора VBA;

Ø написание программного кода (текста программ на языке VBA) необходимых процедур и т. д.

6. Следующий шаг – запуск программы на исполнение и выявление ошибок в ней.

7. При обнаружении ошибок в синтаксисе текста программы или ошибок в самом алгоритме (это выявляется посредством выполнения контрольного примера с заранее известными результатами) наступает период отладки программы.

8. Отладка сводится к выявлению характера ошибки, её устранению и повторному исполнению программы. Эти действия повторяются до тех пор пока все ошибки не будут устранены. У программистов бытует такое шуточное высказывание об этом периоде работы над программой: “Ещё одна ПОСЛЕДНЯЯ ошибка!”

9. Последний этап – “прогон” проекта на реальных данных и сдача его в эксплуатацию.

Уточним некоторые подробности.

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

Читайте также:
Что делает программа файн ридер

Например, для создании новой формы потребуется лишь выбрать в меню редактора VBA команду Insert =>UserForm, и на экран будет выведено окно новой, пока еще пустой формы. Затем, копируя в форму заготовку элемента управления надпись, можно будет добавить в нее необходимые надписи, а с помощью копирования заготовки элемента управления командная кнопка, можно будет поместить в форму любые требуемые кнопки, — например, ту, после щелчка на которой выполнение вашей программы будет завершаться. Наконец, при выборе команды меню View => Code в редакторе VBA будет открыто окно программного кода, предназначенное для записи текста необходимых процедур обработки событий формы и ее компонентов, а также разнообразных вспомогательных процедур.

После того как программа, наконец, будет готова, следует перейти к третьему этапу работы — тестированию созданной вами программы. Этот процесс предполагает тщательный анализ функционирования только что созданной программы в самых различных режимах, назначение которого — убедиться, что она работает в полном соответствии с вашими планами. Для этого удобнее всего воспользоваться командой меню редактора VBA Run … (Выполнить …). При выборе этой команды вновь созданная программа запускается на выполнение и появляется возможность проверить, как она реагирует на те или иные события, правильно ли обрабатываются введенные данные (как корректные, так и заведомо ошибочные), позволяет ли она решить ту задачу, для которой, собственно, и была создана.

При обнаружении любых ошибок или просто нежелательных отклонений от нормальной работы требуется перейти к четвертому этапу разработки программы — провести ее отладку. Суть этой процедуры состоит в том, что с помощью тех или иных средств выясняется причина появления ошибки в работе программы и принимается решение о способах ее устранения. Теперь потребуется вернуться ко второму этапу и внести в программу необходимые изменения, а затем вновь перейти к третьему этапу и повторить ее тестирование.

Этот цикл повторяется до тех пор, пока тестирование не покажет отсутствие каких-либо отклонений от ожидаемого поведения программы. Надо заметить, что редактор VBA предлагает несколько мощных и эффективных средств автоматизации процесса отладки.

9.1. Понятие об общем цикле создания vba – программы

Процесс создания
программы обычно разбивается на ряд
этапов:

  1. Тщательный
    анализ задачи, решение которой предстоит
    запрограммировать.
  2. Проектирование
    программы, т.е., подразделение её на
    отдельные блоки, каждый из которых
    будет предназначен для решения
    какой-нибудь локализованной подзадачи.
    Вместе с тем продумать, как эти блоки
    будут связаны друг с другом общим
    процессом решения всей задачи.
  3. Поскольку
    мы имеем дело с визуальным
    программированием,
    то не обойтись без всевозможных окон
    (форм), в которых надо предусмотреть
    управляющие элементы и зоны для ввода
    или выбора данных.
  4. Для
    каждого из элементов таких форм надо
    продумать, какие действия должны
    происходить в программе при воздействии
    на эти элементы. Вот тут уже придётся
    писать соответствующие подпрограммы
    (процедуры), которые эти действия будут
    производить в общей программе.
  5. Когда
    этапы 1 – 4 пройдены, т.е., детальный проект
    составлен, можно переходить к его
    реализации:
  • проектирование
    внешнего вида нужных форм и размещение
    на них элементов управления;
  • описание
    свойств этих элементов в среде редактора
    VBA;
  • написание
    программного кода (текста программ на
    языке VBA)
    необходимых процедур и т. д.
      1. Следующий шаг
        – запуск программы на исполнение и
        выявление ошибок в ней.
      2. При
        обнаружении ошибок в синтаксисе
        текста программы или ошибок в самом
        алгоритме (это выявляется посредством
        выполнения контрольного примера с
        заранее известными результатами)
        наступает период отладки
        программы.
      3. Отладка
        сводится к выявлению характера ошибки,
        её устранению и повторному исполнению
        программы. Эти действия повторяются
        до тех пор пока все ошибки не будут
        устранены. У программистов бытует
        такое шуточное высказывание об этом
        периоде работы над программой: “Ещё
        одна ПОСЛЕДНЯЯ ошибка!”
      4. Последний этап
        – “прогон” проекта на реальных
        данных и сдача его в эксплуатацию.
      Читайте также:
      Программа диагностики автомобилей Газель бизнес

      Уточним некоторые
      подробности.

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

      Например,
      для создании новой формы потребуется
      лишь выбрать в меню редактора VBA
      команду Insert
      =>UserForm,
      и на экран будет выведено окно новой,
      пока еще пустой формы. Затем, копируя в
      форму заготовку элемента управления
      надпись,
      можно будет
      добавить в нее необходимые надписи, а
      с помощью копирования заготовки элемента
      управления командная
      кнопка, можно
      будет поместить в форму любые требуемые
      кнопки, — например, ту, после щелчка на
      которой выполнение вашей программы
      будет завершаться. Наконец, при выборе
      команды меню View
      => Code
      в редакторе VBA
      будет открыто окно программного кода,
      предназначенное для записи текста
      необходимых процедур обработки событий
      формы и ее компонентов, а также
      разнообразных вспомогательных процедур.

      После
      того как программа, наконец, будет
      готова, следует перейти к третьему этапу
      работы — тестированию созданной вами
      программы. Этот процесс предполагает
      тщательный анализ функционирования
      только что созданной программы в самых
      различных режимах, назначение которого
      — убедиться, что она работает в полном
      соответствии с вашими планами. Для этого
      удобнее всего воспользоваться командой
      меню редактора VBA
      Run
      … (Выполнить …). При выборе этой команды
      вновь созданная программа запускается
      на выполнение и появляется возможность
      проверить, как она реагирует на те или
      иные события, правильно ли обрабатываются
      введенные данные (как корректные, так
      и заведомо ошибочные), позволяет ли она
      решить ту задачу, для которой, собственно,
      и была создана.

      При
      обнаружении любых ошибок или просто
      нежелательных отклонений от нормальной
      работы требуется перейти к четвертому
      этапу разработки программы — провести
      ее отладку. Суть этой процедуры состоит
      в том, что с помощью тех или иных средств
      выясняется причина появления ошибки в
      работе программы и принимается решение
      о способах ее устранения. Теперь
      потребуется вернуться ко второму этапу
      и внести в программу необходимые
      изменения, а затем вновь перейти к
      третьему этапу и повторить ее тестирование.

      Этот
      цикл повторяется до тех пор, пока
      тестирование не покажет отсутствие
      каких-либо отклонений от ожидаемого
      поведения программы. Надо заметить, что
      редактор VBA
      предлагает несколько мощных и эффективных
      средств автоматизации процесса отладки.

      Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]

      Источник: cleancitygroup.ru

      Рейтинг
      ( Пока оценок нет )
      Загрузка ...
      EFT-Soft.ru