2011-03-01 2 views
0

C#을 통해 Word 문서에서 매크로를 실행하면 매크로는 기본적으로 문서 사본을 만들고 몇 가지 속성을 추가합니다.사용자 개입없이 C#을 통해 msgbox를 사용하여 Word VBA를 실행하십시오.

하지만 문제는 내 매크로에 사용자 상호 작용이 필요한 코드의 일부 지점에 msgbox가 있다는 것입니다.

나는 아래의 코드를 MS 웹 사이트에서 사용하고 있습니다. 그래서 질문은;

매크로 실행에 표시된 메시지 상자를 표시하지 않거나 자동 확인하는 방법이 있습니까? 그 이후

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

답변

1

당신의 매크로가 확인 MSGBOX을 표시하지 않도록 그냥 변경합니다.

확인 msgbox가 표시되어야하는 다른 컨텍스트에서 매크로가 필요하면 매크로 코드에 부울 플래그 useConfirmationMsgBox as Boolean을 추가하고이 플래그가 true 일 때만 MsgBox를 표시하십시오. 그런 다음 두 개의 다른 진입 점을 제공하십시오. 하나는 useConfirmationMsgBox가 true로 설정되고 다른 하나는 false로 설정됩니다.

+0

답장을 보내 주셔서 감사합니다. 우리 회사의 많은 문서에 영향을 미치기 때문에 매크로 코드를 편집하지 않고이 작업을 수행하고 싶습니다 ... 템플릿을 업데이트하면 실제로 오버 헤드가 발생합니다. ( – AnarchistGeek

+0

만약 내가 맞으면, 매크로, 그러나 수십 (또는 그 이상)의 동일한 매크로 복사본? 매크로는 한 곳에서 변경 될 수있는 문서 템플릿의 일부가 아니므로 몇 번이나 유지 관리의 악몽이 될 수 있습니다. , Windows 메시징 시스템을 사용하여 MsgBox 확인 메시지를 사용하여 시뮬레이션 된 "Enter"키 스트로크를 보내는 것이 가능할 수도 있지만 이러한 종류의 솔루션은 매우 불안정한 경향이 있으며 심각하게 추천하지는 않습니다. 귀하의 서류. –

관련 문제