Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

VBA Excel - Dołączenie do makra formularza stopki z outlooka

kwitu86 20 Sty 2016 09:55 1215 7
  • #1 20 Sty 2016 09:55
    kwitu86
    Poziom 10  

    cześć,

    czy do makra, które wywołuje wysłanie e-maila do klienta z excela istnieje możliwość podpięcia informacji ze stopki z outlooka ? ( zamiast tej, która bierze dane z zakładki Dane kontaktowe )

    Kod: vbscript
    Zaloguj się, aby zobaczyć kod

    0 7
  • #2 20 Sty 2016 10:16
    kinggustav
    Poziom 19  

    W obiekcie obsługującym mail jest drugie pole .HTMLBody na treść maila w HTML.
    Po utworzeniu maila tam jest podpis (jeżeli outlook ma go dodawać). Fachowcy radzą robić .HTMLBody = twoja_tresc & .HTMLBody. Praktycznie są z tym kłopoty, nie chce działać.
    A przy okazji może ktoś podpowie jakiś fajny sposób na dostarczenie do maila sporej mocno sformatowanej treści? Próbowałem jako plik HTML. Działa, ale jakieś to takie ... brzydkie.

    0
  • #3 20 Sty 2016 20:42
    kwitu86
    Poziom 10  

    No jakoś to nie chce mi zadziałać gdy zmieniam w języku.

    z opcją .HTMLBody = Message & .HTMLBody

    Jakieś pomysły na rozwiązanie ?

    0
  • #4 20 Sty 2016 22:33
    clubs
    Poziom 29  

    Witam

    Jeżeli stopkę masz zapisana w Outlooku to zrób tak

    Kod: vbnet
    Zaloguj się, aby zobaczyć kod

    0
  • #5 21 Sty 2016 14:43
    kinggustav
    Poziom 19  

    Ale ... nigdzie tego Message nie użyłeś?

    0
  • #6 22 Sty 2016 07:28
    clubs
    Poziom 29  

    kinggustav napisał:
    Ale ... nigdzie tego Message nie użyłeś?


    Kwitu86 napisał że chce użyć tylko z Outlooka zamiast tej z zakładki dane kontaktowe

    0
  • #7 24 Sty 2016 10:40
    Michal_Dabrowski
    Poziom 2  

    Witam,

    Wszystko się da jak się chce ;)

    Robisz to tak:

    1. Tak jak pisali powyżej w procedurze która wysyła maila musisz mieć treść wpisywaną jako HTMLBody (zamiast Body)

    2. Trzeba dopchać się do katalogu w którym masz swoje podpisy Outlooka a następnie "zassać" konkretnego podpisu kod HTML

    3. Zassany kod trzeba dorzucić do treści maila w procedurze wysyłającej

    No dobra to teraz konkrety:
    Ad1.
    Tu myślę sprawa jest prosta :) zmieniami .Body na .HTMLBody :P

    Ad2.

    to polecam zrobić Environem (bo podpisy są w katalogu zależnym od nazwy usera w systemie) czyli

    Code:

    c:\users\ tutaj_twoja_nazwa_usera \AppData\Roaming\Microsoft\Podpisy\i_tutaj_nazwa_twojego_podpisu.htm


    !!!UWAGA!!! sprawdz tą ścieżkę u siebie bo nie pamiętam teraz dlaczego ale czasem zamiast katalogu Podpisy, niektórzy mają katalog Signatures więc wtedy będzie oczywiście:

    Code:

    c:\users\ tutaj_twoja_nazwa_usera \AppData\Roaming\Microsoft\Signatures\i_tutaj_nazwa_twojego_podpisu.htm


    No dobra każdy ma inną nazwę usera więc jak robię coś takiego z ludzmi na szkoleniach to stosujemy tutaj Environa. Czyli finalnie wyglądało by to tak:

    Code:

    sciezka = Environ("USERPROFILE") & "\AppData\Roaming\Microsoft\Podpisy\" & podpisek & ".htm"


    Ok ścieżka do podpisu już jest, to teraz zasysamy HTMLA z niego.

    Kilka opcji tu mamy ale chyba najprostszą będzie funkcja readall wbudowana w obiekt TextStreem z biblioteki scrrun.dll (spoko ona jest windowsowa więc każdy ją ma Ty też ;) tą biblio możemy dodać poprzez wczesne lub pózne wiązanie (ale to już temat na innego posta ;)

    Kod: vbnet
    Zaloguj się, aby zobaczyć kod


    Pojawić się mogą jeszcze problemy z obrazkami jeżeli masz je w stopce (zwłaszcza jak tych stopek mamy kilka i makro ma decydować którą kiedy trzeba dodać do maila). Jak tak będzie to pisz, chętnie pomogę :)


    Pozdrawiam
    Michał Dąbrowski

    1
  • #8 25 Sty 2016 20:15
    kwitu86
    Poziom 10  

    cześć,

    faktycznie wszystko da sie zrobić tak jak opisujesz.

    Ja zrobiłem to trochę na czuja:

    Kod: vbscript
    Zaloguj się, aby zobaczyć kod


    gdzie zmieniłem ustawienia ramki ze środka na lewą stronę e-maila

    Kod: vbscript
    Zaloguj się, aby zobaczyć kod


    ale nie omieszkam sprawdzić rozwiązania przedstawionego powyżej :)

    0