摘要:用程式建立 Outlook 約會項目
以下程式碼可以在 Outlook 中建立一個約會:
using Outlook = Microsoft.Office.Interop.Outlook;
......
namespace AppointmentDemo
{
public partial class Form1 : Form
{
Outlook.Application m_Outlook = new Outlook.Application();
private void btnCreateAppointment_Click(object sender, EventArgs e)
{
Outlook.NameSpace ns;
Outlook.MAPIFolder contactsFolder;
Outlook.AppointmentItem apptItem;
ns = m_Outlook.GetNamespace("mapi");
contactsFolder = ns.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderContacts);
// Create appointment
apptItem = (Outlook.AppointmentItem) m_Outlook.CreateItem(Outlook.OlItemType.olAppointmentItem);
apptItem.Subject = "與達文西的約會";
apptItem.Location = "羅浮宮";
apptItem.AllDayEvent = true;
apptItem.Start = DateTime.Now.AddHours(1);
apptItem.End = DateTime.Now.AddHours(2);
apptItem.Save();
MessageBox.Show("新增約會完成!");
}
}
}
以下 VBA 範例取自 http://www.outlookcode.com/codedetail.aspx?id=788),可以從 Excel 檔案中匯入約會項目:
Sub ImportAppointments()
Dim exlApp As Excel.Application
Dim exlWkb As Workbook
Dim exlSht As Worksheet
Dim rng As Range
Dim itmAppt As Outlook.AppointmentItem
Dim aptPtrn As Outlook.RecurrencePattern
Dim fso As FileSystemObject
Dim fl As File
Set exlApp = New Excel.Application
strFilepath = exlApp.GetOpenFilename
If strFilepath = False Then
exlApp.Quit
Set exlApp = Nothing
Exit Sub
End If
Set exlSht = Excel.Application.Workbooks.Open(strFilepath).Worksheets(1)
Dim iRow As Integer
Dim iCol As Integer
Dim tmpItm As Outlook.Link
Dim mpiFolder As MAPIFolder
Dim oNs As NameSpace
Set oNs = Outlook.GetNamespace("MAPI")
Set mpiFolder = oNs.GetDefaultFolder(olFolderContacts)
iRow = 2
iCol = 1
While exlSht.Cells(iRow, 1) <> ""
Dim cnct As ContactItem
Set itmAppt = Outlook.CreateItem(olAppointmentItem)
itmAppt.Subject = exlSht.Cells(iRow, 1)
Set cnct = mpiFolder.Items.Find("[FullName] = " & exlSht.Cells(iRow, 2))
If cnct Is Nothing Then
Set cnct = Outlook.CreateItem(olContactItem)
cnct.FullName = exlSht.Cells(iRow, 2)
cnct.Save
End If
itmAppt.Categories = exlSht.Cells(iRow, 3)
itmAppt.Start = exlSht.Cells(iRow, 4)
itmAppt.AllDayEvent = True
itmAppt.Links.Add cnct
Set aptPtrn = itmAppt.GetRecurrencePattern
aptPtrn.StartTime = exlSht.Cells(iRow, 5)
aptPtrn.EndTime = exlSht.Cells(iRow, 6)
aptPtrn.RecurrenceType = olRecursYearly
aptPtrn.NoEndDate = True
If aptPtrn.Duration > 1440 Then aptPtrn.Duration = aptPtrn.Duration - 1440
Select Case exlSht.Cells(iRow, 7)
Case "No Reminder"
itmAppt.ReminderSet = False
Case "0 minutes"
itmAppt.ReminderSet = True
itmAppt.ReminderMinutesBeforeStart = 0
Case "1 day"
itmAppt.ReminderSet = True
itmAppt.ReminderMinutesBeforeStart = 1440
Case "2 days"
itmAppt.ReminderSet = True
itmAppt.ReminderMinutesBeforeStart = 2880
Case "1 week"
itmAppt.ReminderSet = True
itmAppt.ReminderMinutesBeforeStart = 10080
End Select
itmAppt.Save
iRow = iRow + 1
Wend
Excel.Application.Workbooks.Close
exlApp.Quit
Set exlApp = Nothing
End Sub