Discussion:
Von Word aus Outlook starten mit VBA
(zu alt für eine Antwort)
Michael Spa
2003-10-20 08:40:41 UTC
Permalink
Hallo Leute

Bin am verzweifeln. Möchte von Word aus Outlook beenden
und neu starten. Beenden funktioniert soweit. Aber ich
schaffs nicht Outlook zu starten.
Habt Ihr mir eine Lösung?

Sub OutlookBeenden()
Set myOlApp = CreateObject("Outlook.Application")
myOlApp.Quit
Set myOlApp = Nothing
End Sub

Sub OutlookStarten()
Set myOlApp = CreateObject("Outlook.Application")
'myOlApp.?????????????????????????????'
Set myOlApp = Nothing
End Sub

Besten Dank für Eure Unterstützung
Michael Spa
Christian Freßdorf
2003-10-20 08:49:32 UTC
Permalink
Hallo Michael,
Post by Michael Spa
Bin am verzweifeln. Möchte von Word aus Outlook beenden
und neu starten. Beenden funktioniert soweit. Aber ich
schaffs nicht Outlook zu starten.
Sub OutlookBeenden()
Set myOlApp = CreateObject("Outlook.Application")
damit erstellst Du eine neue Instanz von OL zur bereits vorhandenen
Post by Michael Spa
myOlApp.Quit
Set myOlApp = Nothing
damit beendest Du die zuvor erzeugt. Sofern Du eine bestehende Instanz
beenden möchtest, muss Du diese mit GetObject(,"Outlook.Application")
ansprechen.
Post by Michael Spa
Sub OutlookStarten()
Set myOlApp = CreateObject("Outlook.Application")
damit erzeugst Du wieder eine neue Instanz. Zum Sichtbarmachen
myOLApp.Visible = True


Allerdings hängt das weitere Verhalten von Deinen Absichten ab: Nur
Starten, Ansicht auswählen o.v.a.m.?
--
Gruß Christian
~~~~~~~~~~~~
Antworten / Rückmeldungen nur in die NG!
Adresse ist gültig wird aber selten gelesen.
a***@discussions.microsoft.com
2003-10-20 09:37:41 UTC
Permalink
Hallo Christian

Danke für Deine Nachricht. Habe meine Codes angepasst,
Deine Nachricht aber möglicherweise falsch interpretiert.
Ich erhalte Fehlermeldungen wenn ich die Prozeduren
anpasse. Hat Du mir nochmals einen Tipp?

Sub OutlookStarten()
Set myOLApp = CreateObject("Outlook.Application")
myOLApp.Visible = True
Set myOLApp = Nothing
End Sub
---> Objekt unterstützt diese Eigenschaft oder Methode
nicht

Sub OutlookBeenden()
Set myOLApp = GetObject("Outlook.Application")
myOLApp.Quit
Set myOLApp = Nothing
End Sub
---> Ungültige Syntax
Christian Freßdorf
2003-10-20 10:45:52 UTC
Permalink
Hallo <***@discussions.microsoft.com>,

wenn Du Antworten möchtest, trag bitte immer Deinen Namen in die
Weboberfläche mit ein...
Post by a***@discussions.microsoft.com
Ich erhalte Fehlermeldungen wenn ich die Prozeduren
anpasse. Hat Du mir nochmals einen Tipp?
wie hast Du myOLApp deklariert?

Sub OutlookBeenden()
Dim myOLApp As Object
Set myOLApp = GetObject(, "Outlook.Application")
myOLApp.Quit
Set myOLApp = Nothing
End Sub

Alternativ kannst Du auch einen Verweis auf die Outlook-Bibliothek setzen
und
myOLApp As Outlook.Application
deklarieren. Dann hast Du Zugriff auf den Objektkatalog.
--
Gruß Christian
~~~~~~~~~~~~
Antworten / Rückmeldungen nur in die NG!
http://www.mvps.org/word/FindHelp/Posting.htm
http://support.microsoft.com/default.aspx?scid=fh;DE;NGNetikette
Michael Spa
2003-10-20 12:23:50 UTC
Permalink
Hallo Christian

