powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Работа с формами! Word (VBA)
18 сообщений из 18, страница 1 из 1
Работа с формами! Word (VBA)
    #32717733
Gotar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброго времени суток...

У меня есть проблемма, я изучаю VBA и сталкнулся с необходимостью использовать формы. В общем я не знаю как привязать к форме какие либо функции, например:
мне надо, что бы в определенной строчке (Lable) при вызове формы отображалось сочетание клавиш для определенного макроса. Я уже перерыл всю книгу VBA 2002 и в принципе ничего подобного не нашел, там только примеры использования форм, но не привязка какого либо макроса к самой форме. В хелпе тоже особо существенного не смог найти, единственное, что я нашел это initialize. На сколько я понимаю это зарузка каких - либо параметров в форму при её загрузке. В общем я в полной растерянности, так как не знаю как с этим работать.

Единственное, что я смог это сделать что бы при нажатии кнопки вылетал мэсадж бокс, с требуемой информацией, а надо что бы эта информация была в нужном мне Lable.

Помогите разобраться, или хотя бы направте мои мысли в нужную сторону.

Заранее благодарен.
...
Рейтинг: 0 / 0
Работа с формами! Word (VBA)
    #32717736
Один
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GotarЕдинственное, что я смог это сделать что бы при нажатии кнопки вылетал мэсадж бокс, с требуемой информацией, а надо что бы эта информация была в нужном мне Lable.
Вы сделали самое главное :)
Теперь вместо MsgBox напишите Label.Caption = ваша информация
...
Рейтинг: 0 / 0
Работа с формами! Word (VBA)
    #32719028
Gotar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо за ответ, но проблемма немного в другом.... Есть форма..

Sub Form1_initialize()

допустим есть лэйбл1

CustomizationContext = ActiveDocument
For Each myKey1 In _
KeysBoundTo(KeyCategory:=wdKeyCategoryCommand, _
Command:="a_Obshiy_zagalovok")
myStr1 = myStr1 & myKey1.KeyString & vbCr
Next myKey1
Label1.Caption = myStr1

Но при запуске формы лэйбл1 остается пустым... Мое подозрение в том, что я не правильно понимаю структуру формы и метод её програмирования.

Где у меня ошибка? (По мимо ДНК 8)) )
...
Рейтинг: 0 / 0
Работа с формами! Word (VBA)
    #32730711
