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. Также необходимо разрешить запуск макросов в настройках безопасности:

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

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

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

раскрыть ветку (8)
2
Автор поста оценил этот комментарий
Я отталкивался от задачи: отредактировать большое количество документов. Гуглил соответствующие темы и по кусочуам собирал подходящие коды, около 4 часов за два дня потратил на это, большую часть времени в гугле
1
Автор поста оценил этот комментарий

что бы разобраться то пол года хватит.

при этом сможешь составлять макросы с первой недели а дальше пойдет. но на это нужно время отводить и не 5 минут в день.

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

У нас в инсте (мы заочники еще и на СДО) приехали на сессию НА 9 дней, и было 5 лоботокарных по информатике. И за одну лабораторную нас пытались научить это сделать! Большинство справились но уже доделывая дома ))  

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

Да такая же тема была задали тему автоматизировать БД с помощью форм и VBA хотя нам абсолютно ничего не объясняли по программированию на VBA. Поэтому я в Гугле 4 дня искал как это сделать было муторно, ещё хрен же ты нормально найдешь мануал по этому всему, на форумах всех зависал, вообщем еле-еле))

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

Ну нам дали бумажки где все было расписано и сами объясняли, но каждому под конец дали свои вариант задания.

раскрыть ветку (2)
2
Автор поста оценил этот комментарий
тут тоже стоит учитывать что там могла быть одна специфическая задача на которую фокус все дни. то есть написать чтото не так уж и трудно. вопрос качества - это насколько он будет надежным и ничего не попортит из данных плюс на сколько будет покрывать ошибки пользователя и системы. второй вопрос это уже вопрос каких то сложных скриптов которые можно собрать со множества мелких решений но при этом учтя условия и добавив у этим уже найденным решениями какую-то часть своих. не всегда все гуглится с полупинка. а бывает что и гуглится но не работает у тебя потому что могут быть особенности системы либо входных данных.. много факторов. и третий вопрос это глубина понимания как это работает, какие вообще есть возможности языка и как их расширить, что делать если ответа нет в гугле.
то есть я не говорю что это наука о ракетах но если думаешь именно заниматься оптимизацией то нужно попотеть что бы разобраться с этой темой. если чтото простое нужно то там времени конечно не так много надо на изучение базы. хотя тоже бывает что простое оказывается сложным и налборот
раскрыть ветку (1)
1
Автор поста оценил этот комментарий

Верные слова)

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

В первый день пытался на месте это реализовать, но не получилось. Догугливал дома :)

Вы смотрите срез комментариев. Чтобы написать комментарий, перейдите к общему списку

Темы

Политика

Теги

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

Сообщества

18+

Теги

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

Сообщества

Игры

Теги

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

Сообщества

Юмор

Теги

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

Сообщества

Отношения

Теги

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

Сообщества

Здоровье

Теги

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

Сообщества

Путешествия

Теги

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

Сообщества

Спорт

Теги

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

Сообщества

Хобби

Теги

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

Сообщества

Сервис

Теги

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

Сообщества

Природа

Теги

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

Сообщества

Бизнес

Теги

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

Сообщества

Транспорт

Теги

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

Сообщества

Общение

Теги

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

Сообщества

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

Теги

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

Сообщества

Наука

Теги

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

Сообщества

IT

Теги

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

Сообщества

Животные

Теги

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

Сообщества

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

Теги

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

Сообщества

Экономика

Теги

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

Сообщества

Кулинария

Теги

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

Сообщества

История

Теги

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

Сообщества