powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Не запускаются макросы Outlook
6 сообщений из 6, страница 1 из 1
Не запускаются макросы Outlook
    #39167666
Добрый день, Формучане!

Голову сломал - не могу понять.

Есть макрос который запускается от события New_Mail

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
Private Sub AppLication_NewMail()
Dim tema As String
Dim Olbody As String
Dim zadacha As String
Dim OlTime As Date
Dim srok As Date
Dim fail As String
Dim poluchatel As String



tema = "ÅÏÌ:"
Set myOlApp = CreateObject("Outlook.Application")
Set myNameSpace = myOlApp.GetNamespace("MAPI")
Set myfolder = myNameSpace.GetDefaultFolder(olFolderInbox)
Set myfolder1 = myfolder.Folders("ÅÏÌ").Items
Set myitem = myfolder1.GetLast 'getlast - ïîñëåäíåå ïèñüìî!!!!
OlSubject = myitem.Subject

If myitem.UnRead = False Then 'áëîê
'Quit (WB)
Exit Sub
End If



If InStr(1, OlSubject, tema) <= 1 Then

 Z = MsgBox("&#208;&#224;&#225;&#238;&#242;&#229;&#237;&#234;&#224; &#239;&#240;&#232;&#235;&#229;&#242;&#229;&#235;&#224;, &#228;&#238;&#225;&#224;&#226;&#235;&#255;&#229;&#236; &#226; &#197;&#207;&#204;?", vbYesNo)
 If Z = 7 Then
 Exit Sub
 End If



 Olbody = myitem.Body
 OlTime = myitem.SentOn
 
 Set EX = CreateObject("Excel.Application")
 Set WB = EX.Workbooks.Open("1.xlsm")
 
 a = InStr(1, Olbody, "&#199;&#224;&#228;&#224;&#247;&#224;: ")
 b = InStr(a, Olbody, "%%") '&#239;&#238;&#236;&#229;&#237;&#255;&#242;&#252; &#237;&#224; %%
 c = b - a
 zadacha = Mid(Olbody, a + 8, c - 8)
 WB.Worksheets("&#203;&#232;&#241;&#242;1").Range("A2").Value = zadacha
 
 WB.Worksheets("&#203;&#232;&#241;&#242;1").Range("B2").Value = OlTime
 
 a = InStr(1, Olbody, "&#209;&#240;&#238;&#234;: &#228;&#238; ")
 b = InStr(a, Olbody, "%%") '&#239;&#238;&#236;&#229;&#237;&#255;&#242;&#252; &#237;&#224; %%
 c = b - a
 srok = Mid(Olbody, a + 9, c - 9)
 WB.Worksheets("&#203;&#232;&#241;&#242;1").Range("C2").Value = srok
  
 If InStr(1, Olbody, "&#208;&#224;&#225;&#238;&#247;&#232;&#233; &#244;&#224;&#233;&#235;: ") > 0 Then
 a = InStr(1, Olbody, "&#208;&#224;&#225;&#238;&#247;&#232;&#233; &#244;&#224;&#233;&#235;: ") '&#239;&#238;&#236;&#229;&#237;&#255;&#242;&#252; &#237;&#224; &#208;&#224;&#225;&#238;&#247;&#232;&#233; &#244;&#224;&#233;&#235;
 b = InStr(a, Olbody, "%%") '&#239;&#238;&#236;&#229;&#237;&#255;&#242;&#252; &#237;&#224; %%
 c = b - a
 fail = Mid(Olbody, a + 10, c - 10) '&#239;&#238;&#241;&#235;&#229; &#232;&#231;&#236;&#229;&#237;&#229;&#237;&#232;&#255; &#225;&#243;&#228;&#229;&#242; &#237;&#229; 10
 WB.Worksheets("&#203;&#232;&#241;&#242;1").Range("D2").Value = fail
 End If
 
 poluchatel = myitem.CC + "; " + myitem.To
 
 WB.Worksheets("&#203;&#232;&#241;&#242;1").Range("E2").Value = poluchatel
 
 
 
 MsgBox "&#229;&#241;&#242;&#252;"

 Else
  MsgBox "&#237;&#229;&#242;&#243;"
  Exit Sub
 End If
 WB.Application.Visible = True
 On Error GoTo 111
 WB.Application.Run "EMP_copy"
111
End Sub



Вопросы следующие:

Макрос не срабатывает при получение письма

макрос не срабатывает если поместить его в отдельный SUB в отдельном модуле и пытаться запустить с кнопки на панеле

При всем этом он отлично срабатывает если запускать его из обработчика.
...
Рейтинг: 0 / 0
Не запускаются макросы Outlook
    #39167667
Забыл добавить: в настройках безопастности все что может блокировать - отключено.
...
Рейтинг: 0 / 0
Не запускаются макросы Outlook
    #39167832
Фотография The_Prist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Робин_Бобин,

Где размещаете код макроса? В каком модуле?

P.S. Зачем при запуске из Outlook создавать второй его экземпляр принудительно?
Код: vbnet
1.
Set myOlApp = CreateObject("Outlook.Application")


Почему не обращаться к тому экземпляру, из которого запускаете код?
...
Рейтинг: 0 / 0
Не запускаются макросы Outlook
    #39167933
The_Prist,
NewMail запускаю из thisOutlookSession

авторP.S. Зачем при запуске из Outlook создавать второй его экземпляр принудительно?
Set myOlApp = CreateObject("Outlook.Application")

Почему не обращаться к тому экземпляру, из которого запускаете код?
Скорее по неопытности, как обратиться к тому что уже запущен? скорее всего в этом и проблема....
...
Рейтинг: 0 / 0
Не запускаются макросы Outlook
    #39168004
Фотография The_Prist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Робин_Бобин,

вместо
Код: vbnet
1.
Set myOlApp = CreateObject("Outlook.Application")


запишите
Код: vbnet
1.
Set myOlApp = Application
...
Рейтинг: 0 / 0
Не запускаются макросы Outlook
    #39168243
The_Prist,

Спасибо! теперь срабатывает!
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Не запускаются макросы Outlook
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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