VBAでIEのタイトルバーを取得する方法 削除
Message#1 2014年10月4日(土)10時59分 From: VBA迷人 |
おはようございます。 VBAでIE操作に挑戦しています。 IEを最善面に表示させる方法について、色々調べる中でもっと簡単な方法がないか探していたらAppActivateステートメントにたどり着きました。 引数titleにIEのタイトルバーに表示されるタイトルを指定すれば表示されると考えました。 そこで、以下のようにすると無事前面表示に成功しました。 Sub sample() Dim objIE As InternetExplorer Call ieView(objIE, "http://www.yahoo.co.jp") AppActivate objIE.LocationName & " - " & "Internet Explorer" End Sub こちらでも問題ないのですが、IEのバージョンによってはタイトル明記が異なる場合もでてくるかもしれないと考え、引数titleの特性で一致したタイトルがない場合は、指定された文字列で始まるタイトルを指定すれば認識してくれるとありました。 そこで、前方一致なら後方の"Internet Explorer"は不要と考え以下のようにしてみました。 Sub sample() Dim objIE As InternetExplorer Call ieView(objIE, "http://www.yahoo.co.jp") AppActivate objIE.LocationName End Sub Sub ieView(objIE As InternetExplorer, _ urlName As String) Set objIE = CreateObject("InternetExplorer.Application") objIE.Visible = True objIE.Navigate urlName Do While objIE.Busy = True Or objIE.ReadyState <> 4 DoEvents Loop Do Until objIE.document.ReadyState = "complete" DoEvents Loop End Sub するとyahooはうまくいくのですが、他のサイトでは、引数が不正ですとエラーが表示されます。 何が違うのか見てみるとyahooは英文字のみだったのでうまく前面表示できていましたが、他のひらがな・カタカナが入っているサイトではエラーがおきていました。 そこで、表示されている文字列ではなく、文字コードでみているのではないかと思い、LEFT関数を利用して英文字部分だけ抽出してやるとエラーが起きていたサイトでも表示がうまくいきまいた。ただし、頭文字がひらがな・カタカナではじまるサイトはエラーがおきます。 じゃあとりあえずサイトの文字コードをShift-JISにしてみたらどうかと思ったら、こちらでもエラーが起きます。 ここでもうギブアップでこちらで質問させていただきます。 IEを前面に出す方法は他でもありますが、あえてAppActivateを利用した方法で解決する策はないでしょうか? 完全一致ではなく前方一致でどのサイトでも対応できるようにしたいと考えています。 よろしくお願いします。 |
上のメッセージを削除します。
よければパスワードを入力し、削除ボタンをクリックしてください。