Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.62/55: Рейтинг темы: голосов - 55, средняя оценка - 4.62
1 / 1 / 0
Регистрация: 02.04.2015
Сообщений: 84

Открытие Word из Excel и Поверх всех окон

30.03.2016, 05:57. Показов 11800. Ответов 37
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте.
Собственно сабж.
Чего-то ничего путнего в инете найти не могу.
На форуме нашёл пару тем , но что-то ничего не помогло.
Нужно чтобы при открытие Word из Excel ,окно Word было поверх всех окон.

Добавлено через 15 минут
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Sub za()
    Dim objWrdApp As Object
    Dim objWrdDoc As Object
    On Error Resume Next
    Set objWrdApp = GetObject(, "Word.Application")
        If objWrdApp Is Nothing Then
            Set objWrdApp = CreateObject("Word.Application")
            Set objWrdDoc = objWrdApp.Documents.Open(ThisWorkbook.Path + "" + "t.dot")
            objWrdApp.Visible = True
        End If
    Set objWrdDoc = objWrdApp.Documents.Open(ThisWorkbook.Path + "" + "t.dot")
    Set objWrdDoc = Nothing
    Set objWrdApp = Nothing
    
End Sub
1
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
30.03.2016, 05:57
Ответы с готовыми решениями:

Word поверх Всех Окон
Здравствуйте! Кнопка открывает документ, но сзади всех окон, - Как дописать чтоб документ был открыт поверх других окон? Код Private Sub...

Две формы поверх всех окон. Вторая не хочет быть поверх
Ребят, поиск юзал, всё пробовал. Вторая форма не хочет быть наверху, первая нормально наверху висит. Вторая отврывается по событию OnShow...

Windows 10 - панель задач (там где Пуск) поверх всех окон, поверх rdesktop и т.д
Windows 10 - панель задач (там где Пуск) поверх всех окон, поверх rdesktop и т.д. Внезапно на 8 компьютерах из 20, видимо после...

37
1 / 1 / 0
Регистрация: 02.04.2015
Сообщений: 84
31.03.2016, 09:51  [ТС]
Студворк — интернет-сервис помощи студентам
neit95, мне другой файл надо открыть только для чтения , код поулчается открывает файл zdot , переделывает его и сохраняет его как zname. Вот мне нужно чтоб он либо сохранил его Readonly, либо чтоб открывал Readonly

