1

Тема: Как сделать активной форму?

Запускаю документ ворд с макро из скрипта. как сделать форму активной?

Post's attachments

Акт.docm 43.49 Кб, 5 скачиваний с 2017-12-17 

You don't have the permssions to download the attachments of this post.

2

Re: Как сделать активной форму?

скрипт

Post's attachments

Запуск.vbs 318 b, 6 скачиваний с 2017-12-17 

You don't have the permssions to download the attachments of this post.

3

Re: Как сделать активной форму?

Так у вас форма и активируется

Спасибо можно перевести на WebMoney-кошелёк R378231864568 или на Яндекс-деньги 410015093172871

4

Re: Как сделать активной форму?

Проверьте свои настройки безопасности в ворде. Файл - параметры - Центр упр-я безопасностью - параметры центра управления безопасностью - параметры макросов.

Спасибо можно перевести на WebMoney-кошелёк R378231864568 или на Яндекс-деньги 410015093172871

5

Re: Как сделать активной форму?

Fck_This пишет:

Проверьте свои настройки безопасности в ворде. Файл - параметры - Центр упр-я безопасностью - параметры центра управления безопасностью - параметры макросов.

Вы не поняли суть вопроса. Шаблон и скрипт находятся в одной папке, если запускать просто документ с включенными макросами,то, естественно, все работает.
Если же запустить скрипт, который, в свою очередь открывает документ, то форма не становится активной.

Post's attachments

Безымянный.jpg 230.32 Кб, файл не был скачан. 

You don't have the permssions to download the attachments of this post.

6

Re: Как сделать активной форму?

alex84 пишет:
Fck_This пишет:

Проверьте свои настройки безопасности в ворде. Файл - параметры - Центр упр-я безопасностью - параметры центра управления безопасностью - параметры макросов.

Вы не поняли суть вопроса. Шаблон и скрипт находятся в одной папке, если запускать просто документ с включенными макросами,то, естественно, все работает.
Если же запустить скрипт, который, в свою очередь открывает документ, то форма не становится активной.

Ну, может потому, что у вас код кривой в vbs файле? вот эта хрень

Спасибо можно перевести на WebMoney-кошелёк R378231864568 или на Яндекс-деньги 410015093172871

7

Re: Как сделать активной форму?

Капча отвратительная - всё обрезает.

alex84 пишет:
Fck_This пишет:

Проверьте свои настройки безопасности в ворде. Файл - параметры - Центр упр-я безопасностью - параметры центра управления безопасностью - параметры макросов.

Вы не поняли суть вопроса. Шаблон и скрипт находятся в одной папке, если запускать просто документ с включенными макросами,то, естественно, все работает.
Если же запустить скрипт, который, в свою очередь открывает документ, то форма не становится активной.

Ну, может потому, что у вас код кривой в vbs файле? вот эта хрень "run" после "End sub" и пробелов нет между "strPath & fActName" - с двух сторон от "&" должны быть.
Вот так попробуйте. Тут ещё вопрос, не запущен ли он в данный момент.

Option Explicit
Sub run()
'Объявляем переменные
Dim fActName, strPath, doc
strPath = Left(WScript.ScriptFullName, InStrRev(WScript.ScriptFullName, "\"))
fActName = "Акт.docm"
Set doc = createObject("Word.Application")
    doc.visible = False
doc.Documents.Open strPath & fActName
Set doc = Nothing
End Sub
Спасибо можно перевести на WebMoney-кошелёк R378231864568 или на Яндекс-деньги 410015093172871

8

Re: Как сделать активной форму?

Fck_This пишет:

Капча отвратительная - всё обрезает.

alex84 пишет:
Fck_This пишет:

Проверьте свои настройки безопасности в ворде. Файл - параметры - Центр упр-я безопасностью - параметры центра управления безопасностью - параметры макросов.

Вы не поняли суть вопроса. Шаблон и скрипт находятся в одной папке, если запускать просто документ с включенными макросами,то, естественно, все работает.
Если же запустить скрипт, который, в свою очередь открывает документ, то форма не становится активной.

Ну, может потому, что у вас код кривой в vbs файле? вот эта хрень "run" после "End sub" и пробелов нет между "strPath & fActName" - с двух сторон от "&" должны быть.
Вот так попробуйте. Тут ещё вопрос, не запущен ли он в данный момент.

Option Explicit
Sub run()
'Объявляем переменные
Dim fActName, strPath, doc
strPath = Left(WScript.ScriptFullName, InStrRev(WScript.ScriptFullName, "\"))
fActName = "Акт.docm"
Set doc = createObject("Word.Application")
    doc.visible = False
doc.Documents.Open strPath & fActName
Set doc = Nothing
End Sub

сам документ не запущен в данный момент,
пробелы не помогают, запуск из VBS нашел на просторах.
где-то встречал идею про API в самом шаблоне документа прописать поверх всех окон, может в этом направлении поможете?
PS если убрать run в конце то скрипт не запуститься.

9

Re: Как сделать активной форму?

alex84 пишет:


сам документ не запущен в данный момент,
пробелы не помогают, запуск из VBS нашел на просторах.
где-то встречал идею про API в самом шаблоне документа прописать поверх всех окон, может в этом направлении поможете?
PS если убрать run в конце то скрипт не запуститься.

Я понял о чём вы - не тестил просто. При Visible = False - не отображается, при True - Отображается. Видимо при таком запуске скрытие происходит для всех объектов приложения. А вас не устроит такой вариант: Делаем в vbs Visible = true, а уже в модуле ThisDocument такого

Private Sub Document_Open()
ThisDocument.Windows.Application.Visible = False
UserForm1.Show
End Sub

?

Спасибо можно перевести на WebMoney-кошелёк R378231864568 или на Яндекс-деньги 410015093172871

10

Re: Как сделать активной форму?

Поверх всех окон - реализуемо. Вбивает в гугл UserForm поверх всех окон и переписываете под себя код из 1-го\2-го результата поиска. Я обычно обходился ShowModal = False

Спасибо можно перевести на WebMoney-кошелёк R378231864568 или на Яндекс-деньги 410015093172871

11

Re: Как сделать активной форму?

Или, если уж совсем нельзя показывать, что был запущен ворд, то я бы сделал так:
1) Делаем как раньше - в vbs Visible = False
2) В ThisDocument пишем такое

Private Sub Document_Open()
Application.ScreenUpdating = False
ThisDocument.Windows.Application.Visible = Truen
ThisDocument.Windows.Application.Visible = False
Application.ScreenUpdating = True
UserForm1.Show
End Sub
Спасибо можно перевести на WebMoney-кошелёк R378231864568 или на Яндекс-деньги 410015093172871

12

Re: Как сделать активной форму?

AnastasiaGray пишет:

куда катится мир?

удиви - раз такая умная