Dim myOlApp As Outlook.Application, data As String
Set myOlApp = CreateObject("Outlook.Application")
For k% = 1 To n%
data = datam(k%) & " 9:30:00 AM"
...
Next
запрос о подверждении действия
сообщения такие выскакивают:
"программа пытается автоматически получить доступ к адресам электронной почты, хранящимся в Outlook.
Разрешить действие? ..."
ДА/НЕТ/СПРАВКА
"проргамма пытается автоматически послать письмо от вашего имени..." ДА/НЕТ/СПРАВКА
data(n) - дата, когда нужно выполнить тот или иной отчёт
reportm(n) - название отчёта
makerm(n) - адрессное имя человека
и константы olga..jack - адрессное имя человека (нужны если отчёт нужно выполнять всем вместе). всё что нужно это исключить "алертсы" либо отвечать на них "да". в экселе я обычно писал
Application.DisplayAlerts = False (удаляю лист когда к примеру) Application.DisplayAlerts = true
но в аутлуке так не получилось.
pashulka, спасибо за ответ, но есть ли вариант попроще, чтоб избежать множества кликов при запуске макроса?
код:
Цитата:
For k% = 1 To n%
Dim data As String
data = datam(k%) & " 9:30:00 AM"
Set myOlApp = CreateObject("Outlook.Application")
Set myItem = myOlApp.CreateItem(olAppointmentItem)
myItem.MeetingStatus = olMeeting
myItem.Subject = reportm(k%)
'myItem.Location = "Conference Room B"
myItem.Start = data
myItem.Duration = 90
If words(k%) = "all" Then
myRequiredAttendee = myItem.Recipients.Add(olga)
myRequiredAttendee.Type = olRequired
myRequiredAttendee = myItem.Recipients.Add(vetal)
myRequiredAttendee.Type = olRequired
myRequiredAttendee = myItem.Recipients.Add(vovka)
myRequiredAttendee.Type = olRequired
myRequiredAttendee = myItem.Recipients.Add(lesya)
myRequiredAttendee.Type = olRequired
myRequiredAttendee = myItem.Recipients.Add(jack)
myRequiredAttendee.Type = olRequired
Else:
Set myRequiredAttendee = myItem.Recipients.Add(makerm(k%))
myRequiredAttendee.Type = olRequired
End If
'myItem.Display
myItem.Save
myItem.Send
Next
Dim data As String
data = datam(k%) & " 9:30:00 AM"
Set myOlApp = CreateObject("Outlook.Application")
Set myItem = myOlApp.CreateItem(olAppointmentItem)
myItem.MeetingStatus = olMeeting
myItem.Subject = reportm(k%)
'myItem.Location = "Conference Room B"
myItem.Start = data
myItem.Duration = 90
If words(k%) = "all" Then
myRequiredAttendee = myItem.Recipients.Add(olga)
myRequiredAttendee.Type = olRequired
myRequiredAttendee = myItem.Recipients.Add(vetal)
myRequiredAttendee.Type = olRequired
myRequiredAttendee = myItem.Recipients.Add(vovka)
myRequiredAttendee.Type = olRequired
myRequiredAttendee = myItem.Recipients.Add(lesya)
myRequiredAttendee.Type = olRequired
myRequiredAttendee = myItem.Recipients.Add(jack)
myRequiredAttendee.Type = olRequired
Else:
Set myRequiredAttendee = myItem.Recipients.Add(makerm(k%))
myRequiredAttendee.Type = olRequired
End If
'myItem.Display
myItem.Save
myItem.Send
Next
devil_incarnate, Ничего особого сложного там не предлагается, впрочем, если говорить о совсем простом варианте, то можно попробовать перед отправкой письма имитировать нажатие клавиши ENTER, т.е. использовать SendKeys "{ENTER}" , но если этот способ и сработает, то это будет крайне ненадёжный путь.
Pashulka, не могли бы Вы объяснить как использовать второй способ, ведь у меня не сообщение в чистом виде, а отправка встречи. я пробывал приконнектить как-то этот код, но не вышло. заранее благодарен!
devil_incarnate, Помочь с примером не могу, т.к. MS Outlook у меня отсутствует.