Добавлено через 1 минуту
Shersh, что-то толком не выходить. Получается выставить ReadOnlyRecommended , но тогда при открытие выскакивает ужасная табличка.
0
15 / 13 / 6
Регистрация: 24.02.2014
Сообщений: 93
31.03.2016, 09:53
avenger24, ну, то, что скинул, оно открывает zdot как ReadOnly
0
1 / 1 / 0
Регистрация: 02.04.2015
Сообщений: 84
31.03.2016, 09:58  [ТС]
neit95, ага , а нам надо zname открыть(
0
15 / 13 / 6
Регистрация: 24.02.2014
Сообщений: 93
31.03.2016, 10:01
avenger24, имеете ввиду, чтобы после сохранения при последующих открытиях открывал как ReadOnly?
0
1 / 1 / 0
Регистрация: 02.04.2015
Сообщений: 84
31.03.2016, 10:16  [ТС]
neit95, Ага. Пока решил проблему так.
Visual Basic
1
2
3
4
SetAttr zname, vbNormal
objWrdDoco.SaveAs zname
 objWrdApp.Quit True
 SetAttr zname, vbReadOnly
Добавлено через 2 минуты
neit95, но всё равно не то , что хочется. Хочется чтобы открывался как шаблон .dot , то есть даже без изменения при закрытие предлагал файл Сохранять как.
0
15 / 13 / 6
Регистрация: 24.02.2014
Сообщений: 93
31.03.2016, 10:22
avenger24, тут кое-что нашлось, поможет или нет - не знаю. В общем, когда что-то не ясно, я включаю запись макроса, делаю нужные действия вручную, потом смотрю результат. В общем, я в ворде проделал следующее: Рецензирование - Защитить документ - Ограничить форматирование и редактирование. Там поставил галку возле "Разрешить только указанный способ редактирования", в списке оставил "Только чтение". При включении защиты, поставил пароль. Потом сохранил документ. В общем, после манипуляций, код макроса оказался таким:
Visual Basic
1
2
3
4
5
6
7
8
9
ActiveDocument.Protect Password:="abc", NoReset:=False, Type:= _
wdAllowOnlyReading, UseIRM:=False, EnforceStyleLock:=False
' Далее идёт сохранение
ChangeFileOpenDirectory "C:\tdoc"
ActiveDocument.SaveAs FileName:="Doc1.docx", FileFormat:= _
wdFormatXMLDocument, LockComments:=True, Password:="", AddToRecentFiles:= _
True, WritePassword:="", ReadOnlyRecommended:=False, EmbedTrueTypeFonts:= _
False, SaveNativePictureFormat:=False, SaveFormsData:=False, _
SaveAsAOCELetter:=False
ActiveDocument - это ваш objWrdDoc (вроде)

Пароль там был необязателен, так что если его оставить пустым, то возможно будет то, что нужно.
1
1 / 1 / 0
Регистрация: 02.04.2015
Сообщений: 84
08.04.2016, 09:31  [ТС]
shanemac51, активно пользуюсь вашим методом. За что , огромнейшее вам спасибо. Но вот возник вопрос , что мне нужно дописать в коде , чтобы он брал целую таблицу из эксель допустим из диапазона RANGE("A1:C20") и вставлял её в определенное место в Word'e, допустим заменяя слово tablica_1.
Спасибо.
0
Модератор
Эксперт MS Access
 Аватар для shanemac51
12512 / 5086 / 814
Регистрация: 07.08.2010
Сообщений: 14,971
Записей в блоге: 4
08.04.2016, 11:54
никак не соберусь сделать этот вариант для пользователей
-------
для себя у меня один вариант --программное формирование отчета в формате НТМ, стобы его можно было
--смотреть в броузере
--печатать в ворде
--екселем тоже открывается с мелкой руганью(тоже не доделаю, чтобы не ругался ---нет потребности)
0
1 / 1 / 0
Регистрация: 02.04.2015
Сообщений: 84
14.04.2016, 04:58  [ТС]
shanemac51, здравствуйте еще раз) Возникла маленькая проблема , хотел бы попросить у вас совета по её решению. Если в пути папка с проблемами , то при открытие файлы вылетает ошибка(
PureBasic
1
2
3
4
zpath = ThisWorkbook.Path + ""
zdot = zpath & "prikaz.docx"
zname = zpath & "www1.doc"
Shell "winword.exe " & zname, vbMaximizedFocus
0
Модератор
Эксперт MS Access
 Аватар для shanemac51
12512 / 5086 / 814
Регистрация: 07.08.2010
Сообщений: 14,971
Записей в блоге: 4
14.04.2016, 06:21
в пути папка с проблемами , то при открытие файлы вылетает ошибка(

Visual Basic
1
2
3
4
zpath = ThisWorkbook.Path + "\"
zdot = zpath & "prikaz.docx"
zname = zpath & "www1.doc"
Shell "winword.exe " & zname, vbMaximizedFocus
================
что значит папка с проблемами ---с пробелами в имени ---посмотрю,когда проснусь
0
15 / 13 / 6
Регистрация: 24.02.2014
Сообщений: 93
14.04.2016, 06:41
avenger24, если всё же с пробелами, обособи путь и файл кавычками: chr$(34)
0
Заблокирован
14.04.2016, 06:42
Цитата Сообщение от avenger24 Посмотреть сообщение
Если в пути папка с проблемами
то попробуйте так -
Visual Basic
1
Shell "winword.exe """ & zname & """", vbMaximizedFocus
и даже если нет пробелов, кавычки не помешают - проверку можно не ставить.
1
1 / 1 / 0
Регистрация: 02.04.2015
Сообщений: 84
14.04.2016, 10:22  [ТС]
shanemac51, здравствуйте еще раз)Shersh, да, работает , спасибо))) блин ,я чего-то даже не сообразил
0
Модератор
Эксперт MS Access
 Аватар для shanemac51
12512 / 5086 / 814
Регистрация: 07.08.2010
Сообщений: 14,971
Записей в блоге: 4
14.04.2016, 10:42
и конечно не должно быть кавычек в zname
0
1 / 1 / 0
Регистрация: 02.04.2015
Сообщений: 84
25.04.2016, 07:37  [ТС]
shanemac51, Здравствуйте. А не могли ли бы вы подсказать, что нужно дописать в вашем коде , чтобы он делал не пересохранение в тот же файл ,если файл уже существует , а создавал бы еще один только в конце допустим в название дабавлял бы номер, по типу Документация (1). А потом именно его и открывал.

PureBasic
1
2
3
4
objWrdDoco.SaveAs zname
 objWrdApp.Quit True
 
Shell "winword.exe """ & zname & """", vbMaximizedFocus
0
15 / 13 / 6
Регистрация: 24.02.2014
Сообщений: 93
26.04.2016, 10:29
avenger24, команда dir ищет файлы и папки в каталоге. Например, dir("C:\file.txt") вернёт file.txt, если файл существует. Если не существует - вернёт пустую строку. Также позволяет искать файлы по маске: dir("C:\*.txt") - будет возвращать все txt файлы. Если точнее, то так:
Visual Basic
1
2
3
4
strFile=dir("C:\*.txt")
do
strFile=dir()
loop until(strFile="")
На каждой итерации в strFile будет имя другого txt файла.
0
1 / 1 / 0
Регистрация: 02.04.2015
Сообщений: 84
28.04.2016, 05:17  [ТС]
neit95, блин , чего-то не получается реализовать (
Как правильно подставить код , не подскажешь пожалуйста? Вот в данном примере , если есть файл Приказ , то он создаёт Приказ(1) , если есть Приказ(1) , то создаст Приказ(2) и так далее и чтобы потом еще этот файл смог и переоткрыть. Спасибо большое.

PureBasic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Dim zpath, zname, zdot, ss, zpublic, strFile
 
zpath = ThisWorkbook.Path + ""
zpublic = "\\192.168.35.33\_Public\excel"
zdot = zpublic & "prikaz.docx"
zname = zpath & "приказ.docx"
 
objWrdDoco.SaveAs zname
 objWrdApp.Quit True
 
Set objWrdDoco = Nothing
Set objWrdApp = Nothing
 
 
Shell "winword.exe """ & zname & """", vbMaximizedFocus
0
15 / 13 / 6
Регистрация: 24.02.2014
Сообщений: 93
28.04.2016, 07:56
avenger24, отлаженный и рабочий пример на Visual Basic'е, который создаёт текстовые файлы (ввиду того, что нет материала для исходной задачи, делал под Visual Basic'ом, но т.к. VBA и Visual Basic почти одно и тоже, с доработкой под ваши требования будет работать и там):
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
Sub main()
    ' Исходное имя файла без расширения:
    Const cstrF As String = "file"
    Dim i As Integer
    Dim strFile As String
    
    ' Проверяем исходное имя. App.Path - это свойство для получения пути к исполняемому файлу в Visual Basic 
    ' (в VBA этого нет. Т.к. у вас пишет без проблем, то его нужно убрать).
    strFile = Dir(App.Path & "\" & cstrF & ".txt")
    If (Len(strFile) > 0) Then
        ' Если существует:
        i = 0
        Do
            i = i + 1
            ' Перебираем файлы file(1).txt, file(2).txt и т.д. до тех пор, пока файл не будет найден 
            ' (т.е. выходим из цикла, когда файл не найден)
            strFile = Dir(App.Path & "\" & cstrF & "(" & CStr(i) & ").txt")
        Loop Until (Len(strFile) = 0)
        ' Запоминаем не найденный файл.
        strFile = App.Path & "\" & cstrF & "(" & CStr(i) & ").txt"
    Else
        ' Если файл не найден, запоминаем его название.
        strFile = App.Path & "\" & cstrF & ".txt"
    End If
    'Записываем какой-нибудь содержимое в файл
    Open strFile For Output As #1
    Print #1, "abc"
    Close #1
End Sub
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
28.04.2016, 07:56

Поверх всех окон
Подскажите как сделать чтобы форма была поверх всех окон ???

Поверх всех окон
Здравствуйте! Почему не работает? void MainWindow::xxxxx() { if (fixed == false) { fixed = true; ...

Поверх всех окон
Народ, подскажите. Иммется окно, которое находится в трее, когда нажимают на иконку (возле часов), то окно появляется, но если были открыты...

Поверх всех окон
Всем привет. Как сделать приложение поверх всех окон?

Поверх всех окон...
Хочу создать функцию в программе, чтобы форма была всегда поверх остальных форм, прог запущеных на компе. Такая функция наприме в ЛайтАлой...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
38
Ответ Создать тему
Новые блоги и статьи
Новая последнея моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor. Это. . .
Nekobox - outbounds[0].transport: unknown transport type: raw
damix 01.10.2026
Фикс ошибки Правым кликом по серверу -> отладочная информация -> edit Заменить "net": "raw", на "net": "tcp", Нажать кнопку reload.
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru