現在、というファイル名という名前の文字列にファイル名が格納されています。文字列に格納されているファイルは現在開いています。問題は、このファイルが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
を試してみたのいずれか
が動作していません)
他のブルートフォースの方法はありますか?
ご協力いただきましてありがとうございます。
Visioはフォアグラウンドウィンドウです。基本的にあなたのコードがアクティブなウィンドウでない場合、アクティブなウィンドウを設定することはできません(無視されます)。これは、ユーザーが使用するプログラムの選択肢からフォーカスを奪ったプログラムを停止させることです。 –
私はほんの数分前にそのルールを実際に見つけました。どちらが理にかなっている。 Visioの2番目のインスタンスで3つのファイルが開かれ、 'filename'にフォーカスが外れているシナリオでは、アクティブなウィンドウとして表示されません。そのような場合は、名前を見つけてそれをアクティブにするために、開いているVisioの各インスタンスをループする必要があります(ただし、どうやってそれを行うのですか)。 – Dingo