코드를 자동화 할 때 Visio의 매크로 경고 프롬프트를 억제 할 수 있습니까?

StackOverflow https://stackoverflow.com/questions/1040843

  •  22-07-2019
  •  | 
  •  

문제

VB.NET 앱에서 Visio 2003을 자동화하고 있습니다. 내 코드는 다음과 같습니다 (흥미롭지 않은 물건이 제거됨) :

Dim objApp As New Microsoft.Office.Interop.Visio.InvisibleApp
objApp.Settings.ShowFileOpenWarnings = False
Dim objDoc As Microsoft.Office.Interop.Visio.Document
objDoc = objApp.Documents.Open(VisioFilename)

마지막 줄은 Visio가 숨겨진 메시지 상자를 제기하게한다는 것을 알았습니다.

보안 수준이 높고 매크로가 디지털로 서명하거나 안전한 것으로 확인되지 않았기 때문에이 문서의 매크로는 비활성화됩니다. 매크로를 실행하려면 서명하거나 보안 수준을 변경할 수 있습니다.

이것은 컴퓨터에서 실행되기 때문에 파일로 제어하지 않기 때문에 이러한 옵션 중 어느 것도 나에게 적합하지 않습니다. 나는 매크로가 비활성화 된 것을 정말로 신경 쓰지 않고, Visio를 사용하여 파일을 기본 형식에서 SVG로 변환합니다. 나는 사용자에게 보안 수준을 낮추는 것을 사용자에게 제안하고 싶지 않으며, 그것을 낮추고 싶지도 않을 것입니다.

위의 내 코드에서 볼 수 있듯이 파일 열기 경고를 끄지만 매크로 경고는 포함되지 않는 것 같습니다. visio.invisibleApp을 사용하고 있으므로 경고가 사용자에게 표시되지 않습니다. Visio의 보이는 인스턴스를 실행하면 배치 변환기를 만들기 때문에 도움이되지 않습니다. 메시지가 표시 되더라도 사용자는 각 파일에 대해 확인을 클릭해야합니다. 이는 배치 변환 기능이 본질적으로 쓸모 없게 만들 것입니다.

Visio 클래스에는 vbaenabled 속성이 있지만 읽기 만 읽습니다. 파일을 열 때 VBA를 끄는 방법이 있다면 문제가 해결 될 수 있습니다. 나는 속성과 클래스의 설정 속성을 통해 모든 것을 보았고 아무것도 찾을 수 없습니다. 나는 많은 Google 검색을 수행 했으며이 문제를 해결하는 것을 찾을 수 없습니다.

Visio와 함께 자동화를 사용할 때 그 경고를 억제 할 수 있는지 아는 사람이 있습니까? Visio 2007로 전환하면 할 수 있습니까?

도움이 되었습니까?

해결책

오픈처럼 작동하지만 플래그를 수락하는 Openex 메소드가 있습니다. 이러한 깃발 중 하나는 VisoPenMacrosDisabled (& H80)입니다.

VisoPendontList (& H8)와 같은 다른 편리한 플래그도 있으므로 자동화를 통해 열린 파일이 최근 파일 목록에 추가되지 않습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top