Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Удалить используемую память при динамическом создании документа word из vba excel

340
02 июля 2018 года
Fellinggood
170 / / 27.04.2009
Здравствуйте. Я создаю динамически документ ворд через приложение vba excel, далее заполняю его данными. Подскажите нужно ли удалять объекты, через которые я создаю документ word, такие как oWord, oDocument, docActive в моей программе. Будет ли утечка памяти, если не удалить эти объекты. Если нужно их удалять, то подскажите как это сделать.

Код:
Dim oWord As Object
Dim oDocument As Object


Sub Add_Doc_Zadvizhek()
    Dim Mytime, myTimeSokr As String 'Переменная для текущего времени
   Dim MyDate As String 'Переменная текущей даты
   Dim TimeDate As String 'Переменная содержащая дату и время
   Dim NameWihtoutDate, SaveFileName As String 'NameWihtoutDate - Имя файла без даты, FileName - имя файлы с датой
   Dim Dlina_Mytime As Integer 'длина строки
   Dim Putfile As String
    Dim tableNew As Object
    Dim docActive As Object
    Dim i, j As Integer
    Dim myRange As Object
    Dim nach_poz As Integer
    Dim kon_poz As Integer
    Dim kol_zadv As Integer
    Dim provKoncStran As Integer
    Dim NomNachStrShkaf, NomKonStrShkaf, NomTekStroki, KolZadvShkafa As Integer
    Dim nextPage As Integer 'Индикатор следующей страницы, перешла ли строка таблицы на следующую страницу
   Dim tekStrDokum, RowPredStolb As Integer
    Dim NazvShkProdolj As String
   
    'Даём этому экземпляру имя "oWord". Через это имя
   'будем обращаться к программе Word.
    Set oWord = CreateObject("Word.Application")

    'Делаем программу "Word" видимой.
    oWord.Visible = True

    'Создаём в программе Word документ и обращаемся к этому
   'документу как "oDocument".
    Set oDocument = oWord.Documents.Add
 
    'Присваиваем объекту docActive активный документ приложения oWord
    Set docActive = oWord.ActiveDocument
   
Далее идет заполнение документа большим объемом данных...
327
02 июля 2018 года
UserNet2008
748 / / 03.04.2010
Это как правило.Чем меньше времени объект находится в памяти тем быстрее его можно удалить из памяти.
Прежде как удалить объект нужно его закрыть (объект.Quit or объект.Close) ,потом можно уничтожить объект = Nothing
Пример DB
 
Код:
Dim DB As Database
'уборка мусора  
 If Not DB Is Nothing Then DB.Close: Set DB = Nothing
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог