Help!!! Обработка событий

Программирование на Visual Basic for Applications
MAXII
Начинающий
Начинающий
 
Сообщения: 7
Зарегистрирован: 26.06.2003 (Чт) 20:19
Откуда: г. Рязань

Help!!! Обработка событий

Сообщение MAXII » 30.06.2003 (Пн) 16:07

Здравствуйте!

Помогите разобраться с обработкой событий в OutLook`e

Напишите плиз пример события Explorer_Activate или другого события,
но не событий объекта Application
________________________

Besr
regards
MAX

SergeySV
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 124
Зарегистрирован: 17.04.2003 (Чт) 14:39
Откуда: Россия, Москва

Re: Help!!! Обработка событий

Сообщение SergeySV » 30.06.2003 (Пн) 17:37

MAXII писал(а):Здравствуйте!

Помогите разобраться с обработкой событий в OutLook`e

Напишите плиз пример события Explorer_Activate или другого события,
но не событий объекта Application


А что тебе конкретно надо??? что хочешь получить...?

У меня, например, прога получает известие о приходе нового письма в Outlook и лезет его забирать...
Главное двигаться не быстрее, чем думает твоя голова.

MAXII
Начинающий
Начинающий
 
Сообщения: 7
Зарегистрирован: 26.06.2003 (Чт) 20:19
Откуда: г. Рязань

Сообщение MAXII » 01.07.2003 (Вт) 14:05

Как перехватить событие возникающее при нажатии на пункт меню
"Открыть в новом окне" и вывести какое нибудь сообщение при возникновении данного события.

Кнопка (элемент меню) "Открыть в новом окне" имеет ID - 1574

Код: Выделить всё
  Dim b As CommandBarControl
  Dim s As String
  Set b = Application.ActiveExplorer.CommandBars.FindControl(, 1574)
________________________

Besr
regards
MAX

Vitaly1
Брехман
Брехман
 
Сообщения: 1578
Зарегистрирован: 30.12.2002 (Пн) 16:35
Откуда: Russia, Mosсow

Сообщение Vitaly1 » 01.07.2003 (Вт) 14:40

Надо назначить к пункту меню макрос:

Код: Выделить всё
Application.CommandBars.ActiveMenuBar.Controls("Надпись или индекс 1 пункта").Controls("Надпись или индекс 2 пункта").OnAction = "Имя макроса"

Если в caption меню есть подчеркнутые буквы, то надо перед этой буквой писать &.

Код: Выделить всё
Для отмены макроса к пункту меню надо:
Application.CommandBars.ActiveMenuBar.Controls("Надпись или индекс 1 пункта").Controls("Надпись или индекс 2 пункта").OnAction = nul


Не знаю как для Out... а для Excel макрос для данного пункта меню должен быть в книге общих макросов.

MAXII
Начинающий
Начинающий
 
Сообщения: 7
Зарегистрирован: 26.06.2003 (Чт) 20:19
Откуда: г. Рязань

Сообщение MAXII » 01.07.2003 (Вт) 17:49

Во певых (может это и не важно) но за Application. нет CommandBars`a, Чем его заменить?

Я пишу так:

Код: Выделить всё

Public Sub OurMacros()
Dim a As Byte
a = MsgBox("df", , "klk")
End Sub

Private Sub Application_Startup()

Application.ActiveExplorer.CommandBars("Context Menu").Controls("Откр&ыть в новом окне").OnAction = "OurMacros"
end sub


Кстати OurMacros втыкал как в ThisOutlookSession так и в Moduls
но получаю ошибку
    Invalid procedure call or argument


Чего здесь не так?
________________________

Besr
regards
MAX

Vitaly1
Брехман
Брехман
 
Сообщения: 1578
Зарегистрирован: 30.12.2002 (Пн) 16:35
Откуда: Russia, Mosсow

Сообщение Vitaly1 » 01.07.2003 (Вт) 17:57

Если этот пункт в контекстном меню, то надо знать имя контекстного меню, скорее всего это "Context Menu" не имя меню.

А что за этим объектом ActiveExplorer CommandBars есть?
К сожалению в OutLook`e не программировал, там вероятно, чуть чуть не так, как в Word в Excel, но думаю что назначить макрос на имеющийся пункт меню можно.

MAXII
Начинающий
Начинающий
 
Сообщения: 7
Зарегистрирован: 26.06.2003 (Чт) 20:19
Откуда: г. Рязань

Сообщение MAXII » 02.07.2003 (Ср) 16:11

Context Menu есть.
Перебирая в цикле все имена CommandBars`a изначально, как только OutLook загрузился, обнаруживается что Context Menu нет.
И действительно я не могу реализовать макрос.
Код не компелиться!
Но когда что то открыто с помощью этого контекстного меню,(например кликнул по нему/открыл в новом окне "входящие")
Опять перебирая в цикле имена появится Context Menu (видимо оно становится активным в данном сеансе OutLook).
Код

Application.ActiveExplorer.CommandBars("Context Menu").Controls("Откр&ыть в новом окне").OnAction = "OurMacros"

выполняется и соответственно макрос выполняется.

Почему изначально Context Menu в CommandBars`ах нет?

Как быть в этом случае?
________________________

Besr
regards
MAX


Вернуться в VBA

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 64

    TopList  
cron