schattengestait
Goto Top

Outlook Besprechung - Skript zum Einfügen von Standarddaten

Hallo zusammen,

ich suche schon seit längerem die Option, bei Outlook-Besprechungen Standard-Daten, die entweder ich einfüge oder die mir durch ein Zoom-Addon automatisch ausgefüllt werden, in das Textfeld einer Nachricht einzufügen.

Bei meiner Suche stieß ich auf diesen Post, befürchte aber, dass das Skript für meinen Ansatz nicht so viel bringen würde.

Automatische Anrede mit Name in Outlook beim Antworten auf Mails


Konkret würde ich mir gerne ein Skript erstellen, das auf die benötigten Daten aus derselben Mail zugreift und mir diese vorausfüllt. Gerne würde ich dabei lernen, wie das Skript funktioniert und wo es die Daten findet, um es für andere Themen umschreiben zu können. Meine Vorerfahrung liegt jedoch leider bei null.


Ein paar grundsätzliche Fragen:
Ist mein Vorhaben mit einem einfachen Skript möglich? Oder kommt das Skript gar nicht an die Daten aus der Eingabemaske heran?

Gibt es vielleicht ein Skript, das solche Funktionen in Teilen ausführt?

Gibt es irgendwo Anleitungen, die helfen, sich solche Skripte selbst zu basteln?

Wie heißen die Parameter in Codeform:
[Besprechungseinladung] [Datum aus Besprechungseinladung] [Zoom-Link aus Besprechungseinladung]
Wie kann ich einzelne Wörter aus dem Titel für die weitere Bearbeitung extrahieren?


Ich hatte auch darüber nachgedacht, solche Funktionen über eine Art Mausbot umzusetzen. Hierfür müsste aber die Fensterposition und -größe immer identisch sein und der Aufwand das zu bewerkstelligen wäre vermutlich nicht viel geringer als ein entsprechendes Skript. Zudem wäre ein Skript natürlich eine 'sauberere' Lösung.


Vielen Dank vorab für jegliche Unterstützung!
1

Content-Key: 32368078695

Url: https://administrator.de/contentid/32368078695

Printed on: July 6, 2024 at 00:07 o'clock

Member: colinardo
colinardo Jul 03, 2024 updated at 13:25:27 (UTC)
Goto Top
Servus @SchattengestaIt, willkommen auf Administrator.de!
Zitat von @SchattengestaIt:
Ein paar grundsätzliche Fragen:
Ist mein Vorhaben mit einem einfachen Skript möglich?
Ja, "einfach" kommt dann aber auf die Kenntnisse des Betrachters an face-smile.
Oder kommt das Skript gar nicht an die Daten aus der Eingabemaske heran?
Das ist kein Problem.
Gibt es vielleicht ein Skript, das solche Funktionen in Teilen ausführt?
s.u.
Gibt es irgendwo Anleitungen, die helfen, sich solche Skripte selbst zu basteln?
https://learn.microsoft.com/de-de/office/vba/outlook/concepts/getting-st ...
https://learn.microsoft.com/de-de/office/vba/outlook/concepts/getting-st ...
https://learn.microsoft.com/de-de/office/vba/api/overview/outlook/object ...
Wie heißen die Parameter in Codeform:
[Besprechungseinladung] [Datum aus Besprechungseinladung]
Für das aktuelle Element das aktiven Inspectors
ActiveInspector.CurrentItem.Start
[Zoom-Link aus Besprechungseinladung]
Für das aktuelle Element das aktiven Inspectors
ActiveInspector.CurrentItem.Location

Weitere mögliche Eigenschaften eines AppointmentItems kannst du hier nachschlagen
https://learn.microsoft.com/en-us/office/vba/api/outlook.appointmentitem ...

Wie kann ich einzelne Wörter aus dem Titel für die weitere Bearbeitung extrahieren?
Dafür gibt es mehrere Methoden, z.B. Splitten anhand von Zeichen, extrahieren über Zeichindizes oder Regular Expressions (zuverlässiger wenn sich Text unbekannt ändert, aber für Anfänger komplizierter zu Handhaben).

Habe dir für dein Vorhaben mal eine Vorlage geschrieben die du nach deinen Anforderungen anpassen kannst:
(Den Code solltest du nur ausführen wenn ein entsprechender Inspector geöffnet ist, kannst du dir z.B. auf einen Button legen).
Sub InsertStandardAppointmentBody()
    ' Variablen  
    Dim cInspector As Inspector, regex As Object, strClientName As String, strMessageType As String, strDate As String
    ' Objekte initialisieren  
    Set regex = CreateObject("vbscript.regexp")  
    regex.IgnoreCase = True
    ' aktiven Inspector finden  
    Set cInspector = Application.ActiveInspector
    If cInspector Is Nothing Then
       MsgBox "Kein Element offen!", vbExclamation  
       Exit Sub
    End If
    ' mit aktivem Element im Inspector arbeiten  
    With cInspector.CurrentItem
        ' elemente aus dem Subject mit Regex extrahieren  
        regex.pattern = "([^\s]+) für (.*)$"  
        ' regex pattern anwenden  
        Set match = regex.Execute(.subject)
        ' Fallback für Nutzername und Messagetype  
        strClientName = "User"  
        strMessageType = "Gespräch"  
        ' Wenn Regex-Match erfolgreich war  
        If match.Count > 0 Then
            ' Submatch 2 aus dem Regex dem Namen zuweisen  
            strClientName = match(0).submatches(1)
            ' Submatch 1 aus dem Regex dem Typen der Nachricht zuweisen  
            strMessageType = match(0).submatches(0) & "gespräch"  
        End If
        ' Standard-Datum formatieren  
        strDate = Format(.Start, "dddd, \d\e\n dd. mmmm \u\m hh:nn \U\h\r")  
        ' wenn das Datum heute ist formatiere das Datum um  
        If DateValue(.Start) = Date Then
            strDate = "heute um " & Format(.Start, "hh:nn")  
        End If
        ' Fülle den Inhalt des Bodies aus  
        .Body = "Hallo " & strClientName & "." & vbNewLine & vbNewLine & _  
                "hiermit erhalten sie die Einladung zu einem Zoom-Meeting für ein " & strMessageType & " mit Max Mustermann." & vbNewLine & vbNewLine & _  
                "Das Gespräch findet " & strDate & " statt." & vbNewLine & _  
                .Location & vbNewLine & vbNewLine & _
                "Herr Mustermann freut sich auf das gemeinsame Gespräch." & vbNewLine & vbNewLine & _  
                "Mit besten Grüßen"  
    End With
End Sub

Code Ergebnis mit heutigem Beispiel Meeting:

screenshot

Viel Erfolg bei deinen ersten Gehversuchen in der Outlook-Automation mittels VBA!
Grüße Uwe
Member: SchattengestaIt
SchattengestaIt Jul 03, 2024 at 15:14:13 (UTC)
Goto Top
Wahnsinn!

Vielen herzlichen Dank schonmal für deine Mühe und deine detaillierten Antworten. Ich werde ein Weilchen brauchen, um mich in alles reinzulesen und dann auch souverän damit arbeiten zu können. Auch werde ich versuchen, erste Fragen erstmal selbst zu klären und berichte anschließend nochmal oder stelle Rückfragen.

An dieser Stelle auf jeden Fall schonmal vielen Dank für deine Zeit und das bereits ausgearbeitete Beispielskript.