2016-11-25 5 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 

を試してみたのいずれか

が動作していません)

他のブルートフォースの方法はありますか?

ご協力いただきましてありがとうございます。

+0

Visioはフォアグラウンドウィンドウです。基本的にあなたのコードがアクティブなウィンドウでない場合、アクティブなウィンドウを設定することはできません(無視されます)。これは、ユーザーが使用するプログラムの選択肢からフォーカスを奪ったプログラムを停止させることです。 –

+0

私はほんの数分前にそのルールを実際に見つけました。どちらが理にかなっている。 Visioの2番目のインスタンスで3つのファイルが開かれ、 'filename'にフォーカスが外れているシナリオでは、アクティブなウィンドウとして表示されません。そのような場合は、名前を見つけてそれをアクティブにするために、開いているVisioの各インスタンスをループする必要があります(ただし、どうやってそれを行うのですか)。 – Dingo

答えて

0

このような何か試してみてください:、https://msdn.microsoft.com/en-us/library/office/ff766749.aspx

私はVBAでのVisioで幅広く活動していない:私は別のオプションは、これを調べることにあると思い

objVisio.Application.Caption 

それとも

AppActivate "Microsoft Visio" 

を私は本当の答えをここに見ることに興味があります。

+0

両方は機能しません。不幸な部分は、ファイルのパスの不足です:/ – Dingo

+0

私は推測する価値がある。うまくいけば、誰かが私よりも賢くなり、今日は何か新しいことを学ぶことができます:) – SalvadorVayshun

関連する問題