Страница 1 из 1

Активировать документ Word

Добавлено: 17 янв 2008, 22:31
kminas
Есть программа, которая открывает документ Word для заполнения таблицы в нем. Но, если ранее были открыты другие документы, то прога обращается к ним. Как средствами VB(A) сделать документ Word, открытый прогой активным?
Вот код, который открывает файл с таблицей, предлагает юзеру сохранить его под другим именем и, после сохранения, открывает форму для работы. Код родился после консультации на других форумах, но все равно не делает файл сохраненный юзеро активным.

Public oapp As Object
Option Explicit
_______________________________________________________
Private Sub cmdSave_Click()
Dim dlgFolderPicker As FileDialog
Dim fdf As FileDialogFilter
Dim myPuth
Set oapp = CreateObject("Word.Application")
oapp.Visible = True
oapp.ChangeFileOpenDirectory "C:\Templates\"
oapp.Documents.Open FileName:="СпецОВ.doc"
oapp.ChangeFileOpenDirectory "C:\Мои документы\Спецификации\"

Set dlgFolderPicker = oapp.FileDialog(msoFileDialogSaveAs)
With dlgFolderPicker
.AllowMultiSelect = False
.ButtonName = "Сохранить"
.FilterIndex = 1
If .Show = -1 Then
myPuth = .SelectedItems(1)
Else
Exit Sub 'пока не до условий
End If
End With
Set dlgFolderPicker = Nothing

oapp.ActiveDocument.SaveAs FileName:=myPuth
oapp.Selection.MoveDown Unit:=wdLine, Count:=3
Set oapp = Nothing


Beep
frmOpen.Hide
frmShtamp.Hide
With frmObor
.Show
.optShtamp.Visible = True
.optShtamp.Value = False
.SSTab1.Visible = True
.txtPos.Visible = True
.txtQuant.Visible = True
.Label4.Visible = True
.Label5.Visible = True
End With

End Sub

Re: Активировать документ Word

Добавлено: 17 янв 2008, 23:34
Genyaa
Попробуйте так:
Вместо

oapp.ChangeFileOpenDirectory "C:\Templates\"
oapp.Documents.Open FileName:="СпецОВ.doc"
oapp.ChangeFileOpenDirectory "C:\Мои документы\Спецификации\"

сделайте так

oapp.ChangeFileOpenDirectory "C:\Templates\"
set myOpenedFile = oapp.Documents.Open(FileName:="СпецОВ.doc")
oapp.ChangeFileOpenDirectory "C:\Мои документы\Спецификации\"

и далее, везде, где нужно обращаться именно к этому открытому файлу, обращайтесь к нему по имени объекта myOpenedFile (имя выбрано произвольно). Например, для его активации:

myOpenedFile.Activate

Надеюсь, что получится. Времени для проверки у меня пока нет.

Re: Активировать документ Word

Добавлено: 17 янв 2008, 23:47
Genyaa
Попробуйте так:
Вместо

oapp.ChangeFileOpenDirectory "C:\Templates\"
oapp.Documents.Open FileName:="СпецОВ.doc"
oapp.ChangeFileOpenDirectory "C:\Мои документы\Спецификации\"

сделайте так

oapp.ChangeFileOpenDirectory "C:\Templates\"
set myOpenedFile = oapp.Documents.Open(FileName:="СпецОВ.doc")
oapp.ChangeFileOpenDirectory "C:\Мои документы\Спецификации\"

и далее, везде, где нужно обращаться именно к этому открытому файлу, обращайтесь к нему по имени объекта myOpenedFile (имя выбрано произвольно). Например, для его активации:

myOpenedFile.Activate

Надеюсь, что получится. Времени для проверки у меня пока нет.

Re: Активировать документ Word

Добавлено: 14 апр 2008, 14:41
kminas
Genyaa, спасибо.