Вызов скрипта книги из события
От: Molchalnik  
Дата: 18.09.15 11:27
Оценка:
Абсолютно дурацкий вопрос, но времени на поиск ответа нет, результат нужен вчера.

Не программировал на vba 10 000 лет и всё, абсолютно всё забыл, хотя когда-то неплохо зажигал.

Разместил кнопку на листе документа xls, сделал обработчик нажатия кнопки, хочу из обработчика вызвать макрос, локализованный в "ЭтаКнига". Но не знаю как.

Хелп ми!!!
Отредактировано 18.09.2015 11:28 Molchalnik . Предыдущая версия .
Re: Вызов скрипта книги из события
От: Vi2 Удмуртия http://www.adem.ru
Дата: 18.09.15 11:43
Оценка:
Здравствуйте, Molchalnik, Вы писали:

M>Абсолютно дурацкий вопрос, но времени на поиск ответа нет, результат нужен вчера.

M>Не программировал на vba 10 000 лет и всё, абсолютно всё забыл, хотя когда-то неплохо зажигал.
M>Разместил кнопку на листе документа xls, сделал обработчик нажатия кнопки, хочу из обработчика вызвать макрос, локализованный в "ЭтаКнига". Но не знаю как.

ЭтаКнига.ЭтогоМакросаИмя ЭтогоМакросаПараметры
Vita
Выше головы не прыгнешь, ниже земли не упадешь, дальше границы не убежишь! © КВН НГУ
Re[2]: Вызов скрипта книги из события
От: Molchalnik  
Дата: 18.09.15 13:10
Оценка:
Здравствуйте, Vi2, Вы писали:

Vi2>ЭтаКнига.ЭтогоМакросаИмя ЭтогоМакросаПараметры


а если не прибивать гвоздями имя книги? как-нибудь через ThisBook?
Re[2]: Вызов скрипта книги из события
От: Molchalnik  
Дата: 18.09.15 13:27
Оценка:
Здравствуйте, Vi2, Вы писали:

Vi2>Здравствуйте, Molchalnik, Вы писали:


M>>Абсолютно дурацкий вопрос, но времени на поиск ответа нет, результат нужен вчера.

M>>Не программировал на vba 10 000 лет и всё, абсолютно всё забыл, хотя когда-то неплохо зажигал.
M>>Разместил кнопку на листе документа xls, сделал обработчик нажатия кнопки, хочу из обработчика вызвать макрос, локализованный в "ЭтаКнига". Но не знаю как.

Vi2>ЭтаКнига.ЭтогоМакросаИмя ЭтогоМакросаПараметры


кстати, работает, но я старой школы и очень против русификации кода. Динозавр, что делать, это не лечится. А почему не работает ThisWorkBook.ЭтогоМакросаИмя?
Re[3]: Вызов скрипта книги из события
От: Vi2 Удмуртия http://www.adem.ru
Дата: 18.09.15 20:08
Оценка:
Здравствуйте, Molchalnik, Вы писали:

M>кстати, работает, но я старой школы и очень против русификации кода. Динозавр, что делать, это не лечится. А почему не работает ThisWorkBook.ЭтогоМакросаИмя?


Я написал чисто псевдокод, совмещая текст и код. Даже удивительно, что так работает.

Наверное, VBА Ворда объявляет переменную для пользователя и, похоже, с учётом локализации, но никто не мешает тебе самому дообъявить ещё одну переменную, например, Set ThisWorkBook = ЭтаКнига.

PS
Мда, забыл объявить Dim ThisWorkBook As WorkBook, но это и не нужно. Вообще проверил сейчас: есть и ThisWorkBook как метод класса Global, т.е. доступен без указания чего-то перед этим именем, есть и ЭтаКнига.
Vita
Выше головы не прыгнешь, ниже земли не упадешь, дальше границы не убежишь! © КВН НГУ
Отредактировано 18.09.2015 20:17 Vi2 . Предыдущая версия .
Re[4]: Вызов скрипта книги из события
От: Molchalnik  
Дата: 20.09.15 04:22
Оценка:
Здравствуйте, Vi2, Вы писали:


Vi2>Мда, забыл объявить Dim ThisWorkBook As WorkBook, но это и не нужно. Вообще проверил сейчас: есть и ThisWorkBook как метод класса Global, т.е. доступен без указания чего-то перед этим именем, есть и ЭтаКнига.


Cпасибо, у меня это так и работает. Видимо, когда я пытался сделать это в первый раз, я сделал что-то не так — возможно, вызываемый макрос объявил Private.
Теперь мучаюсь, почему Application.Run("ЭтаКнига.ИмяМакроса",arg1) работает, а Application.Run("ThisWorkbook.ИмяМакроса",arg1) нет
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.