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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 19.11.2018, 13:59   #1
MrDimain
Пользователь
 
Регистрация: 16.04.2017
Сообщений: 18
По умолчанию Закрытие Word из Excel

Здравствуйте, форумчане.
Такая проблема. Есть макрос, который заполняет документ Word по данным с листа. В конце кода освобождаю ресурсы.
Так вот на операции WordApplication.Quit очень долго висит(2-3мин).
Подскажите как ускорить процесс.
Вот код:
Код:
Sub ExportToWord()

    Application.StatusBar = "Подготовка к выводу КС..."
On Error GoTo Finaly:
    ' Переменные для WORD ==============================
    Dim WordApp As Word.Application
    Dim WordDoc As Word.Document
    ' Общие переменные =================================
    Dim PathFile As String
    Dim tmpRange As Range
    Dim tmpStr As String
    Dim CTB_Count As Integer
    Dim I As Integer
    ' Инициализация ====================================
    PathFile = ThisWorkbook.Path & "\" & "templates\КС\"
    Set WordApp = New Word.Application ' CreateObject("Word.Application")
    Set WordDoc = WordApp.Documents.Add(PathFile & "КС_РД.DOTX")
    
    
    '   ================================================
    '   ==========    Заполнение данными    ============
    '   ================================================
    '   Сохранение файлов ----------------------------------------------
    Application.StatusBar = "Сохранение в Word..."
    Call WordSaveAsDOCX(WordDoc, "КС", НОМЕР_КОМПЛЕКТА & "-КС")
    Application.StatusBar = "Сохранение в PDF..."
    Call WordSaveAsPDF(WordDoc, "КС", НОМЕР_КОМПЛЕКТА & "-КС")
    
Finaly:
    
    Application.StatusBar = "Завершение работы (1/4)..."
    WordDoc.Close False
    Application.StatusBar = "Завершение работы (2/4)..."
    WordApp.Quit          <<------------ ВОТ ТУТ !!!!!
    
    Application.StatusBar = "Завершение работы (3/4)..."
    Set WordDoc = Nothing
    Application.StatusBar = "Завершение работы (4/4)..."
    Set WordApp = Nothing
    
    Application.StatusBar = "ГОТОВО"
    MsgBox "ГОТОВО!"
End Sub
MrDimain вне форума Ответить с цитированием
Старый 20.11.2018, 20:44   #2
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

перед строкой
Call WordSaveAsDOCX ...
добавьте строку
WordApp.visible = true
и смотрите, что происходит с Word в процессе закрытия

по идее, ничего там зависать не должно, и Word должен закрываться за секунду
EducatedFool вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[VB] Копирование из Word в Excel: нужно переместить текст закладок из Word в определенные ячейки Excel. Broiler21 Помощь студентам 0 27.10.2017 14:41
Закрытие созданного процесса Excel AndrzejX Общие вопросы Delphi 2 07.08.2012 12:07
И снова закрытие файлов Word... hackPNZ Microsoft Office Word 6 29.11.2011 11:04
Закрытие Excel средствами acces gamaiunov_alex Microsoft Office Access 2 07.10.2010 12:18
Закрытие Excel-я из Delphi Demagog Помощь студентам 12 02.10.2009 12:16