Seite 1 von 1

Texta aus InputBox in Makro weiterverwenden

BeitragVerfasst: 22. Aug 2019, 14:45
von MaH112
Hallo zusammen,

habe ein Makro laufen, was die E-Mail öffnet und einen vordefinierten Text einfügt:

'Makro erstellt 06/2018
'HINWEIS: Damit das Makro richtig läuft (die entsprechenden Ordner findet), muss die ...-Datei als Standard-Datendatei in Outlook (unter Datei - Kontoeinstellungen - Datendatei) definiert sein!

Sub ActivateEditing()
Dim myOlExp As Outlook.Explorer
Dim myOlSel As Outlook.Selection
Dim myOlMail As MailItem

Set myOlExp = Application.ActiveExplorer
Set myOlSel = myOlExp.Selection
If (TypeOf myOlExp.Selection.Item(1) Is Outlook.MailItem) Then
Set myOlMail = myOlSel.Item(1)
End If

If (TypeOf myOlMail Is Outlook.MailItem) Then
Set myIp = myOlMail.GetInspector
myIp.Activate
With myOlMail
.HTMLBody = " <p> Vfg.: <p> 1) !bExxx <p> a) Lage <p> b) Mails <p> 2) TA<p>i.A. ...<p> <p> <p> <p>" & .HTMLBody
End With
myIp.CommandBars.ExecuteMso ("EditMessage")
myOlMail.Display (True)
End If
Else
MsgBox "Keine E-Mail ausgewählt"
End If
End Sub

Aktuell lässt das Makro die E-Mail offen und ich muss händisch aus "bExxx" bspw. ein "bE158" oder ein "bE163" oder oder machen.

Ist es möglich, vor einfügen des Textes mittels InputBox einen max. dreistellige Zahl abzufragen und diese dann direkt anstelle des "xxx" einzufügen?
Wie bewerkstellige ich sowas?

Es läuft MS Outlook 14.0.7232.5000 (64-Bit) als Exchange.

Danke & VG
Marius

Re: Texta aus InputBox in Makro weiterverwenden

BeitragVerfasst: 23. Aug 2019, 12:15
von CaBe
Hallo Marius,

eigentlich bin ich bei Excel-VBA eher zuhause, aber evtl. klappt es schon so:
Code: Alles auswählen
Sub ActivateEditing()
  Dim myOlExp As Outlook.Explorer
  Dim myOlSel As Outlook.Selection
  Dim myOlMail As MailItem
  Dim bECode As String

  Set myOlExp = Application.ActiveExplorer
  Set myOlSel = myOlExp.Selection
  If (TypeOf myOlExp.Selection.item(1) Is Outlook.MailItem) Then
    Set myOlMail = myOlSel.item(1)
  End If

  If (TypeOf myOlMail Is Outlook.MailItem) Then
    bECode = InputBox("Bitte 3-stelligen bE Code eingeben.", "Office-Loesung")
    If Len(bECode) > 3 Then bECode = Right(bECode, 3)
   
    Set myIp = myOlMail.GetInspector
    myIp.Activate
    With myOlMail
      .HTMLBody = " <p> Vfg.: <p> 1) !bE" & bECode & "<p> a) Lage <p> b) Mails <p> 2) TA<p>i.A. ...<p> <p> <p> <p>" & .HTMLBody
    End With
    myIp.CommandBars.ExecuteMso ("EditMessage")
    myOlMail.Display (True)
  Else
    MsgBox "Keine E-Mail ausgewählt"
  End If
End Sub
Ich habe eine "End If" Anweisung vor dem "Else" gelöscht. Weiß nicht, woher die in deinem Codebeispiel kommt, aber dort gehört sie nicht hin! Die anderen Änderungen betreffe die (neue) bECode-Variable, welche allerdings auch per "Dim bECode As String" deklariert werden sollte.

Re: Texta aus InputBox in Makro weiterverwenden

BeitragVerfasst: 24. Aug 2019, 23:18
von MaH112
Hallo Carsten,

danke, das funktioniert einwandfrei!

Das End If ist Teil eines Passus des Makros den ich bewusst rausgelassen hatte, da er für die Lösungsfindung irrelevnt ist (eine Routine, die drauf hinweist, dass man keine E-Mail sondern bspw. eine Termineinladung ausgewählt hat; hängt mit dem späteren archivieren auf einem FileServer zusammen). Habe beim rasulöschen wohl ein End If übersehen.

Jedenfalls danke für Deine Hilfe!