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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 13.05.2010, 15:58   #1
Tirendus
Форумчанин
 
Аватар для Tirendus
 
Регистрация: 20.03.2009
Сообщений: 272
Радость Excel + сохранине Word документа

Всем привет.

В ходе работы над небольшим макросом возникла проблема, связанная с сохранением открытого через Excel документа Word.

Код:
    ' Вот так открываю
    Dim wd As Object
    Set wd = CreateObject("Word.Application")
    wd.documents.Open ("c:\list.doc")
    wd.Visible = True
    ' Вот так сохраняю
    wd.activedocument.SaveAs filename:="d:\list.doc", FileFormat:=wdFormatDocument _
        , LockComments:=False, Password:="", AddToRecentFiles:= _
        True, WritePassword:="", ReadOnlyRecommended:=False, EmbedTrueTypeFonts:= _
        False, SaveNativePictureFormat:=False, SaveFormsData:=False, _
        SaveAsAOCELetter:=False
Пользуюсь Office 2007, при попытке открыть сохраненный Word документ, три раза выскакивает ошибка о том, что конвертер mswrd632.wpc невозможно запустить. Если изменяю расширение на .docx, всё открывется идеально, но нужно сохранить документ именно в .doc

Посоветуйте как это правильно сделать, пожалуйста.
Tirendus вне форума Ответить с цитированием
Старый 13.05.2010, 16:24   #2
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

По идее, всё верно.
Но попробуй ещё так:

Код:
Sub test()
    Dim wd As Object: Set wd = CreateObject("Word.Application")    ' Вот так открываю
    wd.Visible = True
    With wd.documents.Open("c:\list.doc")
        wdFormatDocument = 0
        .SaveAs Filename:="d:\list.doc", FileFormat:=wdFormatDocument    ' Вот так сохраняю
        .Close
    End With
End Sub
Проблема в том, что по умолчанию Word2007 сохраняет файл в своём формате: wdFormatDocumentDefault = 16

Поскольку в твоём коде переменная wdFormatDocument была не определена, по идее, должно было идти сохранение в формате Word2003:

wdFormatDocument = 0
wdFormatDocument97 = 0


Почему макрос сохраняет в формает 2007 - непонятно.

Список констант и их значений есть в MSDN.
EducatedFool вне форума Ответить с цитированием
Старый 13.05.2010, 16:36   #3
Tirendus
Форумчанин
 
Аватар для Tirendus
 
Регистрация: 20.03.2009
Сообщений: 272
По умолчанию

Большое спасибо
wdFormatDocument = 0 работает идеально
Tirendus вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Формирование документа Word на основе данных Excel gaevoy1 Microsoft Office Excel 10 11.04.2011 12:05
СОЗДАНИЕ ДОКУМЕНТА В WORD ИЗ EXCEL GanJa Microsoft Office Excel 7 07.07.2010 02:07
Заполнение документа Word из массива даных Excel sasha_prof Microsoft Office Excel 2 27.01.2010 11:10
Редактирование MS Word документа Johnson Общие вопросы Delphi 3 21.11.2009 15:20
Парсинг документа в Word Deathwatcher Общие вопросы Delphi 0 06.05.2009 12:11