Super Sache, das mit dem Beenden. Kannst Du mir noch
kurz :) zeigen wie man Outlook startet. Mein Versuch
schlug fehl.

Sub OutlookStarten()
Dim myOLApp As Outlook.Application
Set myOLApp = CreateObject("Outlook.Application")
myOLApp.Visible = True
Set myOLApp = Nothing
End Sub

Danke für alles (und sorry wegen dem vergessenen Namens-
Eintrag)

Michael Spa
Christian Freßdorf
2003-10-20 13:01:00 UTC
Permalink
Hallo Michael,
Post by Michael Spa
Super Sache, das mit dem Beenden. Kannst Du mir noch
kurz :) zeigen wie man Outlook startet. Mein Versuch
schlug fehl.
Sub OutlookStarten()
Dim myOLApp As Outlook.Application
Set myOLApp = CreateObject("Outlook.Application")
End Sub
Sobald Du die Variable wieder auf Nothing setzt, also aufräumst, wird die
Instanz bei mir beendet.
Daher reicht obiges.
Du solltest nur darauf achten, dass Du beim Beenden des Programms/Makros
diese Instanz auch wieder löschst, da sie ansonsten im Hintergrund
rumgeistert.
Post by Michael Spa
(und sorry wegen dem vergessenen Namens-Eintrag)
kein Problem. Will halt nur wissen, wer da Hilfe haben möchte. Und von
diesen Nur-Anonymous-Leutchen toben hier z.Z. genug rum...
--
Gruß Christian
Michael Spa
2003-10-20 13:52:42 UTC
Permalink
'Hallo Christian

'Funktioniert. Nur, da Outlook mit...

Sub OutlookStarten()
Dim myOLApp As Outlook.Application
Set myOLApp = CreateObject("Outlook.Application")

