[VBA] Schnellbausteine

Moderator: ModerationP

[VBA] Schnellbausteine

Beitragvon Tolados » 10. Apr 2019, 08:59

Hallo,

ich möchte einen definierten Schnellbaustein in eine Outlook Mail einfügen.
Aber ich finde nirgends, wie ich das Objekt anspreche.

Weiß jemand Rat?

Danke, Tolados
Tolados
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 112
Registriert: 15. Mär 2017, 08:29

Re: [VBA] Schnellbausteine

Beitragvon silcono » 10. Apr 2019, 09:53

Hallo Tolados,

willst du den Schnellbaustein einfach nur in deine Mail einfügen?
Wenn ja, dann unter der geöffneten Mail die du verfassen tust, unter dem Reiter 'Einfügen' -> 'Schnellbaustein' auswählen.

ODER

Willst du innerhalb eines Makros/Prozesses den bestimmten Schnellbaustein ansprechen?

Grüße
Silcono
silcono
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 55
Registriert: 23. Aug 2017, 13:42

Re: [VBA] Schnellbausteine

Beitragvon Tolados » 10. Apr 2019, 10:27

Hallo silcono,

ich möchte den Schnellbaustein per Makro einfügen.
Quasi erstelle ich über Excel-VBA eine neue Mail mit htmlbody.
In diesen möchte ich den in Outlook definierten Schnellbaustein mit einfügen. Zusatztext und Signatur hab ich alles drin, nur der Baustein fehlt noch.
Tolados
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 112
Registriert: 15. Mär 2017, 08:29

Re: [VBA] Schnellbausteine

Beitragvon silcono » 10. Apr 2019, 10:53

Also nach kurzer Recherche und einigen Aussagen von Usern in verschiedenen Foren, bildet sich die Meinung, dass die Outlook-Schnellbausteine nicht ansprechbar sind.

Muss es denn ein Schnellbaustein sein?
Könnte es auch einfach ein Text/String innerhalb deinen Codes sein?

Gern kannst du auch deinen Code mal zeigen, dann können wir gemeinsam vllt dran arbeiten.

Grüße
Silcono
silcono
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 55
Registriert: 23. Aug 2017, 13:42

Re: [VBA] Schnellbausteine

Beitragvon Tolados » 10. Apr 2019, 11:25

Hallo Silcono,

gilt das auch für Word? Denn die Bausteine werden in der Datei NormalEmail.dotm abgespeichert habe ich gerade herausgefunden.

Das Problem ist, dass es sich um einen relativ langen Textbaustein handelt und ich damit mit Sicherheit die Länge eines Strings überschreiten würde.
Außerdem sind Markierungen, Textformate und auch eine Auflistung enthalten.
Dies als String aufzubauen wäre aber auch sonst arg unübersichtlich, vor allem wenn ich den Mustertext ändern möchte.

Den Code habe ich mal vereinfacht, da im jetzigen Entwurf eine Funktion und übergabene Variablen enthalten sind:

Code: Alles auswählen
    Dim html

    html = "<!DOCTYPE html><html><body>"
    html = html & "<div style=""font-family:'Arial'; font-size: 13; "">"
    html = html & "Hallo {name}, <br /><br />TEXTBAUSTEIN <br />"
   


An die Stelle TEXTBAUSTEIN soll dann der Outlook-Mail-Schnellbaustein eingefügt werden.

und etwas später im Code:
Code: Alles auswählen
mail.htmlbody = html '& strSignatur



Danke und VG, Tonados
Tolados
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 112
Registriert: 15. Mär 2017, 08:29

Re: [VBA] Schnellbausteine

Beitragvon mmarkus » 10. Apr 2019, 12:15

@Tonados,
Outlook bietet (meines Wissens) keine Klassen für den Zugriff auf die Textbausteine per VBA.

Natürlich kann man Signaturen oder Schnellbausteine per VBA aus den Dateien auslesen und wohin auch immer einfügen.
Man muss sich nur selbst um die Umsetzung kümmern.
Sprich man sollte sich mit den Grundlagen des Programmierens auskennen.

Macht aber nur Sinn, wenn man die Texte sowohl für die manuelle Eingabe per Tastatur als auch für VBA benötigt.
Wenn es nur um VBA geht, wird man sinnigerweise andere Wege gehen.
ms access what else
mmarkus
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 1498
Registriert: 16. Apr 2012, 16:07
Wohnort: Oberösterreich

Re: [VBA] Schnellbausteine

Beitragvon silcono » 10. Apr 2019, 12:24

So hab da mal was gefunden und auch mal getestet.

Ich habe eine leere Mail geöffnet und das folgende Makro ausgeführt:

