Brak polskich znaków przy wiadomości z VBA

Pytania, uwagi, problemy związane z Microsoft Office Outlook, wersje 2007, 2010, 2013 i 2016.

Moderator: Moderatorzy

Brak polskich znaków przy wiadomości z VBA

Postprzez sethendral » Pn 07.01.2019 11:16

Cześć,

Mój pierwszy post, więc witam się ze wszystkimi :).
I przejdźmy do konkretów:

Problem mam taki, iż zrobiłem proste makro (Outlook 2010), które po kliknięciu przycisku w odebranej wiadomości tworzy dla niej odpowiedź pobierając jej treść z pliku. O ile na wszystkich komputerach (Win10) wszystko śmiga, tak na jednym komputerze z Win 7, na którym generalnie nie ma problemów z czcionkami, wklejana z pliku treść ma zamienione polskie znaki na różne znaki specjalne. Zmieniałem opcje językowe w outlooku na środkowoeuropejskie jak i Unicode UTF-8 i niestety bez zmian.
Nie wiem już gdzie szukać przyczyny.
Pomożecie?

Pozdrawiam!
sethendral
 
Posty: 4
Dołączył(a): Pn 07.01.2019 11:08

Re: Brak polskich znaków przy wiadomości z VBA

Postprzez OShon » Pn 07.01.2019 14:47

Raczej windows nie stosuje UTF - to standard dla konkurencji.
W windowsach masz Win1250

Ja przechodziłem przez wiele systemów i nie spotkałem się aby odpowiedź od razu zmieniła mi polskie znaki.
Może to kwestia szablonu pustej wiadomości, choć nie podejrzewam bo dziwna sprawa.
Weź go usuń na wyłączonym Outlooku, a zostanie utworzony nowy.

OL_Szablon_maila.png

W starszej wersji ścieżka będzie inna - poszukaj.

A zrób normalna odpowiedź - ma polskie znaki?
Może to zastosowana czcionka w szablonie źródłowym jest jakaś nie teges?
Obrazek
Oskar Shon - MVP Office System/Development 11/19, 3x MCC
Forum moderator: Outlook.pl | ExcelForum.pl | MSDN dział VBA
Zobacz fajne dodatki: Outlooka, Excela, Worda lub PowerPointa
OShon
 
Posty: 9734
Dołączył(a): Cz 19.10.2006 08:31
Lokalizacja: Projekt autorski VBATools.pl

Re: Brak polskich znaków przy wiadomości z VBA

Postprzez sethendral » Pn 07.01.2019 15:15

Dzięki za odpowiedź.

