суббота, 18 февраля 2012 г.

input box и message box в макросах Excel

Привет всем!

Как я и обещал, сегодня расскажу вам то, что знаю об общении с макросом в процессе его выполнения не прерывая его. Как нельзя лучше для этого подходят input box и message box - форма ввода и форма сообщения соответственно.

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









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

Опция vbOKCancel (альтернативой ей является опция vbOKOnly) позволяет управлять выполнением макроса и принимать человеческие решения в процессе его выполнения. В результате x примет значение 1 или 2 соответственно, в зависимости от чего условным блоком мы корректируем выполнение макроса.
И вот так выглядит форма ввода input box так. введенное в форму значение будет присвоено переменной у, как задано макросом.




Вот основное, что я хотел вам рассказать о формах input box и message box, которые, если вы будете писать макросы, несомненно рано или поздно вам понадобятся.

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




1 комментарий:

  1. Если есть желание поработать на заказ, дайте, пожалуйста контакт на адрес enyuzer@ukr.net

    ОтветитьУдалить