Статьи из блога
Макрос для удаления другого макроса
Николай задал вопрос:
В файле Стандартный.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 | макросы
Просмотров: 16997
Подписаться на комментарии по RSS
Версия для печати
Метки: AutoOpen | макросы
Просмотров: 16997
Подписаться на комментарии по 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?