AW: Text und Variablen verknüpft aus externer Quelle?
08.06.2010 12:00:39
fcs
Hallo Sven,
das funktioniert dann evtl. durch eine entsprechende Textanalyse, mit der der Text und die Variable von einander getrennt werden. Das Makro orientiert sich dabei an den im Text enthaltenen &-Zeichen.
Nachfolgend ein Testbeispiel.
Test ist hier die Variable, in die der Text aus der externen Quelle eingelesen wird.
Ob das so dann für deine Gesamtprozedur zum Ziel führt?
Gruß
Franz
Sub Mailtext()
Dim Test
Dim Variable1, Variable2, Variable3
Dim Ergebnis, s1 As String, s2 As String, sVariable As String
'Eingelesener Text aus externer Quelle
Test = "Ich bin ein String und habe "" & Variable1 & "" Zeichen" 'testzeile
Variable1 = 10
'Entweder - Name der Variablen im Text ist bekannt
If IsolateVariable_1(sVariable:="Variable1", sText:=Test, sText1:=s1, sText2:=s2) = True Then
Ergebnis = s1 & Variable1 & s2
Else
Ergebnis = Test
End If
MsgBox Ergebnis
'oder - Name der Variablen im Text ist einer von mehreren möglichen
Variable1 = 10
Variable2 = 20
Variable3 = 30
sVariable = IsolateVariable_2(sText:=Test, sText1:=s1, sText2:=s2)
Select Case sVariable
Case "Variable1"
Ergebnis = s1 & Variable1 & s2
Case "Variable2"
Ergebnis = s1 & Variable2 & s2
Case "Variable3"
Ergebnis = s1 & Variable3 & s2
Case "Keine Variable"
Ergebnis = "Keine Variable in " & Test
Case Else
Ergebnis = "Für """ & sVariable & """ ist noch keine Case-Zeile definiert"
End Select
MsgBox Ergebnis
End Sub
Function IsolateVariable_1(sVariable As String, ByVal sText As String, sText1, sText2 As String) _
As Boolean
'Bei vorgegebenem Variablen-Namen Text links und rechts der Variablen zurückgeben
If InStr(1, sText, sVariable) > 0 Then
sText1 = Left(sText, InStr(1, sText, "&") - 1)
sText2 = Mid(sText, InStr(Len(sText1) + 1 + Len(sVariable), sText, "&") + 1)
sText1 = Trim(sText1)
sText1 = Left(sText1, Len(sText1) - 1)
sText2 = Trim(sText2)
sText2 = Mid(sText2, 2)
IsolateVariable_1 = True
Else
IsolateVariable_1 = False
End If
End Function
Function IsolateVariable_2(ByVal sText As String, sText1 As String, sText2 As String) As String
'Namen der Variablen und Text links und rechts der Variablen zurückgeben
If Len(sText) - Len(Replace(sText, "&", "")) >= 2 Then
sText1 = Left(sText, InStr(1, sText, "&") - 1)
IsolateVariable_2 = Mid(sText, Len(sText1) + 2)
IsolateVariable_2 = Mid(IsolateVariable_2, 1, InStr(1, IsolateVariable_2, "&") - 1)
IsolateVariable_2 = Trim(IsolateVariable_2)
sText2 = Mid(sText, InStr(Len(sText1) + 1 + Len(IsolateVariable_2), sText, "&") + 1)
sText1 = Trim(sText1)
sText1 = Left(sText1, Len(sText1) - 1)
sText2 = Trim(sText2)
sText2 = Mid(sText2, 2)
Else
IsolateVariable_2 = "keine Variable"
End If
End Function