БлогNot. Word: пересохраняем много файлов в другом формате :)

Word: пересохраняем много файлов в другом формате :)

Так как открыть сразу кучу документов в Word - не проблема (в стандартном окне открытия есть множественный выбор), проблема может быть только в обработке (лень много раз нажимать "Сохранить как..."). Для этого случая полезней вставить маленький макрос, который перебирает все открытые документы и сохраняет их в выбранном формате (в приведённом коде - формат RTF, понятно, как изменить для других). Мне понадобилось для пересохранения большого количества заметок pwi (формат заметки в мобильной Windows).

Код макроса на VBA:

Sub Макрос1()
 Dim strDocName As String
 Dim intPos As Integer
 For q = 1 To Documents.Count
  strDocName = Documents.Item(q).Name
  Documents.Item(q).Activate
  intPos = InStrRev(strDocName, ".")
  If intPos = 0 Then
   strDocName = InputBox("Введите имя для пустого документа")
  Else
   strDocName = Left(strDocName, intPos - 1) & ".rtf"
  End If
  ActiveDocument.SaveAs FileName:=strDocName, FileFormat:=wdFormatRTF
 Next q
End Sub

Проверено в офисе 2003, в старших версиях, надеюсь, тоже сработает. для обычного формата .DOC, похоже, будет FileFormat:=wdFormatDOC, ну и тип .doc, конечно.

Для перекодирования в формат "только текст в Юникоде" с разрывами строк LF (стиль Юникс, работает также в Андроиде) расширение изменилось на .txt, а команда ActiveDocument.SaveAs на

ActiveDocument.SaveAs FileName:=strDocName, FileFormat:=wdFormatText, _
Encoding:=65001, LineEnding:=wdLFOnly

Кстати, "по отдельности" файлы PWI можно открыть так:

  • Установить под Windows XP (выше - не уверен) стандартный Activesync 4.5 - средство синхронизации коммуникаторов на Windows Mobile с Microsoft Outlook.
  • Открыть из Word (не щелчком по документу, а через меню Файл - Открыть) документ в PWI :) Если PWI не показывается, в списке форматов выбираем "Все файлы".

В Word должны быть следующие конвертеры, чтобы работа с PWI шла нормально:

MSInkWriter
MSInkWriter Template
MSPocketInkWord
MSPocketWord
MSPocketWordTemplate

Проверить, какие конвертеры есть в Вашем Word, можно таким кодом:

Dim cnvWrdPrf As FileConverter
For Each cnvWrdPrf In Application.FileConverters
 MsgBox (cnvWrdPrf.ClassName)
Next cnvWrdPrf


теги: word форматы vba макрос winmobile

06.02.2012, 23:05; рейтинг: 11892