Hallo,
meine Empfehlung: organisiere dir ein Buch mit dem du die Grundzüge von VBA in Verbindung mit Excel lernen kannst.
Dieser Code kann eine Grundlage sein, um aus Excel heraus eine E-Mail in Outlook zu erstellen:
Sub MailMitOutlook()
'Beispiel E-Mail
Dim oApp As Object
Dim strSignatur As String
Set oApp = CreateObject("OUTLOOK.Application")
With oApp.CreateItem(0) 'neue E-Mail ohne Vorlage
' 'Signatur anzeigen + auslesen
' .GetInspector.Display
' strSignatur = .Body '.HTMLBody (bei HTML-Mails)
.To = "An@example.com"
.Cc = "CC@example.com"
.Bcc = "bcc@example.com"
.Subject = "das ist der Betreff"
.Body = "Hallo," & vblf & "das ist der Reintext-body" & vbLf & strSignatur
.Display 'Anzeigen
'.Send 'Abschicken
End With
End Sub
Hast du die Zeilennummer und die Spaltennummer einer Zelle (Spalte A hat die Nummer 1 und Spalte C die Nummer 3, ...), kannst du mit VBA auf den Zellinhalt zugreifen. Zum Beispiel hier für die Zelle A2:
sub beispiel_zellzugriff()
dim Zeile as long
dim Spalte as long
Zeile = 2
Spalte = 1
msgbox cells(Zeile, Spalte).value
end sub
Mehrere Zeichenketten werden durch den Operator & miteinander verbunden. Zum Beispiel die Zelle A12 und B15:
sub beispiel_2()
dim MeinText as string
MeinText = Cells(12, 1).value & cells(15, 2).value
msgbox MeinText
MeinText = MeinText & vbcrlf & "Noch eine Zeile"
msgbox MeinText
end sub
vbcrlf ist in VBA eine Konstante (eine Variable, deren Inhalt nicht geändert werden kann). Sie entspricht dem Zeilenumbruch unter Windows.
ok, machen wir eine E-Mail:
Empfänger steht in Spalte A
Betreff in Spalte B, dann ein Leerzeichen und dann Spalte C
Der Text der E-Mail soll folgender sein:
Hallo Lücke1,
das ist der Inhalt der Zelle D: Lücke2
und das der Inhalt der Zelle E: Lücke3.
Die Daten stammen alle aus Zeile Lücke4.
Viele Grüße,
Lücke5
Und los gehts:
Sub Mail_luecken()
'Beispiel Lückentext
Dim oApp As Object
dim strBody as string
dim Zeile as long
Zeile = 2 'die Daten werden aus Zeile 2 genommen, das muss natürlich angepasst werden
strBody = "Hallo Lücke1," & vbcrlf & vbcrlf & "das ist der Inhalt der Zelle D: Lücke2" & vbcrlf & _
"und das der Inhalt der Zelle E: Lücke3." & vbcrlf & vbcrlf & _
"Die Daten stammen alle aus Zeile Lücke4." & vbcrlf & vbcrlf & _
"Viele Grüße," & vbcrlf & "Lücke5"
strBody = replace(strBody, "Lücke1", cells(Zeile, 1).value) 'ersetze Lücke1 durch Inhalt aus Spalte A
strBody = replace(strBody, "Lücke2", cells(Zeile, 4).value)
strBody = replace(strBody, "Lücke3", cells(Zeile, 5).value)
strBody = replace(strBody, "Lücke4", Zeile)
Set oApp = CreateObject("OUTLOOK.Application")
With oApp.CreateItem(0) 'neue E-Mail ohne Vorlage
.To = "An@example.com"
.Cc = "CC@example.com"
.Bcc = "bcc@example.com"
.Subject = "das ist der Betreff"
.Body = "Hallo," & vblf & "das ist der Reintext-body" & vbLf & strSignatur
.Display 'Anzeigen
'.Send 'Abschicken
End With
End Sub
|