powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Отправить авто ответ после смены флага "К исполнению" на "Завершённую" в Outlook
2 сообщений из 2, страница 1 из 1
Отправить авто ответ после смены флага "К исполнению" на "Завершённую" в Outlook
    #38850111
Miral
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день,

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

Задачка такова:

В Outlook-е письма складываются в определённую папку и помечаются "К исполнению"
После смены флага на "Завершённое" на это письмо надо отправить ответ с определённым текстом.

Подскажите как это реализовать VBA.

Спасибо.
...
Рейтинг: 0 / 0
Отправить авто ответ после смены флага "К исполнению" на "Завершённую" в Outlook
    #38851779
Miral
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем привет.

Долго копался, но решил всё сам.
Вот решение.
Код: 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.
Option Explicit
Private WithEvents Items As Outlook.Items

Private Sub Application_Startup()
Dim Ns As Outlook.NameSpace
Dim MyInbox As Folder
' Папка за которой будем следить
Const fname As String = "Папка_1"

Set Ns = Application.GetNamespace("MAPI")
Set MyInbox = Ns.GetDefaultFolder(olFolderInbox)
Set Items = MyInbox.Folders(fname).Items

End Sub

Private Sub Items_ItemChange(ByVal Item As Object)
' Выбираем категорию которой будем помечать письма 
Const CategoryName As String = "Синяя категория"
If Item.FlagStatus = 1 Then
If Item.Categories <> CategoryName Then
Item.Categories = CategoryName
Item.Save
ReplyMail Item
End If
End If
End Sub

Private Sub ReplyMail(Item As Object)
Dim obj As Object
Dim oReply As Outlook.MailItem
Const sDELIM As String = vbLf
' Префикс автоответа
Const FIX_SUBJECT As String = "АВТО-ОТВЕТ: "
Const BodyPrefix As String = "Работа выполнена." & sDELIM & sDELIM & "-~+~-~+~-~+~-~+~-~+~-~+~-~+~-~+~-" & sDELIM & sDELIM

' Ссылка на открытый в данный момент или выбранный элемента
Select Case True
Case TypeOf Application.ActiveWindow Is Outlook.Inspector
Set obj = Application.ActiveInspector.CurrentItem
Case Else
With Application.ActiveExplorer.Selection
If .Count Then
Set obj = .Item(1)
End If
End With
If obj Is Nothing Then
Exit Sub
End If
End Select

If TypeOf obj Is Outlook.MailItem Then

Set oReply = obj.Reply
If InStr(1, oReply.Subject, FIX_SUBJECT, vbTextCompare) = 0 Then
oReply.Subject = FIX_SUBJECT & obj.Subject
oReply.Body = BodyPrefix & oReply.Body
End If
oReply.Send
End If

End Sub

Вдруг кому пригодится.

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


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