1410

Небольшой макрос для ворда

Пока проходил производственную практику возникла необходимость отредактировать около 300 документов в одной папке. Это были доп. соглашения к ТД, но не суть.

В общем, чтобы не париться, я, путем поиска в гугл, создал небольшую форму с макросом для замены текста во всех файлах word (.docx) в определенной папке.


Выглядит это так:

*ниже приложу ссылку для скачивания*

Путь до папки копируется прямо из проводника:

С пунктами "что заменить" и "на что заменить" я думаю все понятно.

Чекбокс "с задержкой" предназначен для слабых ПК, дабы постоянное открытие и закрытие документов не загружало память. Текстбокс рядом с чекбоксом предназначен для указания задержки в секундах, 3 секунд на самых слабых ПК более, чем достаточно.


Вот как выглядит сам код:


Private Sub CommandButton1_Click()
Dim s As String, fldr As String
fldr = TextBox1.Value & "\"
s = Dir(fldr & "*.doc")
Do While s <> ""
With Documents.Open(fldr & s)
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = TextBox2.Value
.Replacement.Text = TextBox3.Value
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
If CheckBox1.Value = True Then Call idle(TextBox4)
ActiveDocument.Save
.Close
End With
s = Dir
Loop
MsgBox ("Замена завершена!")
End Sub

И код таймера задержки:

Public Sub idle(n As Single)
Dim t As Single
t = Timer + n
DoEvents
Do While Timer < t
Loop
End Sub

Как я уже говорил, части кода взяты с просторов интернета и совмещены в один документ. Вы можете встретить что-то подобное в интернете.


Сделал наглядный пример. Создал несколько документов в папке с текстом:

Заменяем:

После замены:

Документ с макросом вы можете скачать по ссылке: https://yadi.sk/d/58JkrdIXtCTtx

*Работает на версиях MS Office 2010 и 2013. Также необходимо разрешить запуск макросов в настройках безопасности:

Надеюсь, что этот небольшой макрос поможет кому-то сэкономить время и силы при работе с документами :)

14
Автор поста оценил этот комментарий
До меня дошло осознание, что 2010 офису уже 6 лет..а я до сих пор на 2007
раскрыть ветку
14
Автор поста оценил этот комментарий

В начало скрипта добавь Application.ScreenUpdating = False

в конец Application.ScreenUpdating = true


Работать будет быстрее, и на экране ничего мелькать не будет)

раскрыть ветку
15
Автор поста оценил этот комментарий

"лучше день потерять, зато потом за пять минут долететь"

(С-) Крылья ноги и хвосты

47
DELETED
Автор поста оценил этот комментарий

Надо еще прикрутить запуск по дате.

Уволили админа несправедливо, бабац, и через три дня, во всей документации конторы наступил лютейший трешь )


*- хотя... проще наверное скриптом повершелла засунуть все в зип под трехэтажным паролем )))))

раскрыть ветку
5
Автор поста оценил этот комментарий

Сколько времени на изучении VBA мне придется потратить, чтобы самому написать подобный макрос? По работе периодически необходимо подобные операции делать.

раскрыть ветку

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества