Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Как получить переменную из временной формы? - Страница 2 - Мир MS Excel

Регистрация · Логин: · Пароль: · · Забыли пароль?
Страница 2 из 2«12
Модератор форума: _Boroda_, Pelena, Manyasha, SLAVICK 
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Как получить переменную из временной формы? (Макросы/Sub)
Как получить переменную из временной формы?
Alex_ST Дата: Вторник, 29.11.2016, 16:53 | Сообщение № 21
Группа: Друзья
Ранг: Старожил
Сообщений: 2881
Репутация: 503 ±
Замечаний: 0% ±

2003
miver, спасибо. Но сегодня уже проверить не смогу. Надо бежать.



С уважением,
Алексей
MS Excel 2003 - the best!!!
 
Ответить
Сообщениеmiver, спасибо. Но сегодня уже проверить не смогу. Надо бежать.

Автор - Alex_ST
Дата добавления - 29.11.2016 в 16:53
nilem Дата: Вторник, 29.11.2016, 16:59 | Сообщение № 22
Группа: Авторы
Ранг: Ветеран
Сообщений: 1051
Репутация: 397 ±
Замечаний: 0% ±

Excel 2013
Алекс, привет! :)
а у меня вот так получилось (используем Tag формы)


Яндекс.Деньги 4100159601573
 
Ответить
СообщениеАлекс, привет! :)
а у меня вот так получилось (используем Tag формы)

Автор - nilem
Дата добавления - 29.11.2016 в 16:59
Alex_ST Дата: Вторник, 29.11.2016, 22:15 | Сообщение № 23
Группа: Друзья
Ранг: Старожил
Сообщений: 2881
Репутация: 503 ±
Замечаний: 0% ±

2003
Привет, Николай!
С тэгом формы я пробовал с самого начала. Но какие-то конфликты возникали. Сейчас не помню, но, кажется, тэг у скрытой формы почему-то не хотел то ли задаваться, то ли читаться. Потому и передавать стал данные в тэге листбокса.
Завтра на работе покручу твой пример.



С уважением,
Алексей
MS Excel 2003 - the best!!!
 
Ответить
СообщениеПривет, Николай!
С тэгом формы я пробовал с самого начала. Но какие-то конфликты возникали. Сейчас не помню, но, кажется, тэг у скрытой формы почему-то не хотел то ли задаваться, то ли читаться. Потому и передавать стал данные в тэге листбокса.
Завтра на работе покручу твой пример.

Автор - Alex_ST
Дата добавления - 29.11.2016 в 22:15
krosav4ig Дата: Вторник, 29.11.2016, 23:24 | Сообщение № 24
Группа: Друзья
Ранг: Старожил
Сообщений: 1338
Репутация: 533 ±
Замечаний: 0% ±

Excel 2007, 2013
Здравствуйте.
Чего-то меня посетила не совсем адекватная мысля...
Может стоит подумать в эту сторону


(_)Õvõ(_)

Сообщение отредактировал krosav4ig - Вторник, 29.11.2016, 23:28
 
Ответить
СообщениеЗдравствуйте.
Чего-то меня посетила не совсем адекватная мысля...
Может стоит подумать в эту сторону

Автор - krosav4ig
Дата добавления - 29.11.2016 в 23:24
Alex_ST Дата: Среда, 30.11.2016, 09:37 | Сообщение № 25
Группа: Друзья
Ранг: Старожил
Сообщений: 2881
Репутация: 503 ±
Замечаний: 0% ±

