0

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実行するたびにエラーが発生するため、ループ内の変数の割り当てに問題があると思います。

4

3 に答える 3

0

oOutlookに割り当てられることはありませんNothing。おそらく、に設定するつもりでしたApplication

また、最後にローカル変数を設定するNothingのは冗長なので、削除してください。

于 2012-06-29T18:31:59.457 に答える