Гость
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Не запускаются макросы Outlook / 6 сообщений из 6, страница 1 из 1
10.02.2016, 15:05
    #39167666
Не запускаются макросы Outlook
Добрый день, Формучане!

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

Есть макрос который запускается от события 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
10.02.2016, 15:08
    #39167667
Не запускаются макросы Outlook
Забыл добавить: в настройках безопастности все что может блокировать - отключено.
...
Рейтинг: 0 / 0
10.02.2016, 17:13
    #39167832
The_Prist
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не запускаются макросы Outlook
Робин_Бобин,

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

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


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

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

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

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


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

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


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