Автор Тема: Word VBA Макросы: Определить формат файла  (Прочитано 2674 раз)

Anton

  • Гость
Добрый день!
У меня есть непростой вопрос: можно ли определить тип открытого файла Word? Т.е. узнать, открытый файл существует в формате doc или docx?

Оффлайн Администратор

  • Administrator
  • Сообщений: 1939
Re: Word VBA Макросы: Определить формат файла
« Ответ #1 : 10 Апрель 2017, 14:34 »
Вот так можно узнать формат активного файла (это файл, который отображается на мониторе):
Sub Макрос()
    ' Вывод результата в View - Immediate Window.
    Debug.Print ActiveDocument.SaveFormat
End Sub

Возвращается число из набора констант "WdSaveFormat": https://msdn.microsoft.com/en-us/library/bb238158(v=office.12).aspx


Кроме того, можно узнать расширение файла. Но нужно помнить, что юзер может вручную изменить расширение, поэтому по расширению нельзя на 100% узнать формат файла:

Sub Макрос2()

    Dim str As String
   
    '1. Копирование имени файла в переменную.
    str = ActiveDocument.Name
    '2. Извлечение расширения.
    str = Mid(str, InStrRev(str, ".") + 1)
    '3. Отображение расширение в View - Immediate Window.
    Debug.Print str

End Sub

Anton

  • Гость
Re: Word VBA Макросы: Определить формат файла
« Ответ #2 : 10 Апрель 2017, 19:39 »
Ух ты! Спасибо! Даже Word 97 узнает.

Anton

  • Гость
Re: Word VBA Макросы: Определить формат файла
« Ответ #3 : 17 Январь 2018, 11:36 »
Помогите пожалуйста определить формат прикрепленного файла.

По методике выше определяет, что это 12 - XML document format. Я никак не пойму, в чем отличие от docx и вообще что это за формат (какое должно быть расширение)?



[вложение удалено администратором]

Оффлайн Администратор

  • Administrator
  • Сообщений: 1939
Re: Word VBA Макросы: Определить формат файла
« Ответ #4 : 17 Январь 2018, 15:17 »
12 - XML document format - это расширение "docx".

Anton

  • Гость
Re: Word VBA Макросы: Определить формат файла
« Ответ #5 : 17 Январь 2018, 15:53 »
Тогда почему вверху Word пишет "Режим ограниченной функциональности"? У меня Word 2010.
В других документах docx не пишет.

Началось все с того, что некоторые макросы перестали работать.
Я стал разбираться - действительно, если пересохранить в Word 2010, то макрос снова заработал. Пересохранял я так: Файл - Сохранить как - выбрал первый формат. Тоже сохранилось в docx, но надпись "Режим ограниченной функциональности" пропала.

Оффлайн Администратор

  • Administrator
  • Сообщений: 1939
Re: Word VBA Макросы: Определить формат файла
« Ответ #6 : 17 Январь 2018, 19:08 »
С этим файлом что-то не так. Я использовал VBA, чтобы понять, что это за файл, VBA сказал, что файл относится к версии 2003. Но в версии 2003 не было расширения "docx". Может быть в ворде 2003 использовался конвертер, позволяющий работать с docx-файлами. Проверить это нет возможности (и желания).

А вообще такая надпись может появляться, если с файлом работают в разных версиях ворда.
Например, в ворде 2016 такая надпись появляется, если открыть файл, с которым работали в ворде 2010.
Т.к. в ворде 2016 есть новое, чего нет в ворде 2010.