
Zamiana kodowania wizytówki z Tunderbird dla MS Outlook
tagi: wizytówka, strona kodowa, kodowanie, konwersja, konwertowanie, znaki narodowe
0 komenarze | Dodaj komentarz
Artykuł dotyczy: Microsoft Outlook 2007/ 2003 / 2002 / 2000
Wiele z przeglądarek, jak i klient poczty ThunderBird, eksportując wizytówkę kontaktu w formacie VCard zapisuje plik używając kodowania UTF-8.
Outlook nie wykonuje automatycznej konwersji znaków (polskie znaki) i podczas otwarcia pliku VCF wyświetla przysłowiowe „krzaki”.
Dostępny jest programik konwertujący stronę kodową, dzięki któremu można będzie wybrać plik VCF i zamienić go na poprawną dla Outlooka wizytówkę.
Aplikacja ta opcjonalnie może utworzyć nową wizytówkę, zamiast zamienić wskazaną (w przypadku, gdyby komuś była potrzebna).
Darmowy program można pobrać zgodnie z tym linkiem.
Alternatywą jest użycie kodu, który zamieni nam wszystkie źle wprowadzone do Outlooka kontakty.
Option Explicit
Sub Popraw_polskie_litery_po_UTF()
'Poprawa kontaktów po imporcie wizytówek z programu Thunderbird
Dim oApptFolder As MAPIFolder
Dim item As ContactItem
Dim x&, y&, z&
Set oApptFolder = Application.GetNamespace("MAPI").GetDefaultFolder(olFolderContacts)
For x = 1 To oApptFolder.Items.Count
If oApptFolder.Items(x).Class = 40 Then
Set item = oApptFolder.Items(x)
If Not item Is Nothing Then
DoEvents
If item.FullName <> zamien_znaki_EA(item.FullName) Then
item.FirstName = zamien_znaki_EA(item.FirstName)
item.LastName = zamien_znaki_EA(item.LastName)
item.CompanyName = zamien_znaki_EA(item.CompanyName)
item.Body = zamien_znaki_EA(item.Body)
item.Department = zamien_znaki_EA(item.Department)
item.FileAs = zamien_znaki_EA(item.FileAs)
item.Save
z = z + 1
End If
y = y + 1
End If
End If
Next
MsgBox "System sprawdził obiektów: " & x - 1 & ", z czego znalezione: " & y & " to kontakty." & vbCr _
& "Poprawiono wizytówki z literami UTF w liczbie " & z & ".", vbInformation, "Nadpisanie niepoprawnych nazw dla kontaktów."
Set oApptFolder = Nothing
Set item = Nothing
End Sub
Function zamien_znaki_EA(ByVal tekst As String)
tekst = Replace$(tekst, "Ä„", "Ą")
tekst = Replace$(tekst, "Ć", "Ć")
tekst = Replace$(tekst, "Ä", "Ę˜") '!
tekst = Replace$(tekst, "Ĺ", "Ł")
tekst = Replace$(tekst, "Ĺ", "Ń") '!
tekst = Replace$(tekst, "Ă“", "Ó")
tekst = Replace$(tekst, "Ĺš", "Ś")
tekst = Replace$(tekst, "Ĺą", "Ż")
tekst = Replace$(tekst, "Ĺ»", "Ź")
tekst = Replace$(tekst, "Ä…", "ą")
tekst = Replace$(tekst, "ć", "ć")
tekst = Replace$(tekst, "Ä™", "ę")
tekst = Replace$(tekst, "Ĺ,", "ł")
tekst = Replace$(tekst, "Ĺ„", "ń")
tekst = Replace$(tekst, "Ăł", "ó")
tekst = Replace$(tekst, "Ĺ›", "ś")
tekst = Replace$(tekst, "Ĺş", "ż")
tekst = Replace$(tekst, "ĹĽ", "ź")
zamien_znaki_EA = tekst
End Function
Aby osadzić procedurę Popraw_polskie_litery_po_UTF pod przyciskiem w menu MS Outlook, polecam uwadze artykuł o instalacji i uruchamianiu makr.
Po zapisaniu kontaktu w Outlooku brak jest możliwości zmiany liter „Ę” i „Ń” (dotyczy to tylko osób, których nazwa firmy lub nazwisko będzie posiadać wielkie litery). Powyżej przedstawiony program Zamiana kodowania z UTF na W1250 jest pozbawiony tej uniedogodności.
Postępowanie krokowe w makro:
- w domyślnym folderze kontaktów sprawdzenie czy obiekt jest kontaktem
- zamiana pól: „Nazwa wyświetlana”, „Nazwisko”, „Imię”, Firma”, etc.
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.
