Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.02.2015, 10:29   #1
ac1-caesar
Форумчанин
 
Регистрация: 26.07.2013
Сообщений: 134
По умолчанию Не открывая word файла узнать количество его страниц?

Уважаемые форумчане!

В свойствах word файла есть информация о количестве страниц.
Подскажите пожалуйста, как обратиться к этой информации из excel, как определить количество страниц word файла не открывая его?
В excel таблице есть список с именами файлов.
В папке word файлы. Необходимо узнать количество страниц каждого word файла.
ac1-caesar вне форума Ответить с цитированием
Старый 02.02.2015, 15:09   #2
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

в этой теме вам дали несколько вариантов решения
Что не устраивает?
EducatedFool вне форума Ответить с цитированием
Старый 03.02.2015, 20:33   #3
pashulka
Форумчанин
 
Регистрация: 03.11.2006
Сообщений: 524
По умолчанию

Вот здесь можно найти ещё один вариант получения свойств закрытого документа.

Применительно к поставленной задаче, это может выглядить, например, так :

Код:
Private Sub getNumberOfPagesInCloseDocument()
    Dim iFolder As Object, iFolderItem As Object
    Dim iPath As Variant, iCount#, SCID$

    iPath = "C:\Мои документы\" 'Укажите свою папку
    SCID = "{F29F85E0-4FF9-1068-AB91-08002B27B3D9} 14"
    
    Set iFolder = CreateObject("Shell.Application").NameSpace(iPath)
    If Not iFolder Is Nothing Then
       For Each iFolderItem In iFolder.Items
           If iFolderItem.Name Like "*.doc" Then
              iCount = iFolderItem.ExtendedProperty(SCID)
              MsgBox iCount, , iFolderItem.Name
           End If
       Next
    Else
       MsgBox "Укажите реально существующую папку", vbCritical, ""
    End If
End Sub
pashulka вне форума Ответить с цитированием
Старый 03.02.2015, 21:07   #4
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Посмотрите
http://www.planetaexcel.ru/forum/ind...vami&buf_fid=1
Там правда количество страниц не извлекается... Зато другого много, 40 свойств.
webmoney: E265281470651 Z422237915069 R418926282008

Последний раз редактировалось Hugo121; 03.02.2015 в 21:11.
Hugo121 вне форума Ответить с цитированием
Старый 03.02.2015, 23:05   #5
ac1-caesar
Форумчанин
 
Регистрация: 26.07.2013
Сообщений: 134
По умолчанию

Hugo121, спасибо! Очень полезный код. Но на данный момент необходимо именно количество страниц.
ac1-caesar вне форума Ответить с цитированием
Старый 03.02.2015, 23:11   #6
ac1-caesar
Форумчанин
 
Регистрация: 26.07.2013
Сообщений: 134
По умолчанию

pashulka, спасибо! Вы пока единственный, кто предложил вариант, который отвечает на поставленный вопрос.
ac1-caesar вне форума Ответить с цитированием
Старый 04.02.2015, 11:00   #7
ac1-caesar
Форумчанин
 
Регистрация: 26.07.2013
Сообщений: 134
По умолчанию

pashulka, макрос отрабатывает, однако не считает страницы и не выводит Msgbox.
Пошагово смотрел в Locals Window, ловит путь, имя файла, размер, дату изменения, а вот количество страниц всегда 0.
Здесь нашел конструкцию из вашего кода - Page Count {F29F85E0-4FF9-1068-AB91-08002B27B3D9}, 14
Может в ней дело?
ac1-caesar вне форума Ответить с цитированием
Старый 04.02.2015, 19:03   #8
pashulka
Форумчанин
 
Регистрация: 03.11.2006
Сообщений: 524
По умолчанию

ac1-caesar, Если макрос действительно не выводит MsgBox, то это означает, что в указанной папке нет файлов, имена которых заканчиваются на .doc (что вполне вероятно, ибо в папке могут находиться документы с расширением .docx или .docm)

В этом случае, рекомендую "заменить" "*.doc" на "*.doc*" или, если в папке находятся только документы word, вообще избавиться от проверки.

Последний раз редактировалось pashulka; 04.02.2015 в 20:33.
pashulka вне форума Ответить с цитированием
Старый 04.02.2015, 21:06   #9
ac1-caesar
Форумчанин
 
Регистрация: 26.07.2013
Сообщений: 134
По умолчанию

Цитата:
Сообщение от pashulka Посмотреть сообщение
ac1-caesar, Если макрос действительно не выводит MsgBox, то это означает, что в указанной папке нет файлов, имена которых заканчиваются на .doc (что вполне вероятно, ибо в папке могут находиться документы с расширением .docx или .docm)

В этом случае, рекомендую "заменить" "*.doc" на "*.doc*" или, если в папке находятся только документы word, вообще избавиться от проверки.
Да, у меня только docx и я сразу заменил. Я же говорю, пошагово смотрел в Locals Window, перебирает файлы, ловит путь, имя файла, размер, дату изменения, а вот количество страниц всегда 0.
И Msgbox не выводит.

Да, еще не знаю что означают две запятые в этой строчке
Код:
MsgBox iCount, , iFolderItem.Name

Последний раз редактировалось ac1-caesar; 04.02.2015 в 21:12.
ac1-caesar вне форума Ответить с цитированием
Старый 04.02.2015, 21:42   #10
pashulka
Форумчанин
 
Регистрация: 03.11.2006
Сообщений: 524
По умолчанию

Я не сомневаюсь, что Вы пошагово убедились, что макрос перебирает файлы и папки, но повторюсь, если функция MsgBox не выводит количеством страниц, значит собака порылась именно в проверке … так что либо вообще убирайте её или замените на If LCase(iFolderItem.Name) Like "*.doc*" Then
pashulka вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не открывая txt порезать его на читабельные куски. Человек_Борща Общие вопросы Delphi 5 03.01.2011 18:06
Определение количества страниц в документе word, не открывая его? samouelson Общие вопросы Delphi 1 02.03.2010 16:24
Работать в Word, не открывая документы (работа с закрытыми документами Word) Георгиевич Microsoft Office Word 10 07.09.2009 11:19
Как узнать количество выданных на печать страниц Bogood Общие вопросы Delphi 3 13.03.2009 17:29
Как обратиться к ячейке файла Excel не открывая его Alexandro Microsoft Office Excel 3 28.05.2008 12:02