Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Сообщений [ 10 ]
- mikkelle
- полковник
- Неактивен
- Зарегистрирован: 21.01.2010
- Сообщений: 227
- Поблагодарили: 12
Тема: Глобальная переменная
Как правильно объявит переменную, что бы использовать ее в разных модулях и формах в т.ч. из модулей подключенных шаблонов?
Пробовал запись в разделе модуля Declarations типа: Global MyString as String
Отредактировано mikkelle (08.02.2011 18:00:30)

- Вождь
- Модератор
- Неактивен
- Зарегистрирован: 07.01.2010
- Сообщений: 745
- Поблагодарили: 181
Re: Глобальная переменная
Общие переменные объявляются в начале модуля, до процедур и функций. Пример: Public N As Integer
Макросам доступны общие переменные своего модуля, других модулей документа и модулей подключенных документов (references), за исключением модулей с директивой "Option Private Module".
Для ясности с переменными полезно в начале модуля добавлять директиву "Option Explicit"
Макросы под заказ и готовый пакет - mtdmacro.ru
- mikkelle
- полковник
- Неактивен
- Зарегистрирован: 21.01.2010
- Сообщений: 227
- Поблагодарили: 12
Re: Глобальная переменная
Спасибо, Вождь
1. А теперь поясните, т.е. из кода написанного в модуле одного подключенного документа сослаться на глобальную переменную в модуле другого подключенного документа никак нельзя?
2. А есть ли какие либо способы объявить переменную для всего приложения, допустим где-то на запуске Word?

- Вождь
- Модератор
- Неактивен
- Зарегистрирован: 07.01.2010
- Сообщений: 745
- Поблагодарили: 181
Re: Глобальная переменная
mikkelle пишет:...сослаться на ... переменную в модуле другого подключенного документа...
Нельзя
mikkelle пишет:...объявить переменную для всего приложения...
Для всего Word - нельзя.
Можно подойдут Variables?
Макросы под заказ и готовый пакет - mtdmacro.ru
- mikkelle
- полковник
- Неактивен
- Зарегистрирован: 21.01.2010
- Сообщений: 227
- Поблагодарили: 12
Re: Глобальная переменная
Variables имеют один недостаток, они относятся к конкретному документу, а потому по ходу работы, открывая и закрывая документы сталкиваемя с с проблемой постоянного добавления (или удаления) их.
- Зарегистрирован: 13.10.2010
- Сообщений: 3
Re: Глобальная переменная
mikkelle пишет:Variables имеют один недостаток, они относятся к конкретному документу, а потому по ходу работы, открывая и закрывая документы сталкиваемя с с проблемой постоянного добавления (или удаления) их.
Я бы порекомендовал попробовать воспользоваться переменными окружения OS
Например так:
Dim WshEnvironment As Object
Dim WshShell As Object
Set WshShell = CreateObject("Wscript.Shell")
Set WshEnvironment = WshShell.Environment("User")
' Cохраняем данные в переменной уровня пользователя
WshEnvironment("MyVar") = "Строка данных"
' Получаем данные
Msgbox WshEnvironment("MyVar")
- Зарегистрирован: 13.10.2010
- Сообщений: 3
Re: Глобальная переменная
mikkelle пишет: ...сослаться на ... переменную в модуле другого подключенного документа...
Вождь пишет: Нельзя
Можно сослаться на свойства Property Get/Let/Set другого класса из коллекции Application.VBE.VBProjects
Отредактировано Aent (11.02.2011 14:37:56)

- Вождь
- Модератор
- Неактивен
- Зарегистрирован: 07.01.2010
- Сообщений: 745
- Поблагодарили: 181
Re: Глобальная переменная
mikkelle пишет:Variables имеют ... недостаток ... сталкиваемя с проблемой постоянного добавления (или удаления)...
Проще всего для стороннего хранения данных в течении сеанса работы MS Word использовать временный скрытый документ:
Application.Documents.Add Visible:=False.
Та же переменная 
Макросы под заказ и готовый пакет - mtdmacro.ru
- Зарегистрирован: 13.10.2010
- Сообщений: 3
Re: Глобальная переменная
Вождь пишет:Проще всего для стороннего хранения данных в течении сеанса работы MS Word использовать временный скрытый документ
Да тут вариантов куча:
1) В реестр
2) В текстовый файл в каталоге документа или в предопределённой папке
и т.д.
- mikkelle
- полковник
- Неактивен
- Зарегистрирован: 21.01.2010
- Сообщений: 227
- Поблагодарили: 12
Re: Глобальная переменная
Aent, Вождь большое спасибо, действительно вариантов оказывается много, сейчас попробую все обкатать.
Просьба к Aent по поводу
Можно сослаться на свойства Property Get/Put/Set другого класса из коллекции Application.VBE.VBProjects
Не растолкуете ли?
Сообщений [ 10 ]
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Глобальная переменная
Чем мощнее и грандиознее та или иная программа, тем сложнее с ней разобраться. Взять Microsoft Word. На первый взгляд все просто, на второй тоже, на третий, вообще думать не надо, а на четвертый оказывается, что в редакторе уйма скрытых возможностей, о которых мы и не подозревали. Наш сайт о Microsoft Office Word даст ответ про: как поменять значения кнопки f12.
Вы убиваете целый вечер на работу, а коллега сделал ее за час-другой? Как ему это удалось? А легко: он оптимизировал и настроил свой Word. Наш сайт о Microsoft Office Word даст ответ про: систематизировать файлы.
На сайте и форуме Ворд Эксперт очень много решений, как это сделать. Можно написать макрос для каждой операции, выбрать оптимальную настройку приложения или создать шаблон. На портале о Microsoft Office Word вы узнаете про: гиперссылка в ворде2003 оглавление.
Обсудить достоинства и недостатки их, различные методы работы с текстом, преимущества и изъяны версий вы можете на форуме. Наш сайт о Microsoft Office Word даст ответ про: новогоднее оформление листов в word.
Если вы никогда раньше не писали макросы, то не беда, все предельно ясно и доступно, а для пытливого ума ссылка на дополнительную литературу. На портале о Microsoft Office Word вы узнаете про: как пронумеровать страницы в ворде 2003 без титульного листа.
Конечно, можно взять чье-то готовое решение, такие тоже выкладывают на Ворд Эксперт в специальном подразделе, а можно просто озвучить проблему и попросить помощи у умельцев в разделе заявок. На портале о Microsoft Office Word вы узнаете про: pdf плагин для word2003.
В общем, у вас есть возможность, посетив форум, сделать свой Ворд еще более легким, приятным и быстрым. Наш сайт о Microsoft Office Word даст ответ про: изменение таблиц в excel.
Не упускайте ее!