2003
Может стоит подумать в эту сторону
Андрей, [url=https://msdn.microsoft.com/en-us/library/windows/desktop/aa366551(v=vs.85).aspx] Creating Named Shared Memory [/url], конечно, очень мощное решение. Но не получится ли для данного вопроса "из пушки по воробьям"? Ведь транслировать-то нужно мизерные объёмы информации - сотни бит от силы.
Можно было бы, наверное, "для эрудиции" и поковыряться с этим вопросом на досуге, но уж никак не по статье на английском и С++ :)
К тому же хотелось бы локализовать весь LstBox в одной процедуре, легко и просто переносимой из документа в документ и из приложения в приложение.
[offtop]Размещение процедуры (функции) в надстройке применимо только в ограниченном числе приложений, программируемых на VBA.
Например, в Visio, для автоматизации которого я собственно и начал разрабатывать функцию LstBox, нет всегда открываемого при старте приложения документа, аналогичного Personal.xls Excel'я и Normal.dot Word'а. И возможности создавать надстройки там тоже нет :(
Вообще у Visio абсолютно идиотская объектная модель, с которой жутко не удобно работать на VBA killed [/offtop]



С уважением,
Алексей
MS Excel 2003 - the best!!!


Сообщение отредактировал Alex_ST - Среда, 30.11.2016, 09:43
 
Ответить
Сообщение
Может стоит подумать в эту сторону
Андрей, [url=https://msdn.microsoft.com/en-us/library/windows/desktop/aa366551(v=vs.85).aspx] Creating Named Shared Memory [/url], конечно, очень мощное решение. Но не получится ли для данного вопроса "из пушки по воробьям"? Ведь транслировать-то нужно мизерные объёмы информации - сотни бит от силы.
Можно было бы, наверное, "для эрудиции" и поковыряться с этим вопросом на досуге, но уж никак не по статье на английском и С++ :)
К тому же хотелось бы локализовать весь LstBox в одной процедуре, легко и просто переносимой из документа в документ и из приложения в приложение.
[offtop]Размещение процедуры (функции) в надстройке применимо только в ограниченном числе приложений, программируемых на VBA.
Например, в Visio, для автоматизации которого я собственно и начал разрабатывать функцию LstBox, нет всегда открываемого при старте приложения документа, аналогичного Personal.xls Excel'я и Normal.dot Word'а. И возможности создавать надстройки там тоже нет :(
Вообще у Visio абсолютно идиотская объектная модель, с которой жутко не удобно работать на VBA killed [/offtop]

Автор - Alex_ST
Дата добавления - 30.11.2016 в 09:37
krosav4ig Дата: Среда, 30.11.2016, 14:28 | Сообщение № 26
Группа: Друзья
Ранг: Старожил
Сообщений: 1338
Репутация: 533 ±
Замечаний: 0% ±

Excel 2007, 2013
из пушки по воробьям
Ну дык поэтому и
не совсем адекватная мысля

:)


(_)Õvõ(_)

Сообщение отредактировал krosav4ig - Среда, 30.11.2016, 17:00
 
Ответить
Сообщение
из пушки по воробьям
Ну дык поэтому и
не совсем адекватная мысля

:)

Автор - krosav4ig
Дата добавления - 30.11.2016 в 14:28
Alex_ST Дата: Четверг, 01.12.2016, 16:48 | Сообщение № 27
Группа: Друзья
Ранг: Старожил
Сообщений: 2881
Репутация: 503 ±
Замечаний: 0% ±

2003
LstBox = VBA.UserForms(VBA.UserForms.Count - 1).Tag
Вот именно этого мне и не хватало!!! Спасибо, Николай!
Пришлось, правда, добавить перед этим On Error Resume Next , т.к. если форму закрыть "крестиком", то тэга уже нет и возникает ошибка.
Завтра допилю и выложу окончательное отполированное решение.
Что-то я запамятовал... Напомните кто-нибудь, пожалуйста, кажется, если оформить файл как надстройку, то объявленная в ней функция Function LstBox(Arr, Title$) по умолчанию станет доступна из всех открытых VBA проектов без указания имени файла и модуля?
Или всё-таки нужно её писать как Public Function LstBox(Arr, Title$) ?



С уважением,
Алексей
MS Excel 2003 - the best!!!
 
Ответить
Сообщение
LstBox = VBA.UserForms(VBA.UserForms.Count - 1).Tag
Вот именно этого мне и не хватало!!! Спасибо, Николай!
Пришлось, правда, добавить перед этим On Error Resume Next , т.к. если форму закрыть "крестиком", то тэга уже нет и возникает ошибка.
Завтра допилю и выложу окончательное отполированное решение.
Что-то я запамятовал... Напомните кто-нибудь, пожалуйста, кажется, если оформить файл как надстройку, то объявленная в ней функция Function LstBox(Arr, Title$) по умолчанию станет доступна из всех открытых VBA проектов без указания имени файла и модуля?
Или всё-таки нужно её писать как Public Function LstBox(Arr, Title$) ?

Автор - Alex_ST
Дата добавления - 01.12.2016 в 16:48
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Как получить переменную из временной формы? (Макросы/Sub)
Страница 2 из 2«12
Поиск:

Яндекс цитирования
© 2010-2016 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!