Outlook VBA: кодировка файлов, сохраненых через макрос
Формулировка задачи:
Здравствуйте уважаемые,
В VBA относительно новичок. Работаю над макросом, сохраняющем письма с вложениями на жесткий диск. Письма сохраняются в таком порядке:
- Вложения;
- письмо в формате .txt
- письмо в формате .msg
Листинг программы
- Sub SaveFolderToHDD(myItem As Outlook.MailItem)
- ...
- Const sPATH0 As String = "C:\Temp\Outlook_Items"
- Const OLTXT = 0
- ...
- miItem.SaveAs sPath_i & "RawData#" & ".msg" ', olMSG
- miItem.SaveAs sPath_i & "SvMsg#" & ".txt", OLTXT
- ...
- End Sub
Решение задачи: «Outlook VBA: кодировка файлов, сохраненых через макрос»
textual
Листинг программы
- Sub SaveFolderToHDD(myItem As Outlook.MailItem)
- ...
- Const sPATH0 As String = "C:\Temp\Outlook_Items"
- Const OLTXT = 0
- ...
- miItem.SaveAs sPath_i & "RawData#" & ".msg" ', olMSG
- miItem.SaveAs sPath_i & "SvMsg#" & ".txt", OLTXT
- Call ChangeFileCharset(sPath_i & "SvMsg#" & ".txt", "UTF-8", "ANSI")
- ...
- End Sub
- Function ChangeFileCharset(ByVal namef$, ByVal DestCharset$, _
- Optional ByVal SourceCharset$) As Boolean
- On Error Resume Next: Err.Clear
- With CreateObject("ADODB.Stream")
- .Type = 2
- If Len(SourceCharset$) Then .Charset = SourceCharset$ ' указываем исходную кодировку
- .Open
- .LoadFromFile namef$ ' загружаем данные из файла
- FileContent$ = .ReadText ' считываем текст файла в переменную FileContent$
- .Close
- .Charset = DestCharset$ ' назначаем новую кодировку
- .Open
- .WriteText FileContent$
- .SaveToFile namef$, 2 ' сохраняем файл уже в новой кодировке
- .Close
- End With
- ChangeFileCharset = Err = 0
- End Function
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д