Word2003. Как узнать сколько страниц?

Программирование на Visual Basic for Applications
igor_m
Постоялец
Постоялец
 
Сообщения: 343
Зарегистрирован: 22.03.2002 (Пт) 12:40

Word2003. Как узнать сколько страниц?

Сообщение igor_m » 08.08.2011 (Пн) 22:51

Просто перебирать все символы в документе, искать символы разделитель страниц и считать их? Или можно как-то еще?

FireFenix
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1640
Зарегистрирован: 25.05.2007 (Пт) 10:24
Откуда: Mugen no Sora

Re: Word2003. Как узнать сколько страниц?

Сообщение FireFenix » 08.08.2011 (Пн) 23:14

Птицей Гермеса меня называют, свои крылья пожирая... сам себя я укрощаю
私はヘルメスの鳥 私は自らの羽根を喰らい 飼い慣らされる

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Re: Word2003. Как узнать сколько страниц?

Сообщение alibek » 09.08.2011 (Вт) 10:37

Лучше использовать функцию ComputeStatistics.
Lasciate ogni speranza, voi ch'entrate.

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Re: Word2003. Как узнать сколько страниц?

Сообщение alibek » 09.08.2011 (Вт) 10:38

igor_m писал(а):искать символы разделитель страниц

А что, есть такой символ?
Lasciate ogni speranza, voi ch'entrate.

igor_m
Постоялец
Постоялец
 
Сообщения: 343
Зарегистрирован: 22.03.2002 (Пт) 12:40

Re: Word2003. Как узнать сколько страниц?

Сообщение igor_m » 09.08.2011 (Вт) 21:07

alibek писал(а):А что, есть такой символ?

Должен быть обязательно. Может не один, а сочетание нескольких, типа vbCrLf.
Причем когда я спрашивал, то имел в виду именно такой вариант, когда страницы разделяются разделителем страниц (не знаю как правильно он называется). Другое дело, что и без него документ может быть многостраничным.

Никогда не работал в Вордом и вообще ничего там не знаю. Может кто-то написать самый простой вариант как для файла "C:\test.rtf" узнать сколько в нем страниц (отделены разделителями страниц). Потом его нужно сконвертить в Вордовский .doc
Я так понимаю, нужно его открыть Вордом, узнать сколько страниц в нем и сохранить под другим именем как .doc
Этих файлов много, раскиданы по разным папкам, и они здоровенные, что вручную забабахаешься с ними работать. Но количество страниц нужно знать точно, потому что каждая страница - это бумажный документ.

viter.alex
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 221
Зарегистрирован: 27.07.2008 (Вс) 20:17
Откуда: Montreal

Re: Word2003. Как узнать сколько страниц?

Сообщение viter.alex » 10.08.2011 (Ср) 0:54

Конвертировать в doc можно, но зачем знать количество страниц? Что с этой информацией делать?
Лучше день потерять — потом за пять минут долететь!

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Re: Word2003. Как узнать сколько страниц?

Сообщение alibek » 10.08.2011 (Ср) 8:35

igor_m писал(а):Должен быть обязательно. Может не один, а сочетание нескольких, типа vbCrLf.

Кому должен?
Есть символ "разрыв страницы".
Символа "разделитель страниц" не бывает, потому что разбивка на страницы может быть автоматической.
Lasciate ogni speranza, voi ch'entrate.

igor_m
Постоялец
Постоялец
 
Сообщения: 343
Зарегистрирован: 22.03.2002 (Пт) 12:40

Re: Word2003. Как узнать сколько страниц?

Сообщение igor_m » 10.08.2011 (Ср) 18:58

viter.alex писал(а):Конвертировать в doc можно, но зачем знать количество страниц? Что с этой информацией делать?

Не могу прямо ответить, т.к. внутренняя информация, но общий смысл такой: 1 страница - 1 документ. Например в файле 2000 страниц - 2000 раз деньги перечислили (или другие телодвижения сделали). Это имеет совершенно конкретный смысл.

Лучше бы помогли подсказкой, чем отвлеченные вопросы задавать. Без помощи я потрачу кучу времени и сил на то чтобы разобраться со всем этим. Вообще там на каждой странице еще правку нужно делать в определенном месте, но там я уж сам разбираться буду.

viter.alex
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 221
Зарегистрирован: 27.07.2008 (Вс) 20:17
Откуда: Montreal

Re: Word2003. Как узнать сколько страниц?

Сообщение viter.alex » 10.08.2011 (Ср) 20:30

igor_m писал(а):Лучше бы помогли подсказкой, чем отвлеченные вопросы задавать.

Тебе уже подсказали, но видимо это прошло мимо твоего внимания.
вот тебе "рыба" на пересохранение в doc, а дальше, как в рекламе, сам.
Код: Выделить всё
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
Лучше день потерять — потом за пять минут долететь!

igor_m
Постоялец
Постоялец
 
Сообщения: 343
Зарегистрирован: 22.03.2002 (Пт) 12:40

Re: Word2003. Как узнать сколько страниц?

Сообщение igor_m » 11.08.2011 (Чт) 17:20

Спасибо тебе большое за помощь. Просто настолько устал последнее время, что сил уже нет в чем-то разбираться. И времени тоже нет. Есть самые неотложные задачи - все уходит на них. Остальное - сколько хватает сил.
То, что ты написал - вполне достаточно.


Вернуться в VBA

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 43

    TopList