Код: Выделить всё
...
On Error Resume Next
Set oapp = GetObject(,"Word.Application")
If Not Err.Number = 0 Then ' желательно проверять номер ошибки, но я его не ...
Set oapp = CreateObject("Word.Application")
Err.Clear
End If
...
Модератор: Naeel Maqsudov
Код: Выделить всё
...
On Error Resume Next
Set oapp = GetObject(,"Word.Application")
If Not Err.Number = 0 Then ' желательно проверять номер ошибки, но я его не ...
Set oapp = CreateObject("Word.Application")
Err.Clear
End If
...
Спасибо Евгений. Но у меня ничего не получается с GetObject(,"Word.Application"). Не подскажите, как с его помощью открыть файл по выбору пользователя, т.е. без заданного программно имени файла?Teslenko_EA писал(а):Здравствуйте kminas.
Вы же создаете объект и одновременно хотите избежать "открытия второй копии"
GetObject(,"Word.Application") избавит от создиния копии, но если объекта нет сгенерируется ошибка, "поймав" которую, создавайте новый - CreateObject.
Евгений.
Код: Выделить всё
Public oapp As Object
Dim dlg As Object
Sub Макрос1()
On Error Resume Next
Set oapp = GetObject(, "Word.Application")
If Err.Number <> 0 Then
Err.Clear
On Error GoTo 0
Set oapp = CreateObject("Word.Application")
End If
oapp.Visible = True
Set dlg = oapp.Dialogs(80) 'wdDialogFileOpen
If dlg.Show = -1 Then
oapp.Documents.Open Filename:=dlg.Name
End If
End Sub
прекрасно помню эти временакогдато имена файлов не могли содержать символы за пределами 437 кодовой страницы, и длиной не более восьми символов