Тема: Как сделать активной форму?
Запускаю документ ворд с макро из скрипта. как сделать форму активной?
Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Запускаю документ ворд с макро из скрипта. как сделать форму активной?
скрипт
Так у вас форма и активируется
Проверьте свои настройки безопасности в ворде. Файл - параметры - Центр упр-я безопасностью - параметры центра управления безопасностью - параметры макросов.
Проверьте свои настройки безопасности в ворде. Файл - параметры - Центр упр-я безопасностью - параметры центра управления безопасностью - параметры макросов.
Вы не поняли суть вопроса. Шаблон и скрипт находятся в одной папке, если запускать просто документ с включенными макросами,то, естественно, все работает.
Если же запустить скрипт, который, в свою очередь открывает документ, то форма не становится активной.
Fck_This пишет:Проверьте свои настройки безопасности в ворде. Файл - параметры - Центр упр-я безопасностью - параметры центра управления безопасностью - параметры макросов.
Вы не поняли суть вопроса. Шаблон и скрипт находятся в одной папке, если запускать просто документ с включенными макросами,то, естественно, все работает.
Если же запустить скрипт, который, в свою очередь открывает документ, то форма не становится активной.
Ну, может потому, что у вас код кривой в vbs файле? вот эта хрень
Капча отвратительная - всё обрезает.
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
Капча отвратительная - всё обрезает.
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 в конце то скрипт не запуститься.
сам документ не запущен в данный момент,
пробелы не помогают, запуск из VBS нашел на просторах.
где-то встречал идею про API в самом шаблоне документа прописать поверх всех окон, может в этом направлении поможете?
PS если убрать run в конце то скрипт не запуститься.
Я понял о чём вы - не тестил просто. При Visible = False - не отображается, при True - Отображается. Видимо при таком запуске скрытие происходит для всех объектов приложения. А вас не устроит такой вариант: Делаем в vbs Visible = true, а уже в модуле ThisDocument такого
Private Sub Document_Open()
ThisDocument.Windows.Application.Visible = False
UserForm1.Show
End Sub
?
Поверх всех окон - реализуемо. Вбивает в гугл UserForm поверх всех окон и переписываете под себя код из 1-го\2-го результата поиска. Я обычно обходился ShowModal = False
Или, если уж совсем нельзя показывать, что был запущен ворд, то я бы сделал так:
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
куда катится мир?
удиви - раз такая умная
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться