Статьи из блога
Макрос для удаления другого макроса
Николай задал вопрос:
В файле Стандартный.doc с образцом текста есть макрос AutoOpen, предлагающий сохранить файл с другим именем. Существует ли возможность автоматического программного удаления макроса при сохранении файла с другим именем? Версия - Word XP.
Вот конкретный макрос, который удалит ваш макрос AutoOpen из конкретного модуля Module1 конкретного проекта Normal (конкретность необходима, чтобы точно указать удаляемый макрос):
Sub removeModule()
'Удаление конкретного макроса при сохранении документа под другим именем
Dim aMdl As Variant
Dim aPrj As Variant
Dim lLin As Long
Dim lLin2Del As Long
Dim strSub2Del As String
Dim oDlg As Dialog
Set oDlg = Dialogs(wdDialogFileSaveAs)
On Error Resume Next
'Открываем окно "Сохранить как"
oDlg.Show
'Вводим имя макроса
strSub2Del = "AutoOpen"
'Присваиваем переменной имя конкретного проекта (в данном случае это проект "Normal")
Set aPrj = Application.VBE.VBProjects("Normal")
'Присваиваем переменной имя конкретного модуля, содержащего удаляемый макрос (например, "Module1")
Set aMdl = aPrj.VBComponents("Module1")
'Процедура удаления макроса из кода модуля
With aMdl.CodeModule
'метод ProcBodyLine возвращает первую строку конкретной процедуры как номер строки (число) _
(например, строка Sub может находиться на 3-й строке в модуле, значит возвращено будет 3)
iLin = .ProcBodyLine(strSub2Del, vbext_pk_Proc)
'метод ProcCountLines возвращает количество строк в конкретной процедуре
iLin2Del = .ProcCountLines(strSub2Del, vbext_pk_Proc)
'собственно удаление строк кода макроса
.DeleteLines iLin, iLin2Del - 1
End With
End Sub
Рубрика: Вопрос-Ответ, Макросы
Метки: AutoOpen | макросы
Просмотров: 17390
Подписаться на комментарии по RSS
Версия для печати
Метки: AutoOpen | макросы
Просмотров: 17390
Подписаться на комментарии по RSS
Версия для печати
Еще записи по вопросам использования Microsoft Word:
- 10 вопросов и ответов по редактору Word (1 часть)
- 3 способа очистки списка недавно открытых документов
- Word 2007: добавляем свою вкладку и свои команды
- Word 2007: полотно, рисунки, линии
- Word 2007: смена формата сохранения файла
- Word 97 - решение проблемы с отображением символов на линейке
- Абзац с цветным фоном
- Автоматизация текстового набора в Word
- Автоматическая запись макроса
- Автоматическая нумерация билетов
- Автоматическая расстановка переносов
- Автоматическое обновление полей при открытии документа
- Автоматическое сохранение документа при его закрытии
- Автотекст с последовательной нумерацией
- Белый текст на синем фоне в Word 2007
- Быстрая смена ориентации страниц документа
- Быстрое перемещение между открытыми документами Word
- Быстрое создание нового документа на основе шаблона
- Быстрый ввод текста с помощью команды =rand()
- Ввод повторяющихся фрагментов текста в Word 2007
- Ввод часто повторяющихся фрагментов текста
- Вертикальное выравнивание текста
- Возможно ли запретить копирование текста из документа Word?
- Вопрос о работе с графиками (диаграммами) в Word
- Вопросы и ответы о гиперссылках в редакторе Word

Форум
Читают
Обсуждают
страницы
сайты
статистика
Комментариев: 1
Можно подправить макрос для удаления модуля AutoOpen из шаблона Normal.dot?