Gotar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
up 8(

Помогите.... ничего не выходит.... Как побороть форму?
...
Рейтинг: 0 / 0
Работа с формами! Word (VBA)
    #32730757
Фотография Magnus23
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В АКЦЕСЕ я и сам непонимаю как онон варится, но предложил бы попробовать то же самое в Form_Load

Magnus
...
Рейтинг: 0 / 0
Работа с формами! Word (VBA)
    #32730782
Gotar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Тут трабла есть 8( форма вызывается form.show или form.load, но ... но ... но... как я понимаю то загрузка информации в форму происходит при private sub form_initialize() , но если посмотреть хелп, то там сказано, что при form.load -initialize не пашет.... работает только с form.show.... в общем мне друг сказал, что с этими формами вообще гемор..... Вот в каком то VB (еще в школе преподавали) вообще было клева, рисуешь форму, и скриптиш отдельный элемент будь то кнопка, фрейм, лэйбл, как пропрет, а в VBA хренушки, называется сначала угадай как 8(( Грусно как-то 8(
Неужели не кто с формами не разобрался?
...
Рейтинг: 0 / 0
Работа с формами! Word (VBA)
    #32730788
Фотография Magnus23
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
initialize вызывается всегда при создании формы первый раз. Если после этого ты ее скроешь(Hide) и захочешь позже вновь пказать(Show) то событие уже не вызывается.

Все-таки попробуй поместить код в Form_Load

Magnus
...
Рейтинг: 0 / 0
Работа с формами! Word (VBA)
    #32730821
Gotar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Не пашет 8((((
Блин я че-то торможу по страшному.....
Короче создаем форму.. Кликаем - View Code там пишем
Sub Form1_initialize()
CustomizationContext = ActiveDocument
For Each myKey1 In _
KeysBoundTo(KeyCategory:=wdKeyCategoryCommand, _
Command:="a_Obshiy_zagalovok")
myStr1 = myStr1 & myKey1.KeyString & vbCr
Next myKey1
Label1.Caption = myStr1
End Sub

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

Sub testing()
Dim UserForm1 As UserForm
Form1.Show (vbModeless)
End Sub

Я делаю так вот..... Форма вывалевается, но пустая, только с тем что я на ней по нарисовал....

Вопрос так это делается или не так?
...
Рейтинг: 0 / 0
Работа с формами! Word (VBA)
    #32730824
Фотография Magnus23
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Было б это VB я б тебе расписал. А так , пес его знает если честно. Придут знатоки VBA - расскажут.

Magnus
...
Рейтинг: 0 / 0
Работа с формами! Word (VBA)
    #32730825
Gotar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Можешь расписать как это в VB? Я пологаю что структура должна быть схожая...
...
Рейтинг: 0 / 0
Работа с формами! Word (VBA)
    #32730830
Alexey Kudinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gotar
Sub Form1_initialize()
...
End Sub

Есть предположение, что Sub Form1 _initialize не вызываается, т.к. она просто не привязана к какому-либо событию. Попробуйте перенести ваш код в

UserForm _Initialize
...
Рейтинг: 0 / 0
Работа с формами! Word (VBA)
    #32730833
Фотография Magnus23
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как уже сказал, я бы поместил этот код в Form_Load.
Вероятно в Акцесе другая последовательность вызова событий.

Magnus
...
Рейтинг: 0 / 0
Работа с формами! Word (VBA)
    #32730838
Alexey Kudinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Magnus23Как уже сказал, я бы поместил этот код в Form_Load.
Вероятно в Акцесе другая последовательность вызова событий.
А я что-то вообще здесь упоминания про Access не нашел....
Просто вызов с префиксом Form1_ как-то вообще не похож на обработчик события. Но я с VBA тоже не работал уже очень давно.
...
Рейтинг: 0 / 0
Работа с формами! Word (VBA)
    #32730839
Alexey Kudinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Более того, название треда Работа с формами! Word (VBA)
:)
...
Рейтинг: 0 / 0
Работа с формами! Word (VBA)
    #32730842
Gotar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Хм... не работает всеравно.... Я боюсь дело в том что не совсем ясна структура формы в VBA.

Во первых есть тело формы, которая по идее несет основной код. Так же есть всякие более мелкие элементы которые живут непосредственно на форме, такие как фрэймы, кнопки, лэйблы и.т.д. Они скриптятся либо отдельно, либо непосредственно в самой форме.

В книжке VBA 2002 есть пример, но он показывает как скриптить не посредственно саму форму, например чтоб вываливающиеся таблички содержали какую-то инфу, кнопки пахали и тд итп.....

В книге вот такая структура:

Private Sub UserForm_Initialize()
...
...
...
Private Sub Frame_Click(в книге только клики рассматриваются)()
...
...
...
End Sub

Private Sub Lable_Click()
...
...
...
End Sub

Private Sub Button_Click()
...
...
...
End Sub


End Sub

Вот такие пироги....
...
Рейтинг: 0 / 0
Работа с формами! Word (VBA)
    #32730846
Фотография Magnus23
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey Kudinov Magnus23Как уже сказал, я бы поместил этот код в Form_Load.
Вероятно в Акцесе другая последовательность вызова событий.
А я что-то вообще здесь упоминания про Access не нашел....
Просто вызов с префиксом Form1_ как-то вообще не похож на обработчик события. Но я с VBA тоже не работал уже очень давно.
Это у меня снова глюки, VBA все время ассоциируется с акцесом :).
...
Рейтинг: 0 / 0
Работа с формами! Word (VBA)
    #32730853
Alexey Kudinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gotar
Последовательно опишите свои действия.
Я делаю так:
Открываю MSWord 2000
Иду Сервис-Макрос-Редактор Visual Basic
Нажимаю Insert New Form (слева вверху)
Появляется форма.
Кладу на нее label из Toolbox
Делаю DblClick на Label
Появляется редактор VBA
Делаю Ctrl+A
Делаю Shift + Ins и вставляю следующий текст
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
Private Sub UserForm_Initialize()
CustomizationContext = ActiveDocument
For Each myKey1 In _
    KeysBoundTo(KeyCategory:=wdKeyCategoryCommand, Command:="FileNew")
    myStr1 = myStr1 & myKey1.KeyString & vbCr
Next myKey1
Label1.Caption = myStr1
End Sub
Нажимаю F5
Появляется форма где вместо Label1 я вижу Shortcut к команде FileNew, а именно Ctrl+N

А как делаете вы ?
...
Рейтинг: 0 / 0
Работа с формами! Word (VBA)
    #32730858
Gotar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Будете смеяться.... у меня тоже это сработало гы гы... Тока вот в чем весь сыр бор, форма стряпана давно и на неё я клею макрос.... гы гы... Есть вариант в том что лэйбл слишком маленький и текст туда не влезает, хотя такое врядли возможно, скорее всего просто была бы часть тектса...

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

Бум сидеть и разбираться, да к стати, в связи с тем, что этот вопрос частично решон, появляется следующий 8))) Как можно через форму поменять разкладку горячих клавиш для макросов?

То есть, нужно через форму считать клавиши, и влепить их сочетание как горячие клавиши для макроса 8)
...
Рейтинг: 0 / 0
18 сообщений из 18, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Работа с формами! Word (VBA)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]