VBAから任意のURLをブラウザで開こうとするとき、ExcelならHyperlinkのFollowというメソッドがあります。
URLは既定のブラウザで開くようです。ブラウザが起動していれば新しいタブで開きます。
しかし、これだとセルに書き込みをしないとできません。既に使用されているシートでは危険です。かと言って、そのために新規のシートを追加して後で削除するとか、そのためにDisplayAlertsをFalseにしてTrueに戻すとか、それをユーザーに見せないためにScreenUpdatingをFalseにしてTrueに戻すとか・・・よけいな処理もあんまりやりたくありません。今までは下記のようにやってました。
既定のブラウザがなんであれIEで開くんですが。
また、実行するたびに新しいIEが起動してしまいます。それについては下記のように対処してました。
ただし「IEが開いているか探す」の部分は、状況によってはエラーになります。Outlookで引っかかったのですが、WindowオブジェクトにFullNameが無いケースがあるようです。
と言うか、この後IEを操作するならともかくURLを開くだけならもっとかんたんにできんのか?
それにユーザーがふだんIEを使っているとは限りません。
やはり既定のブラウザで開くようにしたい。レジストリで取得できるみたいですけど:
ShellExecute を使用して、既定の Web ブラウザーを起動するには - Microsoftサポート
あらためて調べたら、こんないろいろ考えなくてもいい方法がありました。
Run メソッド - MSDN
これだけで既定のブラウザで開くようです(起動してる場合は新しいタブで開く)。2つ目の引数でウィンドウの状態も指定できます。もっと早く知るべきでしたw
URLは既定のブラウザで開くようです。ブラウザが起動していれば新しいタブで開きます。
しかし、これだとセルに書き込みをしないとできません。既に使用されているシートでは危険です。かと言って、そのために新規のシートを追加して後で削除するとか、そのためにDisplayAlertsをFalseにしてTrueに戻すとか、それをユーザーに見せないためにScreenUpdatingをFalseにしてTrueに戻すとか・・・よけいな処理もあんまりやりたくありません。今までは下記のようにやってました。
既定のブラウザがなんであれIEで開くんですが。
また、実行するたびに新しいIEが起動してしまいます。それについては下記のように対処してました。
ただし「IEが開いているか探す」の部分は、状況によってはエラーになります。Outlookで引っかかったのですが、WindowオブジェクトにFullNameが無いケースがあるようです。
と言うか、この後IEを操作するならともかくURLを開くだけならもっとかんたんにできんのか?
それにユーザーがふだんIEを使っているとは限りません。
やはり既定のブラウザで開くようにしたい。レジストリで取得できるみたいですけど:
ShellExecute を使用して、既定の Web ブラウザーを起動するには - Microsoftサポート
あらためて調べたら、こんないろいろ考えなくてもいい方法がありました。
Run メソッド - MSDN
これだけで既定のブラウザで開くようです(起動してる場合は新しいタブで開く)。2つ目の引数でウィンドウの状態も指定できます。もっと早く知るべきでしたw
0 件のコメント:
コメントを投稿