Тема: Как открыть файл с помощью VBA, если все чертежи уже закрыты.

Ситуация у меня возникла следующая:
из AutoCAD 2009 макрос записывает текущий рисунок с другим именем в формате AutoCAD 2004, этот файл предназначен для других машин. При этом меняется имя текущего файла и его структура, и он мне больше не нужен, я его выгружаю, марос при этом продолжает работать и должен загрузить исходный файл, имя его и путь к нему макрос помнит, а как загрузить файл я не могу найти. Объект "Application" не имеет метода вроде LoadFile, остальные объекты вроде "thisdrawing" уже выгружены.....
Как мне загрузить файл в этой ситуации, помогите, пожалуйста.
Заранее спасибо, Николай.

Re: Как открыть файл с помощью VBA, если все чертежи уже закрыты.

Почему-то у меня эта связка работает:

Const SOURCE_FILE As String = "d:\DWG-Samples\SaveAS_Test.dwg"
Sub SaveAS_Test()
   ThisDrawing.SaveAs ("d:\DWG-Samples\SaveAS_Test_2004.dwg"), ac2004_dwg
   ThisDrawing.Close
   ThisDrawing.Application.Documents.Open SOURCE_FILE
End Sub

Re: Как открыть файл с помощью VBA, если все чертежи уже закрыты.

Огромное спасибо за совет, я не нашел метод Documents.Open в классе Application, теперь у меня все получилось!
Но на моей машине код:
ThisDrawing.Application.Documents.Open Fn
Не работает!
Работает просто:
Application.Documents.Open Fn
Я всегда считал, что с выгрузкой чертежа выгружается и весь его объект ThisDrawing, на моей машине так и получается, Ваша, наверное игнорирует ThisDrawing в этом случае. Может у вас нет обязательного определения перменных, а у меня включено:
Option Explicit
Может поэтому. Как всегда нет времени все попробовать...
Еще раз спасибо!
Николай.

Re: Как открыть файл с помощью VBA, если все чертежи уже закрыты.

Все-таки не поленился и попрбовал: убрал
Option Explicit
Думал, что без обязательного определения переменных, VBA позволяет себе создавать объекты - нет не вышло, все равно выдает ошибку.
Остается предположить только одно: Вы, LeonidSN, всегда оставляли в AutoCAD хотя бы один открытый файл дополнительно, и вот его то класс ThisDrawing VBA и использовал.
Николай.

Re: Как открыть файл с помощью VBA, если все чертежи уже закрыты.

Да нет, дело не в объекте ThisDrawing.
Когда выгружаешь файл чертежа в памяти остается объект Application и его методы доступны. У меня не было дополнительных открытых файлов, и в таком виде тоже все работает:

[b]Application.Documents.Open SOURCE_FILE[/b]

А вообще, конкретный объект ThisDrawing представляет собой экземпляр класса ThisDrawing и если открыто несколько чертежей с которыми вы активно работаете то далеко не факт, что обязательный  модуль VBA - ThisDrawing ссылается на нужный вам чертеж. А что происходит с вашим ThisDrawing когда чертеж выгружен - не так уж и ясно. Но доступ к нему теряется.

Re: Как открыть файл с помощью VBA, если все чертежи уже закрыты.

Дело именно в объекте ThisDrawing:
Когда все рисунки выгружены, объект ThisDrawing недоступен, даже если автокад его и не выгружает совсем, то делает его недоступным.
Именно поэтому
ThisDrawing.Application.Documents.Open SOURCE_FILE  -- не работает, а
Application.Documents.Open SOURCE_FILE -- работает, так, как объект Application - существует всегда, пока загружен автокад.
Мне кажется, что Вы с этим согласны и речь идет только о формулировках.
Николай.