2009-11-14 4 views
4

배경 : 문서 서식 지정을 위해 Word에 사용되는 광범위한 특수화 된 VBA 매크로가 있습니다. Word 2003에서 이러한 매크로는 사용자 지정된 도구 모음에서 활성화되었습니다. 최근에 Word 2007로 전환했으며 VS 2010으로 만든 새 Word 리본에서 이러한 기존 VBA 매크로를 실행할 수 있기를 원합니다. 리본을 만들었습니다. 그러나 새 리본 버튼에서 기존 매크로를 호출하는 방법을 알 수 없습니다.방법 : C# 리본 추가 기능에서 기존 Word VBA 매크로 실행

질문 : .dotm 서식 파일에 저장되어있는 기존 VBA 매크로를 C# Word 추가 기능에서 어떻게 호출합니까?

도움을 주시면 감사하겠습니다.

답변

4

MS KB article 306683에서 설명하는 기술 - 특히, 기능 RunMacro이 정의 - 당신은 C# 코드 내에서 VBA 매크로를 호출 할 수 있도록해야합니다 당신은 함수를 정의 RunMacro

private void RunMacro(object oApp, object[] oRunArgs) 
{ 
    oApp.GetType().InvokeMember("Run", 
     System.Reflection.BindingFlags.Default | 
     System.Reflection.BindingFlags.InvokeMethod, 
     null, oApp, oRunArgs); 
} 

다음 매크로를 호출 이 같은 :

RunMacro(oApp, new object[] {"NameOfMyMacro"}) 

또는

RunMacro(oApp, new object[] {"NameOfMyMacro", "some", 3, "parameters"}) 

oAppWord.Application 개체입니다. Word 추가 기능의 어딘가에서 사용할 수 있습니다.

+0

내가이 코드를 Excel 템플릿에 사용하면 매크로 보안 경고가 생성됩니다. 어떻게하면 좋을까요? – Smack

+0

@Smack : http://office.microsoft.com/en-us/excel-help/change-macro-security-settings-in-excel-HP010096919.aspx – Heinzi

관련 문제