'...im Hintergrund gestartet wird schlagen meine
'nächsten 'Zeilen fehl (die hab ich Dir nicht gesendet da
'ich dachte Sie sei unwesentlich)...

Set myFenster = myOLApp.ActiveExplorer.Panes
Set myOutlookBar = myFenster.Item("OutlookBar")
End Sub

'Was solls. Dann müssen die Benutzer meines Tool(chens)
'Outlook halt manuell starten. Trotzdem Danke für Deine
'Unterstützung. Habe durch Dich einiges über die Create
'/GetItem-Methode erfahren (es sei denn Dir kommt die
'Eierlegendevollmilchsau-Idee)

'Danke für alles
'Gruss
'Michael Spa
Christian Freßdorf
2003-10-20 14:13:46 UTC
Permalink
Hallo Michael,
Post by Michael Spa
Set myFenster = myOLApp.ActiveExplorer.Panes
Set myOutlookBar = myFenster.Item("OutlookBar")
End Sub
das Problem ist, dass die Panes nicht vorhanden sind, wenn aiuf diese Art
Outlook verwendet wird.
Du kannst aber trotzdem an die Ordner kommen, wenn es das ist was Du
möchtest.
Beschreib mir das doch mal, vielleicht fällt mir dazu was ein.
--
Gruß Christian
~~~~~~~~~~~~
Antworten / Rückmeldungen nur in die NG!
Adresse ist gültig wird aber selten gelesen.
Michael Spa
2003-10-21 12:55:17 UTC
Permalink
Hallo Christian

Das Angebot nehme ich natürlich gerne an. Unten der anfang
meines Codes. Ich möchte:

1. OL starten (das eigentliche Problem, der Rest funkt.)
2. In der Outlookbar die Gruppen absuchen
3. Wenn Gruppe TEST vorhanden nimm diese, ansonsten
erstelle eine neue Gruppe TEST
4. Dann gehts weiter mit Verknüpfungen erstellen (was ich
aber nicht mehr kopiert habe. Kann aber ohne weiteres


Hoffe Dir reichen meine Angaben.
Gruss
Michael Spa
Post by Christian Freßdorf
Beschreib mir das doch mal, vielleicht fällt mir dazu was
ein.
Public Sub NeueGruppeInOutlookleiste()

Set myOLApp = CreateObject("Outlook.Application")
Set myNamespace = myOLApp.GetNamespace("MAPI")
Set myFensterausschnitte = myOLApp.ActiveExplorer.Panes
Set myOutlookBar = myFensterausschnitte.Item("OutlookBar")
Set myOutlookBarObjekt = myFensterausschnitte.Item
("OutlookBar").Contents
Set myOutlookBarGruppe =
myOutlookBarObjekt.Groups 'Verweis auf Sammlung von Gruppen
'Wenn eine Gruppe namens TEST existiert, nimm diese Gruppe
Dim GruppeGefunden As Boolean
GruppeGefunden = False
For Zähler1 = 1 To myOutlookBarGruppe.Count
If myOutlookBarGruppe(Zähler1).Name = "TEST" Then
GruppeGefunden = True
Set Kunisgruppe = myOutlookBarGruppe(Zähler1)
Exit For
End If
Next Zähler1
'Ansonsten erstelle eine neue Gruppe
If Not GruppeGefunden Then
Set Kunisgruppe = myOutlookBarGruppe.Add
("TEST")
End If
'...dann gehts weiter mit Verknüpfungen erstellen etc...
End Sub
Christian Freßdorf
2003-10-21 13:30:17 UTC
Permalink
Hallo Michael,
Post by Michael Spa
1. OL starten (das eigentliche Problem, der Rest funkt.)
2. In der Outlookbar die Gruppen absuchen
das Problem ist wirklich den Explorer anzusprechen (hab mich damit noch
nicht so auseinandergesetzt).
Aber mit folgenden Zeilen erhalte ich wenigstens keine Fehler mehr :-)

Achja:es wird ein Verweis auf die Outlook-Biblio verwendet:

Public Sub NeueGruppeInOutlookleiste()

'Set myOlApp = CreateObject("Outlook.Application")

Dim myOlApp As New Outlook.Application
Dim myolBar As Outlook.OutlookBarPane
Dim myExplorer As Explorer

Set myNameSpace = myOlApp.GetNamespace("MAPI")
Set myFolder = myNameSpace.GetDefaultFolder(olFolderInbox)

Set myExplorer = myFolder.GetExplorer
Set myOutlookBar = myExplorer.Panes(olOutlookBar)

Set myOutlookBarObjekt = myOutlookBar.Contents
Set myOutlookBarGruppe = myOutlookBarObjekt.Groups
'Verweis auf Sammlung von Gruppen
'Wenn eine Gruppe namens TEST existiert, nimm diese Gruppe
Dim GruppeGefunden As Boolean
GruppeGefunden = False
For Zähler1 = 1 To myOutlookBarGruppe.Count
If myOutlookBarGruppe(Zähler1).Name = "TEST" Then
GruppeGefunden = True
Set Kunisgruppe = myOutlookBarGruppe(Zähler1)
Exit For
End If
Next Zähler1
'Ansonsten erstelle eine neue Gruppe
If Not GruppeGefunden Then
Set Kunisgruppe = myOutlookBarGruppe.Add("TEST")
End If
'...dann gehts weiter mit Verknüpfungen erstellen etc...
End Sub
--
Gruß Christian
~~~~~~~~~~~~
Antworten / Rückmeldungen nur in die NG!
Adresse ist gültig wird aber selten gelesen.
Michael Spa
2003-10-22 07:32:18 UTC
Permalink
Hallo Christian

Danke für Deine Arbeit. Werde mir das genau anschauen und
Dir berichten :)

Gruss
Michael Spa
Michael Spa
2003-10-23 12:06:33 UTC
Permalink
Hi Christian

Schlechte Mitteilung. Hab's nicht hingekriegt - egal.

Trotzdem Danke für Deine Unterstützung. War super
Interessant von Dir zu lernen.

Vieleicht ein andermal wieder
Gruss
Michael Spa

Loading...