C#을 통해 VBA/Excel 매크로를 호출 할 수 있습니다. 사용자 (내 경우 C# 프로그램)가 잘못된 값을 입력하면 메시지 상자가 나타납니다. C#을 통해 시간을 초과하여 메시지 상자의 표시 여부를 결정할 수 있으므로 문제가되지 않습니다. 문제는 메시지 상자가 나타나면 엑셀이 제대로 닫히지 않는다는 것입니다. 이 코드를 사용하여 Excel을 닫습니다.매크로 호출 후 C#을 통해 메시지 상자를 감지/닫기
excelApp.DisplayAlerts = false;
Marshal.FinalReleaseComObject(someSheet);
excelWorkbook.Close(Type.Missing, Type.Missing, Type.Missing);
Marshal.FinalReleaseComObject(excelWorkbook);
GC.Collect();
GC.WaitForPendingFinalizers();
모두 닫히지 만 Excel과 메시지 상자가 열려 있습니다. 나는 C#에서 메시지 상자를 닫을 수있는 방법이 있습니까?
내가 아는 한,이 일을하는 것은 쉽지 않거나 * 좋은 방법이 아닙니다. 메시지 상자에 포커스가있는 경우 (중간에 사용자 상호 작용이 없거나 자동화가 실행되는 동안) [Microsoft 솔루션 - SendKeys] (http://support.microsoft.com/kb/259971/ko -우리). – pasty
우수 - excelApp.SendKeys ("{ESC}"); 실제로 트릭을합니다. 답변을 게시하십시오. – cs0815