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

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

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


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

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

Небольшой макрос для ворда Microsoft Word, Макрос, Vba, Длиннопост, Microsoft

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

Небольшой макрос для ворда Microsoft Word, Макрос, Vba, Длиннопост, Microsoft

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

Чекбокс "с задержкой" предназначен для слабых ПК, дабы постоянное открытие и закрытие документов не загружало память. Текстбокс рядом с чекбоксом предназначен для указания задержки в секундах, 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

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


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

Небольшой макрос для ворда Microsoft Word, Макрос, Vba, Длиннопост, Microsoft

Заменяем:

Небольшой макрос для ворда Microsoft Word, Макрос, Vba, Длиннопост, Microsoft

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

Небольшой макрос для ворда Microsoft Word, Макрос, Vba, Длиннопост, Microsoft

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

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

Небольшой макрос для ворда Microsoft Word, Макрос, Vba, Длиннопост, Microsoft

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

Вы смотрите срез комментариев. Показать все
49
Автор поста оценил этот комментарий

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

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


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

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

Будет слишком сложно, имхо)

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

В Департаменте были 4 девушки/женщины, которые не знают вообще о макросах

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

Дык четыре строчки в скрипте, один ярлычок и одна задача в планировщике задач ;)


Да вот, к примеру - http://stackoverflow.com/questions/1153126/how-to-create-a-z...  


>_< 

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

Не знал, извиняюсь)

Я также далек от этой темы, учусь на менеджера, просто был интересен вопрос автоматизации

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

Так вы про помочь, а я про нагадить :) Это мне в пору извиняться.

А вообще, автоматизация это круто! Может ну его нафиг, тот менеджмент? Очень мало людей сейчас, хотя бы интересуются возможностями автоматизации. Не говоря о том, чтобы делать.

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

Ах вот оно что) я даже не понял)

За 3 года обучения уже много раз приходила мысль "Может ну его нафиг, тот менеджмент?", но как-то жаль 3 курса обучения, год всего остался до диплома. Хотя мозги вроде позволяют стать хорошим менеджером

раскрыть ветку (22)
3
DELETED
Автор поста оценил этот комментарий

Иди в 1С, там твои знания по менеджменту и любовь к автоматизации пригодятся.

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

у меня 1С и автоматизация как то слабо вяжутся

раскрыть ветку (8)
1
DELETED
Автор поста оценил этот комментарий

1С платформа имеющая много решений для автоматизации бизнес-процессов предприятий.

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

Для автоматизации бизнес-процессов предприятий существует много достойных решений, и 1С там явно не в первых рядах.

раскрыть ветку (6)
3
DELETED
Автор поста оценил этот комментарий
С высоты какого опыта, позвольте полюбопытствовать, у вас такие сведения?
раскрыть ветку (5)
ещё комментарии
1
Автор поста оценил этот комментарий
Интересен вопрос автоматизации? Юзай AutoIT. Убер-мощная штука. Есть минусы, конечно (многопоточности нет) но в целом инструмент лютый. Макросы для Word и Excel пишу только на нем. С хорошим GUI и т.п.
Иллюстрация к комментарию
Иллюстрация к комментарию
раскрыть ветку (1)
Автор поста оценил этот комментарий

Для собственного использования крутая вещь

А так - #comment_68928491

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

шаблон на Word + база на Excel

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

Привет из 2018! у тебя остался макрос на замену значений в ворде?

раскрыть ветку (1)
Автор поста оценил этот комментарий
Привет! К сожалению, уже несколько компов поменял, ничего не сохранилось
Вы смотрите срез комментариев. Чтобы написать комментарий, перейдите к общему списку