Spróbowałem z usunięciem pliku NormalEmail, ale nie pomogło :(.
Generalnie wszystkie treści na tym komputerze wyświetlają się prawidłowo. Maile pisane są z polskimi znakami bez problemów w defaulcie.
Plik źródłowy to po prostu .txt z prostym formatowaniem html, zapisany jako .html i umieszczony na dysku sieciowym. Wszystkie komputery właśnie z niego pobierają treść, a tylko na jednym jest problem.
sethendral
 
Posty: 4
Dołączył(a): Pn 07.01.2019 11:08

Re: Brak polskich znaków przy wiadomości z VBA

Postprzez OShon » Pn 07.01.2019 15:59

Chodziło mi aby sprawdzić czy konkretna odpowiedź na wiadomość nie ma polskich znaków czy każda?
Oczywiście w porównaniu na standardową odpowiedź, nie tylko na tą realizowaną w VBA.
Obrazek
Oskar Shon - MVP Office System/Development 11/19, 3x MCC
Forum moderator: Outlook.pl | ExcelForum.pl | MSDN dział VBA
Zobacz fajne dodatki: Outlooka, Excela, Worda lub PowerPointa
OShon
 
Posty: 9734
Dołączył(a): Cz 19.10.2006 08:31
Lokalizacja: Projekt autorski VBATools.pl

Re: Brak polskich znaków przy wiadomości z VBA

Postprzez sethendral » Pn 07.01.2019 16:27

Każda realizowana z VBA nie wyświetla polskich znaków, ale każda standardowa odpowiedź czy wywoływana z podpisów wyświetlana jest prawidłowo.
sethendral
 
Posty: 4
Dołączył(a): Pn 07.01.2019 11:08

Re: Brak polskich znaków przy wiadomości z VBA

Postprzez OShon » Pn 07.01.2019 16:54

ok nie znamy kodu, ale skoro na innych kompach jest ok, a tylko na tym jest nie ok to z pewnością to kwestia ustawień.
Odpowiedź jednak realizowana jest przez template i dodanie doń podpisu, a z VBA nie koniecznie.
Może zrób tak aby wiadomość brak, a template jak w oryginalnej odpowiedzi.
Zrobisz to tak, że po wyświetleniu pustej wiadomości podłączy się ona wraz ze stopką, a potem dodasz jej treść do zmiennej, gdzie dokleisz swoją treść HTML.

Czyli:
Kod: Zaznacz cały
with twoja_zmienna_obektowa
.display '(tutaj OL dodaje szablon i stopkę, bez display nie doda)
dim tresc$: tresc = .HTMLBody
tresc = twojhtml & vbnewline &  tresc '(zmienna twojhtml ma zawierać co tam masz w odpowiedzi)
.HTMLBody = tresc
'.send
end with
Obrazek
Oskar Shon - MVP Office System/Development 11/19, 3x MCC
Forum moderator: Outlook.pl | ExcelForum.pl | MSDN dział VBA
Zobacz fajne dodatki: Outlooka, Excela, Worda lub PowerPointa
OShon
 
Posty: 9734
Dołączył(a): Cz 19.10.2006 08:31
Lokalizacja: Projekt autorski VBATools.pl

Re: Brak polskich znaków przy wiadomości z VBA

Postprzez sethendral » Wt 08.01.2019 09:21

Hej,

Niestety, chyba nie do końca rozumiem jaką zmienną mam wpisać w with :cry:

Kod: Zaznacz cały
Sub Odp()
    Dim olItem As Outlook.MailItem
    Dim olReply As MailItem
    Dim oFS
    Dim oFSO
   
    Set oFSO = CreateObject("Scripting.FileSystemObject")
    Set oFS = oFSO.OpenTextFile("Q:\PL\AutoRep.html")
    stext = oFS.ReadAll

    For Each olItem In Application.ActiveExplorer.Selection
    Set olReply = olItem.Reply
        olReply.HTMLBody = stext & vbCr & olReply.HTMLBody
        olReply.Attachments.Add "Q:\PL\Zgłoszenie_usługi.pdf"
        olReply.Display
    Next olItem
End Sub
sethendral
 
Posty: 4
Dołączył(a): Pn 07.01.2019 11:08

Re: Brak polskich znaków przy wiadomości z VBA

Postprzez OShon » Wt 08.01.2019 10:54

Z tego co widzę to budujesz wiadomość korzystając z polecenia odpowiedzi.
Czyli w nim dziedziczysz formularz oryginalnej wiadomości (czyli nie tworzysz nowej jak podejrzewałem).

Zamień kolejność ale w tym przypadku nie koniecznie coś musi sie zmienić:
Kod: Zaznacz cały
Set olReply = olItem.Reply
        olReply.Display
        olReply.HTMLBody = stext & vbCr & olReply.HTMLBody
        olReply.Attachments.Add "Q:\PL\Zgłoszenie_usługi.pdf"


Moje podejrzenie jednak tym bardziej sprowadza się w stronę ustawień jednostki, bo skoro czytasz tą samą treść pliku html na innych kompach,to nie może być w niej nic podejrzanego.
W sumie to nie spotkałem się z tym aby wiadomość realizowana kodem nagle nie posiadała polskich znaków, a normalne postępowanie z interfejsu było pozbawione takiej reakcji.

albo buduj od nowa wiadomość, czyli nie na podstawie odpowiedzi, ale nową pobierając ze źródłowej temat, adresata ...

Kod: Zaznacz cały
Sub Odp()
    Dim olItem As Outlook.MailItem
    Dim olReply As MailItem
    Dim oFS as object
    Dim oFSO as object
    dim stext$

    Set oFSO = CreateObject("Scripting.FileSystemObject")
    Set oFS = oFSO.OpenTextFile("Q:\PL\AutoRep.html")
    stext = oFS.ReadAll

dim temat$
dim adresat$
Dim olMail As MailItem

    For Each olItem In Application.ActiveExplorer.Selection
    temat = olItem.subject
    adresat = olItem.SenderEmailAddress
 
        Set olMail = Application.CreateItem(olMailItem)
        olMail.Display
        olMail.Subject = temat
        olMail.To = adresat 
        olMail.HTMLBody = stext & vbnewline & olMail.HTMLBody
        olMail.Attachments.Add "Q:\PL\Zgłoszenie_usługi.pdf"
    Next olItem
End Sub
Obrazek
Oskar Shon - MVP Office System/Development 11/19, 3x MCC
Forum moderator: Outlook.pl | ExcelForum.pl | MSDN dział VBA
Zobacz fajne dodatki: Outlooka, Excela, Worda lub PowerPointa
OShon
 
Posty: 9734
Dołączył(a): Cz 19.10.2006 08:31
Lokalizacja: Projekt autorski VBATools.pl


Powrót do Microsoft Outlook 2007 / 2010 / 2013 / 2016

Kto przegląda forum

Użytkownicy przeglądający ten dział: JoeM i 22 gości