Code: Alles auswählen
Sub InsertBuildingBlock()
    Dim oInspector As Inspector
    Dim oDoc As Variant
    Dim wordApp As Variant
    Dim oTemplate As Variant
    Dim oBuildingBlock As Variant
   
    ''Or get the inspector some other way
    Set oInspector = Application.ActiveInspector

    If oInspector.EditorType = olEditorWord Then

        ''The property WordEditor is a Word.Document
        Set oDoc = oInspector.WordEditor

        ''This inserts the firt building block in the first template
        ''This is based on a simple recording action in Word
        Set wordApp = oDoc.Application
        Set oTemplate = wordApp.templates("C:\Users\USERNAME\AppData\Roaming\Microsoft\Templates\NormalEmail.dotm")   '<---anpassen
        Set oBuildingBlock = oTemplate.BuildingBlockEntries("NAME SCHNELLBAUSTEIN")        '<---anpassen

        oBuildingBlock.Insert wordApp.Selection.Range, True    '<---ggf. anpassen, hier wird entschieden, wo der Baustein eingefügt werden soll
    End If

End Sub


Hoffe das hilft dir weiter.

Gruß Silcono
silcono
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 55
Registriert: 23. Aug 2017, 13:42

Re: [VBA] Schnellbausteine

Beitragvon Tolados » 10. Apr 2019, 13:17

Hallo Silcono,

der Inspektor sagt mir jetzt fachlich gar nichts, kannst Du mir bitte kurz erklären was dies bewirkt und was das Makro dort braucht?

Wenn ich das Makro starte, stoppt es in der ersten Set-Zeile, oInspector = Nothing
(Laufzeitfehler 438, Objekt unterstützt diese Eigenschaft oder Methode nicht)

Unter Verweise habe ich auch die Object Libraries von Word und Outlook aktiviert.

Vielen Dank!
Tolados
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 112
Registriert: 15. Mär 2017, 08:29

Re: [VBA] Schnellbausteine

Beitragvon silcono » 10. Apr 2019, 13:29

Dies, mal zum Inspector:
https://docs.microsoft.com/de-de/office ... .inspector

Deiner Fehlermeldung könnte mehrere Ursachen haben, z.B.:

- Version / Welche Outlook Version verwendest du?
- Verweise / Sind alle notwendigen Verweise aktiviert?
--> bei mir sind das folgende: Microsoft Outlook 15.0 Object Library, Microsoft Forms 2.0 Object Library, Microsoft Excel 15.0 Object Library, Microsoft Office 15.0 Object Library

- Achja, noch was, wie bist du vorgegangen beim testen des Makros?

Versuchs mal mit den Verweisen, ansonsten müssen wir mal wegen der Version schauen.

Grüße
Silcono
silcono
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 55
Registriert: 23. Aug 2017, 13:42

Re: [VBA] Schnellbausteine

Beitragvon Tolados » 10. Apr 2019, 14:33

Hallo Silcono,

den Fehler habe ich gefunden: ich habe das Makro aus Excel gestartet, in Outlook hat es funktioniert (Inspector ist eine Eigenschaft von Outlook)
Ich habe Version 16 im Einsatz, die Verweise waren alle richtig aktiviert.

Aus Excel habe ich es auch funktionsfähig bekommen, indem ich einfach
Code: Alles auswählen
Set oInspector = Outlook.Application.ActiveInspector
draus gemacht habe.
Ich konnte es dann auch in mein Makro einbauen, so dass es durchläuft.

ABER: Der Textbaustein wird mitten im Wort abgeschnitten, und zwar nach 253 Zeichen, also wahrscheinlich eine byte-Begrenzung.
So wollte ich es dann einfügen:
Code: Alles auswählen
mail.HTMLBody = html & oBuildingBlock & strSignatur
, habe das insert also weggelassen.

Dieses Problem kann ich mangels VBA Kenntnissen in Outlook nur sehr unelegant lösen, und in dem Fall auch nur, weil ich den Text direkt an den Anfang der Mail schreibe mit:
Code: Alles auswählen
mail.display
oBuildingBlock.Insert wordApp.Selection.Range, True


Also ich erstelle somit erst den htmlbody ohne Inhalt und füge diesen erst ein, nachdem ich die Mail anzeigen lasse. Dann klappt es.

Also es funktioniert erstmal, VIELEN DANK, Silcono!
Gibt es für meinen Lösungsweg noch eine elegantere Variante, das wäre natürlich das i-Tüpfelchen...

VG, Tolados
Tolados
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 112
Registriert: 15. Mär 2017, 08:29

Re: [VBA] Schnellbausteine

Beitragvon silcono » 11. Apr 2019, 05:44

Moin Tolados,

das hört sich doch mal gut an.
Eine elegantere Variante habe ich leider nicht parat, da ich selbst erstmal alles ersuchen und probieren musste :)

Aber vllt findet sich noch jemand ;)

Grüße
Silcono
silcono
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 55
Registriert: 23. Aug 2017, 13:42

Re: [VBA] Schnellbausteine

Beitragvon mmarkus » 11. Apr 2019, 06:15

@Silcono,
ich hoffe du bleibst den Outlook Foren länger erhalten. :D
ms access what else
mmarkus
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 1498
Registriert: 16. Apr 2012, 16:07
Wohnort: Oberösterreich

Re: [VBA] Schnellbausteine

Beitragvon silcono » 11. Apr 2019, 06:26

@mmarkus
ich werde mein bestes geben :P
silcono
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 55
Registriert: 23. Aug 2017, 13:42


Zurück zu Outlook Forum (provisorisch)

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 3 Gäste