2017-09-07 1 views
0

Ich verwende Code, geschrieben mit Hilfe aus diesem Forum, um eine .oft E-Mail-Vorlage aus einem zentralen Repository über ein Dropdown-Menü auszuwählen.E-Mail-Vorlagen mit Variablen

Public Sub Email_Templates() 

    With Select_Email_Template 
    .Show 
    If .Tag <> -1 Then 
     CreateItemFromTemplate(Templates(.Tag, FullPath:=True)).Display ' Templates(.Tag) also works 
    End If 
    End With 
    Unload Select_Email_Template 

End Sub 

Public Function Templates _ 
       (_ 
        Optional ByVal plngIndex As Long = -1 _ 
       , Optional ByVal NameOnly As Boolean = False _ 
       , Optional ByVal FullPath As Boolean = False _ 
       ) As Variant 

    Const strcTemplatesDir As String = "\\c\s\caf1\Digital Delivery Group\DDCOPS\Splunk\Email Templates\" 
    Const strcTemplateExtension As String = ".oft" 

    Static avarTemplateNames As Variant 

    If IsEmpty(avarTemplateNames) Then 
    avarTemplateNames = Array _ 
    (_ 
     "Account Amendment Non SC" _ 
    , "Amendment SC Application Received" _ 
    , "Amendment SC" _ 
    , "Creation Non SC" _ 
    , "Account Creation SC Application Received" _ 
    , "Account Creation SC" _ 
    , "Export Function" _ 
    , "Password Reset" _ 
    ) 
    End If 
    If plngIndex <> -1 Then 
    If NameOnly = True And FullPath = False Then 
     Templates = avarTemplateNames(plngIndex) 
    Else 
     Templates = strcTemplatesDir & avarTemplateNames(plngIndex) & strcTemplateExtension 
    End If 
    Else 
    Templates = avarTemplateNames 
    End If 

End Function 

Dies ist ein Beispiel für eine Vorlage:

Hallo,

ich gebeten wurde Splunk-Account (s) für Sie in der folgenden Umgebung (en) zu erstellen.

Der Benutzername und das Passwort sind:

Benutzername: Passwort:

Vielen Dank und freundlichen Grüßen

Ich mag würde, um dynamisch den Benutzernamen und das Passwort die Erstellung der Pre hinzufügen Email.

Ich möchte den E-Mail-Inhalt im VBA-Code wirklich nicht hart codieren, da diese Vorlagen von mehreren Benutzern verwendet werden. Wenn Änderungen an ihnen vorgenommen werden müssen, müssten diese mehrfach geändert werden.

Irgendwelche Ratschläge auf dem besten Weg vorwärts?

Antwort

0

können Sie die Werte übergeben und ersetzen eindeutige Platzhalter wie folgt aus:

Option Explicit 

Private Sub userpass() 

Dim userName As String 
Dim userPassword As String 

userName = "someBody" 
userPassword = "easilyBroken" 

MyTemplate userName, userPassword 

End Sub 

Private Sub MyTemplate(uName, uPword) 

Dim msg As mailitem 

' Template with unique text "Username:" and "Password:" 
Set msg = CreateItemFromTemplate("C:\Test\Account Creation SC.oft") 

With msg 
    .body = Replace(.body, "Username:", "Username:" & uName) 
    .body = Replace(.body, "Password:", "Password:" & uPword) 
End With 

msg.Display 

End Sub