Статьи из блога

Макрос для удаления другого макроса

Николай задал вопрос:

В файле Стандартный.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

twitter.com facebook.com vkontakte.ru odnoklassniki.ru mail.ru ya.ru rutvit.ru myspace.com technorati.com digg.com friendfeed.com pikabu.ru blogger.com liveinternet.ru livejournal.ru memori.ru google.com bobrdobr.ru mister-wong.ru yahoo.com yandex.ru del.icio.us
Вы можете помочь в развитии сайта, сделав пожертвование:

Или помочь сайту популярной криптовалютой:

 

BTC Адрес: 1Pi3a4c6sJPbfF2sSYR2noy61DMBkncSTQ

 

ETH Адрес: 0x7d046a6eaa1bd712f7a6937b042e9eee4998f634

 

LTC Адрес: LUyT9HtGjtDyLDyEbLJZ8WZWGYUr537qbZ

 

DOGE Адрес: DENN2ncxBc6CcgY8SbcHGpAF87siBVq4tU

 

BAT Адрес: 0x7d046a6eaa1bd712f7a6937b042e9eee4998f634

 

XRP Адрес: rEb8TK3gBgk5auZkwc6sHnwrGVJH8DuaLh Депозит Tag: 105314946

 

USDT (ERC-20) Адрес: 0x7d046a6eaa1bd712f7a6937b042e9eee4998f634

 

Яндекс Деньги: 410013576807538

 

Вебмани (R ещё работает): R140551758553 или Z216149053852

 

А тут весь список наших разных крипто адресов, может какой добрый человек пожертвует немного монет или токенов - получит плюсик в карму от нас :) Благо Дарим, за любую помощь!

 

Еще записи по вопросам использования Microsoft Word:

Комментариев: 1

  1. Кирилл
    23.01.2014 в 12:56 | #1

    Можно подправить макрос для удаления модуля AutoOpen из шаблона Normal.dot?

Оставьте комментарий!

(обязательно)

^ Наверх