Создать задачу в Outlook из Excel VBA - PullRequest
0 голосов
/ 02 июня 2018

Я скопировал и вставил этот код и изменил его с форума в Google, чтобы создать задачу в моем Outlook на основе того, что находится в моей форме

With CreateObject("Outlook.Application").CreateItem(3)
    .Subject = UserForm1.TextBox1.Value & " " & UserForm1.ComboBox1.Value
    .StartDate = UserForm1.MonthView1.Value
    .DueDate = UserForm1.MonthView1.Value
    .ReminderTime = UserForm1.MonthView1.Value - 1
    .Body = UserForm1.TextBox1.Value & " " & UserForm1.ComboBox1.Value
    .Save
End With

Код не вылетает при отладкеэто, моя программа проходит через это нормально.Правильный ли метод?

Нужно ли где-нибудь вызывать CreateObject или я могу просто создать задачу из предложения With?

1 Ответ

0 голосов
/ 02 июня 2018

Чтобы начать сеанс автоматизации Outlook, вы можете использовать раннее или позднее связывание.Позднее связывание использует функцию GetObject или CreateObject для инициализации Outlook.Например, следующий код устанавливает переменную объекта для объекта Outlook Application, который является объектом самого высокого уровня в объектной модели Outlook.Весь код автоматизации должен сначала определить объект приложения Outlook, чтобы иметь возможность доступа к любым другим объектам Outlook.

Dim objOL as Object
Set objOL = CreateObject("Outlook.Application")

Чтобы использовать раннее связывание, сначала необходимо установить ссылку на библиотеку объектов Outlook.Затем вы можете использовать следующий синтаксис для запуска сеанса Outlook.

Dim objOL as Outlook.Application
Set objOL = New Outlook.Application

Большинство программных решений взаимодействуют с данными, хранящимися в Outlook.Outlook хранит всю свою информацию в папках интерфейса прикладных программ обмена сообщениями (MAPI).После того, как вы установите переменную объекта для объекта приложения Outlook, вы обычно будете устанавливать объект пространства имен для ссылки на MAPI, как показано в следующем примере.

Set objOL = New Outlook.Application
Set objNS = objOL.GetNameSpace("MAPI")
Set objFolder = objNS.GetDefaultFolder(olFolderContacts)

Как только вы установите переменную объекта для ссылки наВ папке, содержащей элементы, с которыми вы хотите работать, вы используете соответствующий код для выполнения своей задачи, как показано в следующем примере.

Sub CreateNewDefaultOutlookTask()
  Dim objOLApp As Outlook.Application
  Dim NewTask As Outlook.TaskItem
  ' Set the Application object
  Set objOLApp = New Outlook.Application
  ' You can only use CreateItem for default items
  Set NewTask = objOLApp.CreateItem(olTaskItem)
  ' Display the new task form so the user can fill it out
  NewTask.Display
  ' you can replace the .Display method with your own code for setting up the task item
End Sub

PS Не забудьте добавить ссылку COM COM для Outlook.В меню Сервис выберите пункт Ссылки.В поле «Ссылки» щелкните, чтобы выбрать библиотеку объектов Microsoft Outlook, а затем нажмите кнопку «ОК».

ПРИМЕЧАНИЕ. Если библиотека объектов Microsoft Outlook не отображается в поле «Доступные ссылки», найдите на жестком диске файл Msoutl * .olb.Если вы не можете найти этот файл, вы должны запустить программу установки Microsoft Outlook, чтобы установить его, прежде чем продолжить.

...