Visio에서 VBA를 처음 사용하고 Document 개체 수준이 아닌 이벤트 처리를 "가져 오는 중"문제가 발생했습니다. 즉, 셰이프 데이터 값이 변경 될 때 트리거되는 이벤트를 캡처하려고합니다. 다운로드 한 Visio 2010 SDK가 있으며 관련 이벤트는 FormulaChanged 및 CellChanged입니다. 그러나, 나는이 사건들에 방아쇠를 당기는 방법을 모른다. WithEvents 및/또는 AddAdvise를 사용해야하는 인터넷에서 수집 한 내용이지만 일부 SDK 코드 예제를 사용해도 방법을 파악할 수 없습니다.Visio에서 FormulaChanged 이벤트 캡처
셰이프의 셰이프 데이터 값을 편집 할 때 트리거되는 FormulaChanged 및/또는 CellChanged 이벤트를 VBA에서 어떻게 캡처합니까?
코드를 가져 와서 ThisDocument 개체에 넣었습니다. 나는 대화 상자를 얻을 수 있도록 각각에 MsgBox "Test"를 추가했습니다. 그런 다음 일부 모양 데이터를 편집하려고했습니다. FormulaChanged 및 CellChanged 이벤트를 볼 수 있지만 MsgBox 또는 디버그 메시지 영역을 통해 아무 일도 발생하지 않습니다. 그러나 셰이프를 움직이면 Visio가 느려지지만 이벤트 모니터 문제 일 수 있습니다. –
셰이프를 움직이면 많은 수의 셀과 수식이 업데이트되고, 느려지는 것은 이벤트 모니터에서 확인됩니다. 그러나, 위의 코드는 절대로 나를 위해 트리거되지 않습니다 (적어도 디버그 창에 아무것도 나타나지 않습니다). –
먼저 class_initialize 하위를 실행 했습니까? 이 이벤트를 설정하려면 실행해야합니다 .. –