2016-11-25 1 views
0

현재 이라는 문자열에 저장된 파일 이름이 있습니다. 문자열에 저장된 파일은 현재 열려 있습니다. 문제는이 파일을 Visio의 다른 인스턴스에서 열 수 있다는 것입니다. 파일 이름의 Visio 현재/하나의 인스턴스 사이에 존재하는 경우에만 검사 아래의 코드 -다른 Visio 인스턴스의 창 활성화

나는

내 현재의 방법이 캡처하지 않는 파일 이름 문자열에 저장되어있는 파일을 활성화 할.

For Each objDoc In objVisio.Documents 
    If objDoc.Name = filename Then 
    objDoc.activate 
Exit for 
    End If 

은 다음

은 어떻게하면 앞으로 가져 오기이 파일을 활성화 할 수 있습니다?

windows(filename & " - Microsoft Visio").activate 

난 단지뿐만 아니라 파일 이름이 아닌 전체 파일 경로를 가진 어쩌면 때문에 파일 이름 문자열 (작동하지 않는

Dim objVisio as Visio.Application 
Set objVisio = GetObject(filename).Application 

을 시도했습니다 중 하나

작동하지 않습니다)

다른 어떤 brute force 방법도 사용할 수 있습니까?

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

+0

Visio는 전경 창이 있습니다. 기본적으로 코드가 활성화 된 윈도우가 아니라면 활성화 된 윈도우를 설정할 수없는 윈도우를 활성화하는 규칙이 있습니다 (무시됩니다). 이것은 프로그램이 사용자가 선택한 프로그램에서 초점을 훔치는 것을 막기위한 것입니다. –

+0

몇 분 전에 그 규칙을 실제로 발견했습니다. 어떤 의미가 있습니다. Visio의 두 번째 인스턴스에서 3 개의 파일을 열고 'filename'에 초점이 맞지 않으면 시나리오가 활성 창으로 표시되지 않습니다. 이 경우 각 열려있는 Visio 인스턴스를 반복하여 이름을 찾고 활성화해야합니다. 그러나 어떻게해야합니까? – Dingo

답변

0

시도 뭔가 :

objVisio.Application.Caption 

또는

AppActivate "Microsoft Visio" 

내가 다른 옵션이 들여다 추측 : https://msdn.microsoft.com/en-us/library/office/ff766749.aspx

내가 VBA에서 Visio를 광범위 근무 한 적이없는, 그래서 나는 여기서 진정한 대답을 보는 것에 관심이 있습니다.

+0

둘 다 작동하지 않습니다. 불행한 부분은 파일 경로가 부족하다는 것입니다./ – Dingo

+0

시도해 볼만한 가치가 있습니다. 잘만되면 누군가는 내가 더 위로 나타날 것이고, 우리는 오늘 새로운 무엇인가를 배울 수있다 :) – SalvadorVayshun

관련 문제