office文章のハイパーリンクでCookie情報が紛失することがあるらしいよ。

タイトルの件、認証システムのあるサイトに対して、
「ハイパーリンクでURL指定したサイトが認証エラーで開かないよ?なんで?」っていうことがあった。

100%エラーになるんじゃなくて、
何回かやってるとうまく行くとかいうこともあって「?」だらけ。

マクロとか関数が悪いのかな?

タイミングが悪いのかな?

といろいろやってみてたけど、既出の問題だったみたい。



こちらのブログさんがしっかりまとめてくださっていてとても勉強になった。

はじめ@Blog「Office製品のハイパーリンクとログイン認証画面」
http://hajimesan.net/blog/?p=875



原因はどうやらMSの不具合らしい…

Microsoft サポートオンライン 「Office 文書内のハイパーリンクを開くと Cookie が紛失する」
http://support.microsoft.com/kb/811929/ja

ログオン ページまたは、エラー ページにリダイレクトされますまたは SSO の Web サイトで、Office ドキュメントへのハイパーリンクをクリックすると認証情報が要求されます
http://support.microsoft.com/kb/899927/ja


ハイパーリンクは使えないってことがわかったので、
マクロでリンクボタンを作ってやることで対応してみた。

ハイパーリンクおいてたあたりに適当にボタンを作って、
以下の処理を登録してあげる。

*************************

Sub ボタンクリック()

   'IEのオブジェクト
   Dim objIE As Object
   Set objIE = CreateObject("InternetExplorer.Application")

   'IE表示
   objIE.Visible = True

   '遷移
   objIE.Navigate ("遷移させたいURL")

   'オブジェクト解放
   Set objIE = Nothing

End Sub

*************************


IEオブジェクトの操作を検索すると、
「処理の終了を待つ」を一緒に設定する以下の処理が紹介されているけど、
*************************

'完全にページが表示されるまで待機する
Do While objIE.Busy = True Or objIE.ReadyState <> 4
 DoEvents
Loop

*************************

今回はリンク先を開くだけで後続処理はないので何もせずに放置。


ちなみに「InternetExplorer.Application」は
基本的に同一セッションでブラウザを操作するらしい。

新規セッションで開くには+αが必要らしいので、そのうち調べようかな…


ブログ気持玉

クリックして気持ちを伝えよう!

ログインしてクリックすれば、自分のブログへのリンクが付きます。

→ログインへ

なるほど(納得、参考になった、ヘー)
驚いた
面白い
ナイス
ガッツ(がんばれ!)
かわいい

気持玉数 : 0

この記事へのコメント

この記事へのトラックバック