bestehenden Termin per VBA editieren

Moderator: ModerationP

bestehenden Termin per VBA editieren

Beitragvon MJR10 » 14. Feb 2019, 13:04

Hallo zusammen,
ich möchte gerne ein Makro schreiben, mit dem ich einen bestehenden Termin ändern kann.
Konkret geht es darum ein Button in der Menüleiste fügt dem Termin eine Anzahl von Räumen hinzu. In meiner Firma haben wir 30 Besprechungszimmer, die alle quer verstreut sind. Dazu hab ich die Namen und möchte eben diese alle hinzufügen und dann über den Terminplanungsassistenten schauen welcher Raum frei ist.
ich weiß aber nicht wie ich den Termin selbst editiere, alle Makros die ich bislang angeschaut haben einen neuen Termin angelegt. ich hätte das gerne aber mit einem bestehenden Termin.

Kann mir jemand helfen wie ich den Termin ansprechen?

Gruß
Michael
MJR10
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 31
Registriert: 16. Jun 2011, 20:32

Re: bestehenden Termin per VBA editieren

Beitragvon halweg » 14. Feb 2019, 13:29

An die Kalender-Objekte kommst du je nachdem, ob der Termin in der Liste steht oder geöffnet ist über:
ActiveExplorer.Selection(1)
oder
ActiveInspector.CurrentItem
Über TypeName(ActiveWindow) kannst du herausfinden, ob eine Liste ("Explorer") oder ein Editierfenster ("Inspector") geöffnet ist.
Nach dem Ändern der Termineigenschaften .save nicht vergessen.

Viel Spaß bei deinem Vorhaben.

Und, bei der Gelegenheit: Wie odnest du Resourcen / Räume einem Termin zu? Ist das eine Exchange-Besonderheit?
Office 2002, 2010; Windows 7, 10
Benutzeravatar
halweg
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 470
Registriert: 21. Okt 2010, 08:04
Wohnort: Dresden

Re: bestehenden Termin per VBA editieren

Beitragvon MJR10 » 15. Feb 2019, 07:42

Danke für die schnelle Hilfe, jetzt klappt es.

Hier mal wie das fertige Makro nun aussieht ;)
Die Liste der Besprechungszimmer schaut natürlich nicht so aus, sondern jeder Raum hat einen Namen in Outlook, der im Makro natürlich noch angepasst wird. Ich bin in Haus 2, daher sollen die Räume natürlich ganz oben in der Liste stehen, ich will mir ja Wegezeit sparen ;)

Code: Alles auswählen
Sub Raum_hinzu()

 Dim myItem As Object
 Dim myRequiredAttendee, myOptionalAttendee, myResourceAttendee As Outlook.Recipient
 Dim BZ(16)

 
 'Besprechungszimmer Liste erstellen
    BZ(1) = "Haus 2 BeSprZ 1"
    BZ(2) = "Haus 2 BeSprZ 2"
    BZ(3) = "Haus 2 BeSprZ 3"
    BZ(4) = "Haus 2 BeSprZ 4"
    BZ(5) = "Haus 2 BeSprZ 5"
    BZ(6) = "Haus 1 BeSprZ 1"
    BZ(7) = "Haus 1 BeSprZ 2"
    BZ(8) = "Haus 1 BeSprZ 3"
    BZ(9) = "Haus 1 BeSprZ 4"
    BZ(10) = "Haus 1 BeSprZ 5"
    BZ(11) = "Haus 1 BeSprZ 6"
    BZ(12) = "Haus 3 BeSprZ 1"
    BZ(13) = "Haus 3 BeSprZ 2"
    BZ(14) = "Haus 3 BeSprZ 3"
    BZ(15) = "Haus 3 BeSprZ 4"
    BZ(16) = "Haus 3 BeSprZ 5"
 
 
 Set myItem = ActiveInspector.CurrentItem

    For i = 1 To UBound(BZ)
      Set myResourceAttendee = myItem.Recipients.Add(BZ(i))
      myResourceAttendee.Type = olResource 'als Raum setzen
    Next
 
 myResourceAttendee.Type = olResource
 myItem.Display
 'myItem.Send
End Sub


Gruß
Michael
MJR10
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 31
Registriert: 16. Jun 2011, 20:32


Zurück zu Outlook Forum (provisorisch)

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast