Dodanie dowolnego tekstu do wiadomości
by vbatools on Feb.03, 2015, under Outlook, Porady
Do wstawiania dowolnej treści w gotowej do wysłania wiadomości służy utworzony w nowych wersjach mechanizm “Szybkie części“. Czasami jednak potrzebujemy odnieść się do zmieniających się stale danych, jak np nazw plików, osób uczestniczących w spotkaniu czy aktualnej dacie.
Na tym ostatnim przykładzie oprzemy możliwość odwołania się w zmiennej, którą zwrócimy w zaznaczone miejsce wiadomości. Dodatkowo treść ta będzie napisana czerwoną czcionką, aby pokazać jak odwołać się do parametru Font.
Sub Dodanie_tekstu_do_aktywnego_maila() On Error GoTo brak_aktywnego Dim objItem As MailItem: Set objItem = Application.ActiveInspector.CurrentItem On Error GoTo 0 Dim objInsp As Outlook.Inspector: Set objInsp = objItem.GetInspector Dim objDoc As Object: Set objDoc = objInsp.wordEditor 'Word.Document Dim objWord As Object: Set objWord = objDoc.Application 'Word.Application Dim objSel As Object: Set objSel = objWord.Selection 'Word.Selection Dim tekst$: tekst = "Dane dotyczą dnia: " & Format(Now, "DD.MM.YYYY") objSel.Font.ColorIndex = 6 'wdRed objSel.TypeText tekst Exit Sub brak_aktywnego: If Err.Number = 91 Then _ MsgBox "Utwórz wiadomość do edycji.", vbExclamation, "VBATools.pl" Else _ MsgBox Err.Number & " " & Err.Description, vbExclamation, "VBATools.pl" End Sub
Osadzamy kod w środowisku VBA (menu/insert/module) oraz przypisujemy makro do menu “Pasek narzędzi Szybki dostęp”. Taki krok pomoże nam w szybkim przywołaniu treści klawiszem skrótu [Alt+1..0]
Aby osadzić procedurę “Dodanie_tekstu_do_aktywnego_maila” pod przyciskiem w menu MS Outlook, polecam uwadze ten artykuł.
(c) Shon Oskar – www.VBATools.pl
Wszelkie prawa zastrzeżone. Żadna część ani całość tego artykułu nie może być powielana ani publikowana bez zgody autora.
December 2nd, 2015 on 17:24
Cześć,
Chciałem przerobić Wasz kodzik, tak aby wyświetlał mi imię osoby do której odpisuję na maila.
Znacznie ułatwiłoby mi to życie, gdyż pracuję w dużej korporacji, gdzie ludzie mają egzotyczne imiona i czasem może się zdarzyć, że źle wpiszę 🙂
Niestety utknąłem na rozdzielaniu imienia i nazwiska.
Proszę o pomoc, o to cały kodzik:
Sub Dodanie_imienia()
On Error GoTo brak_aktywnego
Dim objItem As MailItem: Set objItem = Application.ActiveExplorer.Selection.Item(1)
On Error GoTo 0
Dim objInsp As Outlook.Inspector: Set objInsp = objItem.GetInspector
Dim objDoc As Object: Set objDoc = objInsp.WordEditor ‘Word.Document
Dim objWord As Object: Set objWord = objDoc.Application ‘Word.Application
Dim objSel As Object: Set objSel = objWord.Selection ‘Word.Selection
Dim objItem2 As Object: Set objItem2 = Application.ActiveExplorer.Selection.Item(1)
Dim tekst$: tekst = “Hi ” & objItem2.SenderName
objSel.TypeText tekst
Exit Sub
brak_aktywnego:
If Err.Number = 91 Then _
MsgBox “Utwórz wiadomość do edycji.”, vbExclamation, “VBATools.pl” Else _
MsgBox Err.Number & ” ” & Err.Description, vbExclamation, “VBATools.pl”
End Sub
Pozdrawiam 🙂
January 8th, 2016 on 15:24
Nie zawsze nadawca posiada Nazwisko i Imię przypisane do konta. Jeśli jednak tak się stanie, a chcemy pobrać np 1 wyraz z jedno nazwy konta to należy użyć sprawdzenia czy jest w nazwie spacja i użyć funkcji tablicowej split()(0) aby uzyskać pierwszy wyraz. Jeśli masz więcej pytań abo chcesz go doprecyzować to zapraszam do dyskusji na forum: http://www.outlook.pl/forum