Консультация № 69377
03.01.2007, 11:23
0.00 руб.
0 1 1
С Новым Годом ув. експерты!!
Вопрос вроде несложный, но по книгам я так ничего и не понял.
ВОПРОС: есть приложение Excel, в котором записаны макросы с пользовательскими формами. Так вот, при нажатии одной из кнопочок, мне нужно чтобы запустилось уже созданное приложение Word (допустим D:MacrosForma_Doc.doc).
Функция GetObject кажись не проходит. Подскажите плиз код процедурки...
Заранеее благодарен!!

Обсуждение

Неизвестный
03.01.2007, 13:14
общий
это ответ
Здравствуйте, Edhart!
Вообще то, GetObject и нужен для того, чтобы получить уже существующий ActiveX объект из файла(если файл указан)
Посмотрите, в приложении функция GetDoc пытается получить объект из файла path, если такого файла не существует, то создается новый документ, и сохраняется в path, если и это не возможно, то выводится сообщение об ошибке и возвращается Nothing.
В Sub CommandButton1_Click() документ "D:\Macros\Forma_Doc.doc" открывается(если еще не открыт) и становится активным.
Успехов.

Приложение:
Private Sub CommandButton1_Click()Dim wrd As Word.DocumentSet wrd = GetDoc("D:\Macros\Forma_Doc.doc")If Not wrd Is Nothing Then wrd.Application.Visible = True AppActivate wrd.NameEnd IfEnd SubFunction GetDoc(path As String) As Word.DocumentOn Error GoTo GetObjectErrorSet GetDoc = GetObject(path)GetDocExit:On Error GoTo 0Exit Function‘пытаемся сохранить в pathTrySaveAs:On Error GoTo ErrorMsg GetDoc.SaveAs path GoTo GetDocExitGetObjectError:If Err.Number = 440 Or Err.Number = 432 Then‘GetObject не прошел, создаем новый и сохраняем в path Set GetDoc = CreateObject("Word.Application").Documents.Add Resume TrySaveAsEnd If‘ErrorMsg: Set GetDoc = Nothing MsgBox Err.Description Resume GetDocExitEnd Function
Форма ответа