mir ist es in Outlook2007 schon öfter passiert, dass ich eine
Mail versehentlich mit dem Standard-Mail-Konto versendet habe.
Ist es möglich, wenn ich auf „Neue Mail“ klicke, dass sich ein
Fenster öfnet, in dem ich das Konto auswählen kann, mit dem
ich die Mail versenden möchte ?
Wenn ja, wie ist das möglich ?
(Ich habe leider überhaupt keine Ahnung von VB und VBA, aber
ich denke hiermit müßte es doch machbar sein, oder ?
Hi Winni,
scheinbar ist es erst ab OL2007 möglich das Absendekonto abzuändern.
Ich habe aber kein OL2007. Gehe mal in den VB-Editor, dort in die Hilfe und poste mal hier was da zu der MailItem-Eigenschaft „SendUsingAccount“ steht. Wenn ein Beispiel dabei ist auch dieses.
M.W. wird das Standardkonto in der Registry eingetragen. In OL-Versionen vor OL2007 müßte man OL beenden, die Registry ändern und OL wieder starten was mit OL-Vba-Code gar nicht so einfach zu machen sein wird *denk*.
Obwohl alle sagen, vor OL2007 ginge es nicht stiess ich bei der Recherche auf nachstehende Funktion.
Leider kriegte ich sie mit meiner Sub Test nicht zum Laufen. Von daher ist mir noch unklar was sie eigentlich genau macht.
Sub tt()
Dim Test, myOlApp, myItem
Set myOlApp = CreateObject(„Outlook.Application“)
Set myItem = myOlApp.CreateItem(olMailItem)
Test = Set_Account(„Name1“, myItem, „Unbenannt - Nachricht (Nur Text)“)
End Sub
Leider bemängelt der Debugger bei M bzw. myItem den Typ, durch Benutzung von ByVal M verschwand dieser Fehler, dann kommmt aber
falscher Typ bei „Unbenannt - Nachricht (Nur Text)“ .
Welche Parameter will denn die mistige Funktion?
Danke ^ Gruß
Reinhard
'Function sends the settet Account-name as result, if empty, no account is set
'#######################################################################################
Function Set\_Account(ByVal KontoName As String, M As Outlook.MailItem, OLI As Outlook.Inspector) \_
As String
caption\_CmdBar = "Standard"
caption\_KontoBtn = "K&onten"
caption\_Konto = KontoName
'\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_
Dim CBs As CommandBars
Dim CB As CommandBar
Dim CBB As CommandBarPopup
Dim MC As CommandBarControl
Set CBs = OLI.CommandBars
CBn = OLI.CommandBars.Count
'/¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯\
' Loop Command-Bars....
For CBi = 1 To CBn
Bez = CBs(CBi).Name
' |¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯|
If Bez = caption\_CmdBar Then
Set CB = CBs(CBi)
CBBn = CB.Controls.Count 'CB ~ CmdBar
' /¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯\
' Loop CmdBar-Buttons...
For CBBi = 1 To CBBn
Bez = CB.Controls(CBBi).Caption
' |¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯|
If Bez = caption\_KontoBtn Then
Set CBB = CB.Controls(CBBi)
MCn = CBB.Controls.Count ' MC ~ Menu-Command
' /¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯\
' Loop Konto-Auswahl-Menu-Befehle
For MCi = 2 To MCn
Bez = CBB.Controls(MCi).Caption
Bez = Right(Bez, Len(Bez) - 3)
Debug.Print MCi; ")"; Bez
' |¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯|
If Bez = caption\_Konto Then
CBB.Controls(MCi).Execute
Set\_Account = caption\_Konto
Exit Function
End If
' |\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_|
Next MCi
' \_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_/
End If
' |\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_|
Next CBBi
' \_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_/
End If
' |\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_|
Next CBi
'\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_/
Set\_Account = ""
End Function