powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Как средствами VB, сделать документ Word активным?
12 сообщений из 12, страница 1 из 1
Как средствами VB, сделать документ Word активным?
    #35019770
kminas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть программа, которая открывает документ Word для заполнения таблицы в нем. Но, если ранее были открыты другие документы, прога работает с первым из них. Как средствами VB сделать документ Word, открытый прогой активным?
...
Рейтинг: 0 / 0
Как средствами VB, сделать документ Word активным?
    #35020879
Nikz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
например так, открытый документ будет активным:
Код: 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
Как средствами VB, сделать документ Word активным?
    #35027553
kminas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
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
Как средствами VB, сделать документ Word активным?
    #35027612
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
Как средствами VB, сделать документ Word активным?
    #35027683
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не догадается. На другом форуме я дал правильный ответ, но он его не понял.
...
Рейтинг: 0 / 0
Как средствами VB, сделать документ Word активным?
    #35027697
kminas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AntonariyНе догадается. На другом форуме я дал правильный ответ, но он его не понял.
Извини, про твой совет забыл. Это уже четвертый форум (или первый). Вечером попробую.
...
Рейтинг: 0 / 0
Как средствами VB, сделать документ Word активным?
    #35028011
lomiloff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Может кто подскажет, как открыть документ ворд с полями слияния, сообщить ему источник данных и заполнить поля из определенного recordset'а. И все это из проги на VB!
...
Рейтинг: 0 / 0
Как средствами VB, сделать документ Word активным?
    #35028134
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Подскажет рекордер макросов.
...
Рейтинг: 0 / 0
Как средствами VB, сделать документ Word активным?
    #35028193
lomiloff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А причем здесь макросы?
...
Рейтинг: 0 / 0
Как средствами VB, сделать документ Word активным?
    #35028260
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
При том, что это та же самая программа, только выполняющаяся изнутри ворда. Если начать запись макроса и выполнить все необходимые действия, то получится код, который покажет, как работать с полями слияния.
...
Рейтинг: 0 / 0
Как средствами VB, сделать документ Word активным?
    #35043272
kminas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
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
Период между сообщениями больше года.
Как средствами VB, сделать документ Word активным?
    #36353212
гость21
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
kminas,

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


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