Можно ли запустить из VBS'a?
Dim myNamespace As Outlook.NameSpace
Set myolApp = CreateObject("Outlook.Application")
Set myNamespace = myolApp.GetNamespace("MAPI")
Set myolApp.ActiveExplorer.CurrentFolder = _
myNamespace.GetDefaultFolder(olFolderCalendar)
Dim olApp As Outlook.Application
Dim Sobytie As Outlook.AppointmentItem
Dim mTime As String
Set olApp = New Outlook.Application
Set Sobytie = olApp.CreateItem(olAppointmentItem)
mTime = Date
Sobytie.Start = CDate(mTime)
Sobytie.Subject = "Событие"
Sobytie.AllDayEvent = True
Sobytie.Save
End Sub
Можно ли этот код подправить, чтобы запускать из файла с расширением vbs (без необходимости открытия самого Аутлюка)?
В данный момент при попытке создать файл sobytie.vbs с таким кодом у меня пишется "Ошибка компиляции на строке 1, символ 11". Т.е. может быть нельзя вообще обращаться к Аутлюку не из самого Аутлюка?
P.S. В самом Аутлюке код работает нормально.
По крайней мере, надо сделать следующее:
1. Строки [color=blue]Sub Sobytie()[/color] и [color=blue]End Sub[/color] убрать совсем.
2. Из выражений объявления переменных убрать указания типов данных (в VBS все данные имеют тип Variant).
Например, [color=red]Dim mTime As String[/color] должно превратиться в [color=green]Dim mTime[/color]
3. Строку
[color=red]Set olApp = New Outlook.Application[/color]
заменить на строку
[color=green]Set olApp = CreateObject("Outlook.Application")[/color]
Кстати, зачем создавать второй экземпляр класса Outlook.Application, когда один уже есть?
Dim myolApp
Set myolApp = CreateObject("Outlook.Application")
Set myNamespace = myolApp.GetNamespace("MAPI")
Set myolApp.ActiveExplorer.CurrentFolder = myNamespace.GetDefaultFolder(olFolderCalendar)
[COLOR="DarkGreen"]'на этой строке пишет:
строка 5, символ 1, Операци не выполнена.
Один или неск. параметров имеют недопустимые значения.
Код 80070057. Источник Microsoft Office Outlook
наверное не нравится ".ActiveExplorer."[/COLOR]
Dim Sobytie
Dim mTime
Set Sobytie = myolApp.CreateItem(olAppointmentItem)
mTime = Date & " 10:30:00 AM"
Sobytie.Subject = "мое событие"
Sobytie.Start = CDate(mTime)
Sobytie.Duration = 30
Sobytie.Save
Может быть надо просто как-то запустить саму программу:
[COLOR="DarkRed"]c:\Program Files\Microsoft Office\OFFICE11\OUTLOOK.EXE[/COLOR] ?
строка 5, символ 1, Операци не выполнена.
Один или неск. параметров имеют недопустимые значения...
1. Задайтесь вопросом, хватает ли параметров методу GetDefaultFolder?
2. Если с количеством параметров всё в порядке, то упростите левую часть оператора
[color=red]Set myolApp.ActiveExplorer.CurrentFolder[/color] = myNamespace.GetDefaultFolder(olFolderCalendar)
Не надо. Экземпляр приложения создаётся при выполнении оператора
[color=blue]Set myolApp = CreateObject("Outlook.Application")[/color]
Вы не видите окна приложения, потому что оно скрыто. Увидеть его можно так:
MsgBox "Пауза"
Кстати, не забывайте перед завершением сценария закрывать процесс приложения: