Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Word
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.05.2013, 14:23   #1
Vadim39
Пользователь
 
Регистрация: 19.05.2013
Сообщений: 24
По умолчанию Операции с документом в невидимом режиме

Доброго времени суток!
Подскажите, пожалуйста, возможно ли не запуская дополнительную аппликацию word, добавить новый документ с атрибутом Visible:=False получить к нему доступ и произвести какие-либо операции? Спрашиваю потому, что команда
Код:
Set oDoc = Documents.Add Visible:=False
выдадает ошибку. А если написать так:
Код:
Application.ScreenUpdating = False
Set oDoc = Documents.Add
'действия
ActiveDocument.Close wdDoNotSaveChanges
Application.ScreenUpdating = True
экран все равно "моргает".
ЗарСпасБол!

Последний раз редактировалось Vadim39; 24.05.2013 в 14:26.
Vadim39 вне форума Ответить с цитированием
Старый 24.05.2013, 15:27   #2
Скрипт
Форумчанин
 
Регистрация: 24.12.2012
Сообщений: 776
По умолчанию

Если при создании объекта, объекту даётся VBA-имя, то нужно параметры заключать в скобки:
Код:
Sub Procedure_1()

    Dim myNewDocument As Word.Document

    'Создаём документ и делаем его невидимым.
    'Даём документу VBA-имя "myNewDocument". Через это
        'имя можно дальше в коде что-нибудь делать с документом.
    Set myNewDocument = Documents.Add(Visible:=False)
    
    'Отображаем документ на мониторе.
    myNewDocument.ActiveWindow.Visible = True

End Sub
Скрипт вне форума Ответить с цитированием
Старый 24.05.2013, 15:30   #3
Скрипт
Форумчанин
 
Регистрация: 24.12.2012
Сообщений: 776
По умолчанию

Чтобы не моргало, можно попробовать такой вариант:
Код:
Sub Procedure_2()
    
    'Сворачиваем окно программы "Word".
    Application.Windows(1).WindowState = wdWindowStateMinimize
    
    'Разворачиваем окно программы "Word".
    Application.Windows(1).WindowState = wdWindowStateMaximize

End Sub
Скрипт вне форума Ответить с цитированием
Старый 24.05.2013, 16:22   #4
Вождь
Форумчанин
 
Аватар для Вождь
 
Регистрация: 29.09.2008
Сообщений: 378
По умолчанию

Цитата:
Сообщение от Скрипт Посмотреть сообщение
...WindowState = wdWindowStateMinimize...
Тогда можно и так: Activedocument.Windows(1).Visible = False
Макросы на заказ и готовый пакет - http://mtdmacro.ru/
Вождь вне форума Ответить с цитированием
Старый 24.05.2013, 16:32   #5
Vadim39
Пользователь
 
Регистрация: 19.05.2013
Сообщений: 24
По умолчанию

Большое спасибо! (как всегда )
Вообще-то я задавал этот вопрос, надеясь решить следующее затруднение: Нужно выполнить поиск-замену с использованием регулярных выражений Word внутри небольших текстовых отрывков, не относящихся к редактируемому файлу , причем желательно, чтобы содержимое последнего при этом никак не менялось. Указанный выше способ в принципе решает проблему, но каждая процедура занимает ок. 50 милисекунд. То есть, в длинный цикл ее не вставишь. Может быть существуют какие-нибудь более оптимальные пути решения?
Vadim39 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Совместная робота з документом Без толку Microsoft Office Excel 1 12.08.2011 14:07
Проблема с вордовским документом Пуська Помощь студентам 1 03.12.2010 13:11
C#кнопка выход должна находиться в невидимом состоянии до 3 и после 5 кликов по картинкам jgosohbis Помощь студентам 2 30.09.2010 09:17
Работа с документом Word из Delphi kate4ka Общие вопросы Delphi 2 18.02.2008 12:12