Überblick
- Status
- Beantwortet
- Forum
- Outlook VBA
- Gefragt von
- Unbekannt
- Gefragt am
- Antworten
- 13
Frage
Unbekannt fragte am
Hallo,
ich hab ein Makro für Outlook 2003. Des Ding soll mir neben meinem Hauptkalender gleichzeitig 2 Kalender von Kollegen öffnen, die mir über Exchange freigegeben wurden. Und zwar soll das völlig automatisch beim Anklicken des Kalender-Symbols passieren.
Hier des Makro:
Sub DispCalendars()
Dim myOlApp As Outlook.Application
Dim myNms As Outlook.NameSpace
Dim myFolder As Outlook.MAPIFolder
Dim myRecipient As Outlook.Recipient
Dim myExplorer As Outlook.Explorer
Dim SharedFolder As Outlook.MAPIFolder
Set myOlApp = CreateObject(\“Outlook.Application\“)
Set myNms = myOlApp.GetNamespace(\“MAPI\“)
Set myFolder = myNms.GetDefaultFolder(olFolderCalendar)
Set myExplorer = myOlApp.ActiveExplorer
Set myExplorer.CurrentFolder = myFolder
Set myRecipient = myNms.CreateRecipient(\“e15xx\“)
Set myRecipient = myNms.CreateRecipient(\“e16xx\“)
Set SharedFolder = myNms.GetSharedDefaultFolder(myRecipient, olFolderCalendar)
myExplorer.SelectFolder SharedFolder
End Sub
PROBLEM 1: Wenn ich des Teil im laufenden Outlook-Betrieb ausführe, dann öffnet mir Outlook2003 neben meinem Standard-Kalender nur den Kalender „e16xx“, nicht aber den \“e15xx\“ auch noch. Irgendein Fehler in der Programmierung?
PROBLEM 2: Wie kann ich Outlook beibringen, dass er mir bei einem Klick auf das Kalender-Symbol dieses Makro ausführt?
Habt ihr mir einen Ansatz?
Grazie,
Gruß
Tobias
13 Antworten
Hallo,
ich suche auch so etwas, wenn ich dein Makro übernehme dann öffnet sich nur der Kalender des Shared Folder aber mein Kalender bleibt nicht aktiv, erst wenn ich das Makro zum zweiten mal starte dann ist auch mein eigener Kalender aktiv. Damit man mehrere Kalender von anderen Benutzern aktivieren kann, muss man bestimmt eine Schleife bauen die das Setting zweimal durchläuft und somit die Variable zweimal aktiviert. (mit den unterschiedlichen Benutzer Namen)Hallo,
bin nicht ganz so fit in Makros, aber:
Du verwendest 2 mal die Variable myRecipent
hintereinander.. Sollte man nicht für jeden
Kalender eine eigene Variable verwenden?
myRecipient1 und myRecipient2 z.B.ich habe jetz eine Variante hinbekommen die mir alle Kalender anzeigt wenn ich mich in der Ansicht der Kalender befinde (STRG+2), Wie kann ich die STRG+2 Tastenkombination in das Makro einbinden damit er erst in diese Ansicht spring ?
Olaf Reis
Dim myOlApp As Outlook.Application
Dim myNms As Outlook.NameSpace
Dim myFolder As Outlook.MAPIFolder
Dim myRecipient1 As Outlook.Recipient
Dim myRecipient2 As Outlook.Recipient
Dim myRecipient3 As Outlook.Recipient
Dim myRecipient4 As Outlook.Recipient
Dim myExplorer As Outlook.Explorer
Dim SharedFolder1 As Outlook.MAPIFolder
Dim SharedFolder2 As Outlook.MAPIFolder
Dim SharedFolder3 As Outlook.MAPIFolderSet myOlApp = CreateObject(\“Outlook.Application\“)
Set myNms = myOlApp.GetNamespace(\“MAPI\“)
Set myFolder = myNms.GetDefaultFolder(olFolderCalendar)
Set myExplorer = myOlApp.ActiveExplorer
Set myExplorer.CurrentFolder = myFolder
Set myRecipient1 = myNms.CreateRecipient(\“Olaf.Reis\“)
Set myRecipient4 = myNms.CreateRecipient(\“Karsten\“)Set sharedFolderCa = Application.GetNamespace(\“MAPI\“).Folders.Item(\“Öffentliche Ordner\“).Folders(\“Alle öffentlichen Ordner\“).Folders(\“cas_data GmbH\“).Folders(\“Kalender\“)
Set SharedFolderCA1 = Application.GetNamespace(\“MAPI\“).Folders.Item(\“Öffentliche Ordner\“).Folders(\“Alle öffentlichen Ordner\“).Folders(\“cas_data GmbH\“).Folders(\“Test1\“)
Set SharedFolderKA = myNms.GetSharedDefaultFolder(myRecipient4, olFolderCalendar)
Set SharedFolderOR = myNms.GetSharedDefaultFolder(myRecipient1, olFolderCalendar)
myExplorer.SelectFolder sharedFolderCa
myExplorer.SelectFolder SharedFolderKA
myExplorer.SelectFolder SharedFolderCA1End Sub
ich habe jetz eine Variante hinbekommen die mir alle Kalender anzeigt wenn ich mich in der Ansicht der Kalender befinde (STRG+2), Wie kann ich die STRG+2 Tastenkombination in das Makro einbinden damit er erst in diese Ansicht spring ?
Olaf Reis
Dim myOlApp As Outlook.Application
Dim myNms As Outlook.NameSpace
Dim myFolder As Outlook.MAPIFolder
Dim myRecipient1 As Outlook.Recipient
Dim myRecipient2 As Outlook.Recipient
Dim myRecipient3 As Outlook.Recipient
Dim myRecipient4 As Outlook.Recipient
Dim myExplorer As Outlook.Explorer
Dim SharedFolder1 As Outlook.MAPIFolder
Dim SharedFolder2 As Outlook.MAPIFolder
Dim SharedFolder3 As Outlook.MAPIFolderSet myOlApp = CreateObject(\“Outlook.Application\“)
Set myNms = myOlApp.GetNamespace(\“MAPI\“)
Set myFolder = myNms.GetDefaultFolder(olFolderCalendar)
Set myExplorer = myOlApp.ActiveExplorer
Set myExplorer.CurrentFolder = myFolder
Set myRecipient1 = myNms.CreateRecipient(\“Olaf.Reis\“)
Set myRecipient4 = myNms.CreateRecipient(\“Karsten\“)Set sharedFolderCa = Application.GetNamespace(\“MAPI\“).Folders.Item(\“Öffentliche Ordner\“).Folders(\“Alle öffentlichen Ordner\“).Folders(\“cas_data GmbH\“).Folders(\“Kalender\“)
Set SharedFolderCA1 = Application.GetNamespace(\“MAPI\“).Folders.Item(\“Öffentliche Ordner\“).Folders(\“Alle öffentlichen Ordner\“).Folders(\“cas_data GmbH\“).Folders(\“Test1\“)
Set SharedFolderKA = myNms.GetSharedDefaultFolder(myRecipient4, olFolderCalendar)
Set SharedFolderOR = myNms.GetSharedDefaultFolder(myRecipient1, olFolderCalendar)
myExplorer.SelectFolder sharedFolderCa
myExplorer.SelectFolder SharedFolderKA
myExplorer.SelectFolder SharedFolderCA1End Sub
Ich bin jetzt angemeldet ajoreis (Olaf Reis)
Die Lösung sieht so aus:
Sub Kalender2()
Dim myOlApp As Outlook.Application
Dim myNms As Outlook.NameSpace
Dim myFolder As Outlook.MAPIFolder
Dim myRecipient1 As Outlook.Recipient
Dim myRecipient2 As Outlook.Recipient
Dim myRecipient3 As Outlook.Recipient
Dim myRecipient4 As Outlook.Recipient
Dim myExplorer As Outlook.Explorer
Dim SharedFolder1 As Outlook.MAPIFolder
Dim SharedFolder2 As Outlook.MAPIFolder
Dim SharedFolder3 As Outlook.MAPIFolder\‘ Menue und Explorer Kalender Öffnen
SendKeys \“^2\“, True\‘ Variable für die Kalender im den Öffentlichen Ordnern
KA1 = \“Kalender cas_data GmbH\“
KA2 = \“Test1\“Set myOlApp = CreateObject(\“Outlook.Application\“)
Set myNms = myOlApp.GetNamespace(\“MAPI\“)
Set myFolder = myNms.GetDefaultFolder(olFolderCalendar)
Set myExplorer = myOlApp.ActiveExplorer
Set myExplorer.CurrentFolder = myFolderSet myRecipient1 = myNms.CreateRecipient(\“Olaf\“)
Set myRecipient2 = myNms.CreateRecipient(\“Karsten\“)Set sharedFolderOR = myNms.GetSharedDefaultFolder(myRecipient1, olFolderCalendar)
Set sharedFolderKAR = myNms.GetSharedDefaultFolder(myRecipient2, olFolderCalendar)Set sharedFolderKA1 = Application.GetNamespace(\“MAPI\“).Folders.Item(\“Öffentliche Ordner\“).Folders(\“Alle öffentlichen Ordner\“).Folders(\“cas_data GmbH\“).Folders(KA1)
Set sharedFolderKA2 = Application.GetNamespace(\“MAPI\“).Folders.Item(\“Öffentliche Ordner\“).Folders(\“Alle öffentlichen Ordner\“).Folders(\“cas_data GmbH\“).Folders(KA2)myExplorer.SelectFolder sharedFolderOR
myExplorer.SelectFolder sharedFolderKARmyExplorer.SelectFolder sharedFolderKA1
myExplorer.SelectFolder sharedFolderKA2End Sub
😉Hallo,
bin neu hier und hab das Makro ja schon mal zum laufen gebracht,
aber nur in dem ich die zeilen wie folgt auskommentiert habewas muss ich den in den nächsten beiden zeilen eingeben bzw. wo bekomm ich das raus?
danke
egbertSet myRecipient1 = myNms.CreateRecipient(\“egbert\“)
Set myRecipient2 = myNms.CreateRecipient(\“homeister\“)\’Set sharedFolderOR = myNms.GetSharedDefaultFolder(myRecipient1, olFolderCalendar)
\’Set sharedFolderKAR = myNms.GetSharedDefaultFolder(myRecipient2, olFolderCalendar)Set sharedFolderKA1 = Application.GetNamespace(\“MAPI\“).Folders.Item(\“KEN! Organizer\“).Folders(\“Allgemein\“).Folders(KA1)
Set sharedFolderKA2 = Application.GetNamespace(\“MAPI\“).Folders.Item(\“KEN! Organizer\“).Folders(\“Allgemein\“).Folders(KA2)\’myExplorer.SelectFolder sharedFolderOR
\’myExplorer.SelectFolder sharedFolderKARHallo,
Das sind die Benutzer im ADSet myRecipient1 = myNms.CreateRecipient(\“egbert\“)
Set myRecipient2 = myNms.CreateRecipient(\“homeister\“)\’Set sharedFolderOR = myNms.GetSharedDefaultFolder(myRecipient1, olFolderCalendar)
\’Set sharedFolderKAR = myNms.GetSharedDefaultFolder(myRecipient2, olFolderCalendar)für die Benutzer braucht man keinen Öffentlichen Ordner angeben die werden mit
dem Befehl:myExplorer.SelectFolder sharedFolderOR
myExplorer.SelectFolder sharedFolderKARsichbar gemacht.
Das sind Öffentliche Ordner im Exchange die unterschiedlich sein können,
Set sharedFolderKA1 = Application.GetNamespace(\“MAPI\“).Folders.Item(\“Öffentliche Ordner\“).Folders(\“Alle öffentlichen Ordner\“).Folders(\“cas_data GmbH\“).Folders(KA1)
cas_data GmbH ist der erste Folder, KA1 ist die Bezeichnung des Kalender und eine Variable
KA1 = \“Kalender cas_data GmbH\“
Der öffentliche Ordner wird hiermit sichtbar gemacht.
myExplorer.SelectFolder sharedFolderKA1
Ich hoffe ich konnte estwas helfen.
Olaf
Hallo Olaf,
leider wird bei mir immer nur ein Kalender angezeigt.
Eigentlich will ich auch nur zwei öffentliche Kalender gleichzeitig sehen (also so als ob ich in der kalender ansicht die beiden kalender anhake)das makro ruft aber immer nur einen kalender auf,
Kalender von den benutzern brauch ich überhaupt nicht.was muss ich dazu tun ?
Kann man in Outlook makros aufzeichnen ???
dan würde ich das anhaken der kalender einfach aufzeichnen
mfg
egbertHallo Egbert,
in Outlook kann man keine Macros aufzeichnen,
damit alle Kalender gleichzeitig dagestellt werden können mußt du
mit SendKeys \“^2\“ True (STRG+2 Tastenkombi), die Ansicht im Outlook ändern.Da habe ich mir auch die Zähne ausgebrochen.
Ich habe auch versucht die Haken per Makro zu setzen, keine Mögliglichkeit gefunden.
Hier nochmals ein Beispiel für dich, es werden nur die Öffentliche Ordner und der eigen Kalender geöffnet.
Olaf
Sub Kalender2()
Dim myOlApp As Outlook.Application
Dim myNms As Outlook.NameSpace
Dim myFolder As Outlook.MAPIFolder
Dim myExplorer As Outlook.Explorer
Dim SharedFolder1 As Outlook.MAPIFolder
Dim SharedFolder2 As Outlook.MAPIFolder\‘ Menue und Explorer Kalender Öffnen
SendKeys \“^2\“, True\‘ Variable für die Kalender im den Öffentlichen Ordnern
KA1 = \“Kalender cas_data GmbH\“
KA2 = \“Test1\“Set myOlApp = CreateObject(\“Outlook.Application\“)
Set myNms = myOlApp.GetNamespace(\“MAPI\“)
Set myFolder = myNms.GetDefaultFolder(olFolderCalendar)
Set myExplorer = myOlApp.ActiveExplorer
Set myExplorer.CurrentFolder = myFolderSet sharedFolderKA1 = Application.GetNamespace(\“MAPI\“).Folders.Item(\“Öffentliche Ordner\“).Folders(\“Alle öffentlichen Ordner\“).Folders(\“cas_data GmbH\“).Folders(KA1)
Set sharedFolderKA2 = Application.GetNamespace(\“MAPI\“).Folders.Item(\“Öffentliche Ordner\“).Folders(\“Alle öffentlichen Ordner\“).Folders(\“cas_data GmbH\“).Folders(KA2)myExplorer.SelectFolder sharedFolderKA1
myExplorer.SelectFolder sharedFolderKA2End Sub
Hallo Olaf,
tatsächlich,
wenn ich das Makro zweimal aufrufe geht es so wie es soll.
drei kalender in der ansicht und KEIN Haken gesetzt !
Microsoft halt, es geht aber nicht so wie man denkt …Kann ich das makro irgendwie automatisch starten ?
oder wenn man auf den kalenderbuttoon klickt ?mfg
EgbertHallo Egbert,
das habe ich auch noch nicht gefunden, man könnte ja den Kalenderbutten austauschen,
(Makro Ersatz). Wenn du zeit hast mach doch mal für die beiden Punkte ein neues Anfrage auf. Ich habe leider keine Zeit. 🙁Wenn du das weiter gekommen bist schicke mir bitte eine Antwort
Besten Dank
Olaf
Vieeeeelen Dank!
Als absoluter Makro-n00b hab ich genau sowas gesucht.
Hab mir etz so zurechtgebogen, dasses mir als Standard die 3 Kalender meiner Arbeitskollegen anzeigt und die Kontakte meines Chefs. Jetz muss ichs nur noch fürn Kunden umschreiben.
Geiles Ding! 😉
nochwas @Egbert:
wahrscheinlich eh zu spät, aber vielleicht interessierts auch andere.
um n makro automatisch beim start ausführen zu lassen, bei der startverknüpfung folgenden parameter mit angeben: \“/autorun namedeinesmakros\“ natürlich ohne die \“….
mehr parameter gibts hier http://www.administrator.de/Outlook_Befehlszeichen.html
- Sie müssen angemeldet sein, um zu diesem Thema eine Antwort verfassen zu können.
