Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.09.2011, 10:59   #1
ольгаг
Форумчанин
 
Регистрация: 22.02.2010
Сообщений: 325
По умолчанию Открытие документа Word из Excel

Добрый день, Уважаемые программисты!
Не могли бы Вы мне помочь в следующей ситуации: есть макрос копирования таблицы из листа excel в word:
Sub test()

Dim oWord As Object
Dim oDoc As Object

Sheets("Данные").Range("A3", Cells(Rows.Count, "W").End(xlUp)).Copy

On Error Resume Next

Set oWord = GetObject(, "Word.Application")

If Err.Number <> 0 Then
Err.Clear
Set oWord = CreateObject("Word.Application")
End If

If oWord Is Nothing Then
MsgBox "Не найдено приложение MS Word!", vbCritical, vbNullString
Exit Sub
End If

Filename$ = "Форма А4.dot"

If Dir("\\server\Информация\" & Filename$) <> "" Then
Set oDoc = oWord.Documents.Add("\\server\Инфор мация\" & Filename$)
Else
Set oDoc = oWord.Documents.Add(ThisWorkbook.Pa th & "\" & Filename$)
End If

If oDoc Is Nothing Then
MsgBox "Файл " & Filename$ & " не найден!", vbCritical, "Нет шаблона": Exit Sub
End If

oWord.Visible = True
oWord.ActiveDocument.Bookmarks.Item ("InsertHere").Range.Paste
oWord.Selection.HomeKey Unit:=wdStory

With oDoc.Range
.Application.Browser.Next
End With

oWord.Run "TableTitle"

Set oDoc = Nothing
Set oWord = Nothing

End Sub

Данный макрос после копирования таблицы с листа excel создает новый документ word на основе шаблона "Форма А4.dot", вставляет таблицу и выполняет макрос из word. Все вроде бы работает, но не устраивает то, что документ word при уже запущенном приложении открывается в свернутом виде, т.е. если есть "Документ1.doc", то окно "Документ2.doc" и т.д. открывается уже в свернутом виде.
Подскажите пожалуйста, что нужно изменить или добавить в макрос, чтобы ВСЕ (или последующие после первого) создаваемые макросом документы word открывались активными (разворачивались на переднем плане)? Заранее спасибо.
ольгаг вне форума Ответить с цитированием
Старый 19.09.2011, 13:17   #2
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Поэкспериментируйте с этими строками кода:


oDoc.Windows(1).WindowState = 1 'wdWindowStateMaximize
oDoc.Windows(1).Activate
oDoc.Windows(1).SetFocus
EducatedFool вне форума Ответить с цитированием
Старый 19.09.2011, 17:17   #3
ольгаг
Форумчанин
 
Регистрация: 22.02.2010
Сообщений: 325
По умолчанию

Спасибо большое, попробую!
ольгаг вне форума Ответить с цитированием
Старый 19.09.2011, 19:01   #4
ольгаг
Форумчанин
 
Регистрация: 22.02.2010
Сообщений: 325
По умолчанию

Не получилось.
Работает если запускать (создавать) для каждого документа word новое приложение:
Set oWord = CreateObject("Word.Application")
Set oDoc = oWord.Documents.Add(ThisWorkbook.Pa th & "\" & Filename$)
oWord.Visible = True
...
т.е. если не осуществлять проверку запущенного приложения Ms Word. Но в таком случае при закрытии документов word программа ругается на "Normal.dot". Не подскажите как этого избежать?
ольгаг вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
открытие документа word balashova C++ Builder 0 11.04.2011 22:56
СОЗДАНИЕ ДОКУМЕНТА В WORD ИЗ EXCEL GanJa Microsoft Office Excel 7 07.07.2010 02:07
Delphhi 7 Открытие документа ms Word Aleks1988 Помощь студентам 14 14.05.2010 13:30
Excel + сохранине Word документа Tirendus Microsoft Office Excel 2 13.05.2010 16:36
Заполнение документа Word из массива даных Excel sasha_prof Microsoft Office Excel 2 27.01.2010 11:10