Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Как средствами VB, сделать документ Word активным? / 12 сообщений из 12, страница 1 из 1
19.12.2007, 11:42
    #35019770
kminas
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как средствами VB, сделать документ Word активным?
Есть программа, которая открывает документ Word для заполнения таблицы в нем. Но, если ранее были открыты другие документы, прога работает с первым из них. Как средствами VB сделать документ Word, открытый прогой активным?
...
Рейтинг: 0 / 0
19.12.2007, 15:51
    #35020879
Nikz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как средствами VB, сделать документ Word активным?
например так, открытый документ будет активным:
Код: plaintext
1.
2.
3.
4.
Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
Private Sub Command1_Click()
ShellExecute Me.hwnd, "open", "C:\New Microsoft Word Document.doc",  0 ,  0 ,  0 
End Sub
или так, активируем окно с нужным заголовком:
Код: plaintext
AppActivate "New Microsoft Word Document.doc - Microsoft Word", True
но наверное лучше так:
открываем документ и пишем в открытый документ, и пофиг сколько еще экземпляров ворда открыто и какой из них активен
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
Private Sub Command1_Click()
Dim w As Object
Dim d As Object
Set w = CreateObject("Word.Application")
Set d = w.Documents.Open("C:\New Microsoft Word Document.doc")
d.Select
w.Selection.TypeText "bla bla bla"
d.Close True
w.Quit
Set d = Nothing
Set w = Nothing
End Sub
...
Рейтинг: 0 / 0
21.12.2007, 23:35
    #35027553
kminas
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как средствами VB, сделать документ Word активным?
Nikz Я слишком обще объяснил ситуацию. Вот основная часть моих кодов.

Это код создания файла
процедура открывает файл с таблицей (который должен остаться неизменным). Эту таблицу юзер должен сохранить под своим именем в другой папке и дальше работать с этим файлом, т.е. заполнять таблицу с помощью текста(который заложен в программе) и вводимых переменных.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
Private Sub cmdSave_Click()
Public oapp As Object 

Set oapp = CreateObject("Word.Application")
oapp.Visible = True
oapp.ChangeFileOpenDirectory "C:\Мои документы\Спецификации\Templates\"
oapp.Documents.Open FileName:="СпецОВ.doc"
oapp.ActiveDocument.SaveAs FileName:="\Мои документы\Спецификации\Задай ИМЯ файла", FileFormat:=wdFormatDocument, _
        LockComments:=False, Password:="", AddToRecentFiles:=True, WritePassword _
        :="", ReadOnlyRecommended:=False, EmbedTrueTypeFonts:=False, _
        SaveNativePictureFormat:=False, SaveFormsData:=False, SaveAsAOCELetter:= _
        False
oapp.Selection.MoveDown Unit:=wdLine, Count:= 3 
oapp.Dialogs(wdDialogFileSaveAs).Show

End Sub

Это код открытия уже существующего файла
процедура выводит юзера в папку, где предполагается хранить указанные файлы, он выбирает свой и работает с ним дальше

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
Private Sub cmdOpen_Click()

Set oapp = CreateObject("Word.Application")
oapp.Visible = True
oapp.ChangeFileOpenDirectory "c:\Мои документы\Спецификации\"
oapp.Dialogs(wdDialogFileOpen).Show
With ActiveDocument.Tables
     If .Count >  0  Then
        With .Item(.Count)
             .Cell(.Rows.Count,  1 ).Select
        End With
     End If
End With
End Sub









Константин
...
Рейтинг: 0 / 0
22.12.2007, 00:56
    #35027612
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как средствами VB, сделать документ Word активным?
kminasЭто код открытия уже существующего файла
процедура выводит юзера в папку, где предполагается хранить указанные файлы, он выбирает свой и работает с ним дальше

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
Private Sub cmdOpen_Click()

Set oapp = CreateObject("Word.Application")
oapp.Visible = True
oapp.ChangeFileOpenDirectory "c:\Мои документы\Спецификации\"
oapp.Dialogs(wdDialogFileOpen).Show
With ActiveDocument.Tables
     If .Count >  0  Then
        With .Item(.Count)
             .Cell(.Rows.Count,  1 ).Select
        End With
     End If
End With
End Sub
Я тебе пометил строку - источник проблемы. Сам догадаешься что в ней не в порядке? :)
...
Рейтинг: 0 / 0
22.12.2007, 07:49
    #35027683
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как средствами VB, сделать документ Word активным?
Не догадается. На другом форуме я дал правильный ответ, но он его не понял.
...
Рейтинг: 0 / 0
22.12.2007, 09:05
    #35027697
kminas
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как средствами VB, сделать документ Word активным?
AntonariyНе догадается. На другом форуме я дал правильный ответ, но он его не понял.
Извини, про твой совет забыл. Это уже четвертый форум (или первый). Вечером попробую.
...
Рейтинг: 0 / 0
22.12.2007, 18:30
    #35028011
lomiloff
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как средствами VB, сделать документ Word активным?
Может кто подскажет, как открыть документ ворд с полями слияния, сообщить ему источник данных и заполнить поля из определенного recordset'а. И все это из проги на VB!
...
Рейтинг: 0 / 0
22.12.2007, 22:30
    #35028134
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как средствами VB, сделать документ Word активным?
Подскажет рекордер макросов.
...
Рейтинг: 0 / 0
23.12.2007, 00:17
    #35028193
lomiloff
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как средствами VB, сделать документ Word активным?
А причем здесь макросы?
...
Рейтинг: 0 / 0
23.12.2007, 09:17
    #35028260
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как средствами VB, сделать документ Word активным?
При том, что это та же самая программа, только выполняющаяся изнутри ворда. Если начать запись макроса и выполнить все необходимые действия, то получится код, который покажет, как работать с полями слияния.
...
Рейтинг: 0 / 0
01.01.2008, 22:27
    #35043272
kminas
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как средствами VB, сделать документ Word активным?
White Owl kminas
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
With ActiveDocument.Tables
     If .Count >  0  Then
        With .Item(.Count)
             .Cell(.Rows.Count,  1 ).Select
        End With
     End If
End With
Я тебе пометил строку - источник проблемы. Сам догадаешься что в ней не в порядке? :)
Понял. Вообще убрал эти строки из процедуры открытия файла, но прога все также активирует ранее открытые файлы. Я предполагаю, что надо как-то определить имя файла, загнать его в переменную и активировать. Перерыл кучу учебников, интернет, но как определить имя открытого файла, ну не нашел. Прав видно Antonariy , чего-то не догоняю.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
08.12.2009, 08:24
    #36353212
гость21
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как средствами VB, сделать документ Word активным?
kminas,

name1 = ActiveWorkbook.Name
Workbooks(name1).Activate
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Как средствами VB, сделать документ Word активным? / 12 сообщений из 12, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]