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

У файлі Стандартний.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

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*