Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.06.2009, 17:30   #1
aval
Пользователь
 
Регистрация: 08.06.2009
Сообщений: 68
Вопрос Обработка событий формы

Доброго времени суток!
Помогите с проблемой: можно ли (для сокращения кода) внутри формы при выполнении процедуры CommandButton1_Click и ListBox1_DblClick
сделать ссылку на одинаковую часть кода с помощью ссылки типа Application.Run "Яблоко"? Sub Яблоко() нельзя переместить в обычный модуль, т.к. в ней есть ссылки на объекты самой формы.
aval вне форума Ответить с цитированием
Старый 17.06.2009, 17:50   #2
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Не только можно, но и нужно.

Код:
Private Sub TextBox2_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
    Яблоко
End Sub

Private Sub CommandButton1_Click()
    Яблоко
End Sub

Sub Яблоко()
    MsgBox Me.Caption, vbInformation, "Заголовок формы"
    Me.CommandButton1.Enabled = False
End Sub
EducatedFool вне форума Ответить с цитированием
Старый 17.06.2009, 18:12   #3
tolikman
Форумчанин
 
Регистрация: 25.08.2008
Сообщений: 159
По умолчанию

Типа в листбоксе выбираешь, а потом при двойном щелчке по листбоксу или по нажатию кнопки запускаем то, что выбрано в листбоксе. Проще будет через Select case перебирать соответствия и запускать нужное:
Код:
.......
str="Яблоко"
select case str
   case "Груша"
      Груша 'макрос (sub)
   case "Яблоко"
      Яблоко 'макрос (sub)
   .......
   
   case else
      Выполню_все_остальное 'макрос (sub)
end select
но скорее всего можно через API, сейчас сайт в закрамах поищу, где можно про это посмотреть...
tolikman вне форума Ответить с цитированием
Старый 17.06.2009, 18:17   #4
aval
Пользователь
 
Регистрация: 08.06.2009
Сообщений: 68
По умолчанию

Уважаемый EducatedFool !Пока висел мой вопрос я нашел ответ:
Call UserForms.Яблоко
Но Ваша подсказка - это вообще высший пилотаж. Огромное спасибо!
aval вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Обработка событий в Delphi SlavaSH Компоненты Delphi 19 30.03.2009 11:00
Обработка событий в C++ Builder BychkovVV Помощь студентам 3 02.03.2009 01:48
Обработка в Excel внешних событий pan Microsoft Office Excel 4 22.02.2009 17:26
обработка событий из консоли! nereus Общие вопросы Delphi 0 07.02.2007 15:33