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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 13.02.2013, 16:26   #1
Скрипт
Форумчанин
 
Регистрация: 24.12.2012
Сообщений: 776
По умолчанию Как ускорить работу макросов в Word VBA

Предложу свои варианты:
Код:
Sub Procedure_1()

    '1. Отключение обновления монитора.
    Application.ScreenUpdating = False
    
    '2. Переход в режим "Черновик".
    ActiveDocument.Windows(1).View.Type = wdNormalView
    
    '3. Отключение проверки правописания.
    Application.Options.CheckGrammarAsYouType = False
    Application.Options.CheckGrammarWithSpelling = False
    Application.Options.ContextualSpeller = False
    Application.Options.CheckSpellingAsYouType = False
    Application.Options.ShowReadabilityStatistics = False
    ActiveDocument.ShowGrammaticalErrors = False
    ActiveDocument.ShowSpellingErrors = False
    
End Sub

Последний раз редактировалось Скрипт; 13.02.2013 в 16:28.
Скрипт вне форума Ответить с цитированием
Старый 13.02.2013, 17:39   #2
Вождь
Форумчанин
 
Аватар для Вождь
 
Регистрация: 29.09.2008
Сообщений: 378
По умолчанию

Не трогать Selection
Макросы на заказ и готовый пакет - http://mtdmacro.ru/
Вождь вне форума Ответить с цитированием
Старый 13.02.2013, 17:48   #3
Скрипт
Форумчанин
 
Регистрация: 24.12.2012
Сообщений: 776
По умолчанию

Пункт 1

Попробовать сначала использовать команду Find. Если не получается использовать команду Find, то тогда уже просматривать каждый элемент: абзац, слово и т.д.


Пункт 2

Может быть в каких-то случаях можно запретить обновление полей на время работы кода:
Код:
ActiveDocument.Fields.Locked=True

Последний раз редактировалось Скрипт; 13.02.2013 в 18:59.
Скрипт вне форума Ответить с цитированием
Старый 20.02.2013, 22:11   #4
Skif-F
Форумчанин
 
Регистрация: 24.03.2010
Сообщений: 349
По умолчанию

Если на важны структура и форматирование документа - берём весь текст в строковую переменную и...
Код:
Dim strTemp As String           'Определяет переменную для исходного текста
Selection.HomeKey Unit:=wdStory      'Устанавливает курсор в начало текста
Selection.EndKey Unit:=wdStory, Extend:=wdExtend    'выделяет весь текст
strTemp = Selection.Text        'Загружает выделенный текст в переменную
Нет нерешаемых задач - есть недостаток времени и данных!
Skif-F вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как ускорить работу с большой dbf базой? avfly БД в Delphi 22 13.10.2009 21:37
Как ускорить работу этого макроса? Neo007 Microsoft Office Excel 1 22.06.2009 18:14
Как ускорить работу программы SibBear Общие вопросы Delphi 7 27.03.2009 14:40
Как ускорить работу с сетевой БД Ramires БД в Delphi 3 21.08.2008 12:16
Как ускорить выполнение макросов tat-besidovska Microsoft Office Excel 1 22.01.2008 12:12