Outlook 2010 予定表のすべてのアイテムのタイム ゾーンを変更したいと考えています。
ループ内で反復されるコレクションのアイテムをどのように扱うかについて、私は混乱しています。私の主なバックグラウンドはJavaであり、ループを理解しているため、単一の変数がダミー変数として使用され、コレクション内のすべてのアイテムの値が順番に取得されます。通常、このような FOR ループには特別な代入は必要ありません。ループを継続するために、何らかの方法で変数を手動で進める必要がありますか?
これが私のコードです:
Public Sub TZFix()
Dim oAppointmentItem As Outlook.AppointmentItem
Dim tzs As Outlook.TimeZones
Dim tzCentral As Outlook.TimeZone
Dim oAppointments As Object
Dim oNS As Outlook.NameSpace
Set oNS = oOutlook.GetNamespace("MAPI")
Set oAppointments = oNS.GetDefaultFolder(olFolderCalendar)
Set tzs = Application.TimeZones
Set tzCentral = tzs("Central Standard Time")
For Each oAppointmentItem In oAppointments.Items
Set oAppointmentItem.StartTimeZone = tzCentral
Set oAppointmentItem.EndTimeZone = tzCentral
Next
End Sub
Error 91: Object Variable or With block variable not set
実行するたびにエラーが発生するため、ループ内の変数の割り当てに問題があると思います。