igor_m писал(а):искать символы разделитель страниц
alibek писал(а):А что, есть такой символ?
igor_m писал(а):Должен быть обязательно. Может не один, а сочетание нескольких, типа vbCrLf.
viter.alex писал(а):Конвертировать в doc можно, но зачем знать количество страниц? Что с этой информацией делать?
igor_m писал(а):Лучше бы помогли подсказкой, чем отвлеченные вопросы задавать.
Sub BatchSaveRtfToDoc()
Dim sFilePath As String 'путь к документу
Dim sLogFilePath As String 'путь к лог-файлу
Dim i As Integer 'счётчик выбранных файлов
'Диалог выбора файлов
With Application.FileDialog(msoFileDialogFilePicker)
'Заголовок окна диалога
.Title = "Выберите файлы rtf"
'Допускается выбор нескольких файлов
.AllowMultiSelect = True
'Расширения файлов, которые можно выбрать
.Filters.Add "RTF", "*.rtf"
If .Show Then
'Если в диалоге нажали ОК
'Путь к лог файлу
sLogFilePath = .InitialFileName & "log.txt"
'Отключаем обновление экрана
Application.ScreenUpdating = False
'Скрываем приложение
Application.Visible = False
'Перебор путей к выбранным файлам
For i = 1 To .SelectedItems.Count
sFilePath = .SelectedItems(i)
'Открываем файл
With Documents.Open(sFilePath, ConfirmConversions:=False, ReadOnly:=True, AddToRecentFiles:=False)
'Сохраняем его в doc
.SaveAs2 Mid(sFilePath, 1, InStrRev(sFilePath, ".")) & "doc", 0, AddToRecentFiles:=False
'Принудительная переразбивка на страницы
.Repaginate
'Пишем в лог-файл
FixInLogFile sLogFilePath, .FullName & vbTab & .BuiltInDocumentProperties(wdPropertyPages) & " стр."
'Закрываем файл с сохранением изменений
.Close True
End With
Next
End If
End With
'Открываем лог-файл в блокноте
Shell Environ("SystemRoot") & "\notepad.exe """ & sLogFilePath & """"
End Sub
'Запись изменений в лог-файл
Sub FixInLogFile(sLogFilePath As String, sMessage As String)
Open sLogFilePath For Append As #1
Print #1, sMessage
Close #1
End Sub
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 4