Тема: Получение значения переменной из формы в модуль

Проблема: перед запуском определенной программы запускаю UserForm, в которой при нажатии кнопки, переменной присваивается определенное значение. Как мне это значе-ние использовать во внешней процедуре "Autocad Objects".
Код для процедуры "Autocad Objects":

Public Sub GetMyBlockRefAtts()
 UserForm1.Show
MsgBox UserForm1.s2
End Sub

Код для формы UserForm1:

Public s1 As Integer
Private Sub CommandButton1_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
s1 = 12
End Sub

Т.е. при запуске программы появляется форма, пользователь жмет CommandButton1, переменной присваивается значение =12, затем форма выгружается, управление передается процедуре GetMyBlockRefAtts(), где MsgBox-ом хочу высветить число 12. Не пашет, хотя в модуле формы объявил s1 как открытую (Public), т.е. по идее она должна быть доступна всем модулям.

Re: Получение значения переменной из формы в модуль

s2 s1
Или мне показалось имена переменных разные :)

Re: Получение значения переменной из формы в модуль

> Lestor GL
Объяви свою переменную в модуле,
в секции General:

(General)
Option Explicit
Public s1 As Integer

Re: Получение значения переменной из формы в модуль

> SmeL
Да, извиняюсь разные, но к сожалению не в этом дело!

Re: Получение значения переменной из формы в модуль

> LeonidSN
Забыл написать, переменная была объявлена, но не в этом дело, не работает.

Re: Получение значения переменной из формы в модуль

ИМХО: использовать объявление Global в отдельно модуле

Re: Получение значения переменной из формы в модуль

Lestor GL пишет:

Забыл написать, переменная была объявлена, но не в этом дело, не работает.

Может вот так получится?

Public s1 As Integer
....
UserForm1.Show
MsgBox s2

Re: Получение значения переменной из формы в модуль

Если я правильно понял логику работы программы, то вот работающий фрагмент:

'Код модуля Module1:
Option Explicit
Public s1 As Integer
Sub vMain()
    UserForm1.Show
    Call GetMyBlockRefAtts
End Sub
Private Sub GetMyBlockRefAtts()
    MsgBox s1
End Sub
'Код для формы UserForm1:
Option Explicit
Private Sub CommandButton1_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
    s1 = 12
    Me.Hide
End Sub