3〜4人の "忙しい"人とミーティングをスケジュールします。スケジュールアシスタントを使用して利用可能な時間を取得および更新するのは面倒な作業です。複数の電子メールアドレスの空き時間を取得します。
提供された電子メールアドレスに基づいて利用可能な時間を表示するために、Excelマクロを作成しようとしています(Outlookを開いた状態で)。
このマクロは、日付がわかっている(完了している)場合に会議を作成します。日付がわからない場合は、誰もが自由である日付をスプレッドシートに印刷する必要があります。
すべてのユーザーが同じサーバーにあります。
Sub GetFreeBusyInfo()
私は助けが必要です。
1.それは、個々の可用性を印刷することができます - しかし、私は、私は結果が「2013年7月1日午前三時に表示してもらうにはどうすればよいグループ全体
2.ための空き/予約済み情報が必要 - 4:00 PM EST "フォーマット?
Option Explicit
Sub CheckAvail()
Dim myOutlook As Object
Dim myMeet As Object
Dim i As Long
'Create the Outlook Session
Set myOutlook = CreateObject("Outlook.Application")
'Create the AppointmentItem
Set myMeet = myOutlook.CreateItem(1)
myMeet.MeetingStatus = 1
i = 23
'Start at row 23
If Cells(i, 11) <> "" Then
'Add Recipients
Do Until Trim(Cells(i, 10).Value) = ""
'Add all recipients
myMeet.Recipients.Add Cells(i, 10)
i = i + 1
Loop
i = 23
myMeet.Start = Cells(i, 11).Value
'Set the appointment properties
myMeet.Subject = Cells(i, 12).Value
myMeet.Location = Cells(i, 13).Value
myMeet.Duration = Cells(i, 14).Value
myMeet.ReminderMinutesBeforeStart = 88
myMeet.BusyStatus = 2
myMeet.Body = Cells(i, 15).Value
myMeet.Save
myMeet.Display
Else
Call GetFreeBusyInfo
End If
End Sub
Public Sub GetFreeBusyInfo()
Dim myOutlook As Object
Dim myMeet As Object
Dim myNameSpace As Object
Dim myRecipient As Object
Dim myFBInfo As String, k As Long, j As Long, i As Long
'Create the Outlook Session
Set myOutlook = CreateObject("Outlook.Application")
Set myMeet = myOutlook.CreateItem(1)
myMeet.MeetingStatus = 1
i = 23
Do Until Trim(Cells(i, 10).Value) = ""
'Add all recipients
myMeet.Recipients.Add Cells(i, 10)
i = i + 1
Loop
Set myNameSpace = myOutlook.GetNamespace("MAPI")
k = 1
i = 23
Do Until Trim(Cells(i, 10).Value) = ""
k = k + 1
Set myRecipient = myNameSpace.CreateRecipient(Cells(i, 10).Value)
On Error GoTo ErrorHandler
j = 2
Cells(k, j) = Cells(i, 10).Value
Do Until Trim(Cells(i, 10).Value) = ""
myFBInfo = myRecipient.FreeBusy(#7/1/2013#, 60)
j = j + 1
Cells(k, j) = myFBInfo
i = i + 1
Loop
Loop
myMeet.Close
ErrorHandler:
MsgBox "Cannot access the information. "
End Sub
@KazJaw私はそれを追加しました。可能であればお手伝いください。ありがとう! – todayspresent
おそらく左のフィールドからの質問ですが、Excelの代わりにOutlookにVBAを書くことを検討しましたか? ただし、FreeBusyの場合、これは役に立ちますか? https://msdn.microsoft.com/en-us/library/office/aa220097(v=office.11).aspx カスタムdatetime形式の場合は、format()関数と文字列関数の組み合わせを使用します。異なるタイムゾーンを処理する必要がある場合は、それらをすべてGMT/UTCなどの標準タイムゾーンに変換する関数も作成します。 – stifin