2016-01-19 4 views
0

Я пишу код VBA (в Excel), чтобы автоматически создавать отчеты на работе. Эти отчеты должны иметь определенный формат, который легко доступен через шаблоны нашей компании. Это все в MS Office 2010.Переопределить Document_New() в Office 2010 от VBA

Однако все эти шаблоны имеют Document_New() подписчиков, что искроет какой-то VBA-код, который мне не нужен, и, к сожалению, нет прямого доступа (правила компании, ад да !).

Есть ли способ переопределить макрос Document_New()? Сейчас мой VBA код для открытия документа, в котором искры Document_New() макро, заключается в следующем:

Sub GenerateReport() 
    Dim WordApp As Object 
    Set WordApp = CreateObject("Word.Application") 

    WordApp.Documents.Add Template:="Letter.dot"  ' the "error" is produced at this lie 

    Dim SaveStr As String 
    SaveStr = "KommRapp-" & Date & ".docx" 
    WordApp.ActiveDocument.SaveAs SaveStr 
End Sub 

ответ

1

попробовать что-то вроде:

Sub OpenWordDocAndBlockMacros() 

    Dim WordApp As Object 
    Set WordApp = CreateObject("Word.Application") 
    'Just to see whats happening 
    WordApp.Visible = True 

    Dim InitialSecurityAutoSetting As MsoAutomationSecurity 
    'Save Automations Security Setting 
    SecurityAutoSetting = WordApp.Application.AutomationSecurity 
    WordApp.Application.AutomationSecurity = msoAutomationSecurityForceDisable 

    WordApp.Documents.Add Template:=" Place Template file path here" 


    'Do some stuff with the template 


End Sub 

Я проверил его, используя Excel VBA, чтобы открыть Word.dotm, который имеет Sub под названием Document_New в модуле ThisDocument, и он сработал.

+0

Я получаю ошибку в строке 'WordApp.EnableEvents = False', которая говорит, что объект не поддерживает это свойство или метод ... – Holene

+1

@Holene Я обновил свой ответ. Посмотрите –

+0

Да! Это фиксировало это. Благодаря! – Holene

Смежные вопросы