- ベストアンサー
URL名を取得する方法
- Web Browserを使用して、特定のURLの名前を取得する方法について教えてください。
- 現在、WebBrowserコントロールを使用してURLにアクセスしていますが、名前を取得する方法がわかりません。
- Debug.Print Form_フォーム1.WebBrowser1.Navigate.NameやForm_フォーム1.WebBrowser1.url.Nameを試しましたが、エラーになりました。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
フォームを開くときでも、ボタンクリック時でも いいのですが、たとえば、クリック時でYAHOOを 表示するならば、 Private Sub コマンド1_Click() Me![WebBrowser1].Navigate "http://www.yahoo.co.jp/" End Sub のように表記します。 次に、 Sub a() Debug.Print Form_フォーム1.WebBrowser1.Navigate.Name Debug.Print Form_フォーム1.WebBrowser1.url.Name End Sub は、標準モジュールに設定しているものとすると、 フォームオブジェクトの表記方法が間違っています。 フォーム1がフォームの名前とすると、Form_フォーム1 という表記はたぶんコード表のプロジェクトに表示 されているものでしょうが、実際にこのような表記を VBAコードで表記することは特別な場合を除いてありません。 したがって、標準モジュールで設定しているとすれば、 Sub a() Debug.Print Forms!フォーム1![WebBrowser1].Document.Title Debug.Print Forms!フォーム1![WebBrowser1].Document.URL End Sub もし、フォーム1に設定したボタンのクリック時のイベント に設定するならば、 Private Sub コマンド2_Click() Debug.Print Me![WebBrowser1].Document.Title Debug.Print Me![WebBrowser1].Document.URL End Sub あるいは、 Private Sub コマンド2_Click() MsgBox Me![WebBrowser1].Document.Title MsgBox Me![WebBrowser1].Document.URL End Sub のようにします。
その他の回答 (3)
- piroin654
- ベストアンサー率75% (692/917)
No3です。 Sub a() が標準モジュールに設定されているならば、 当然ながらフォーム1は開かれている必要がありますし、 このSubプロシージャを呼び出すには、単純には フォームのボタンクリックで呼び出したりすると 思いますが、その場合は Private Sub コマンド3_Click() Call a End Sub のような呼び出しをしているものとします。 また、 Private Sub コマンド2_Click() Debug.Print Me![WebBrowser1].Document.Title Debug.Print Me![WebBrowser1].Document.URL End Sub は、 Private Sub コマンド2_Click() Debug.Print Forms!フォーム1![WebBrowser1].Document.Title Debug.Print Forms!フォーム1![WebBrowser1].Document.URL End Sub あるいは、 Private Sub コマンド2_Click() MsgBox Forms!フォーム1![WebBrowser1].Document.Title MsgBox Forms!フォーム1![WebBrowser1].Document.URL End Sub のようにMeを使わずに、Formsを使用することもできます。
お礼
再度詳しいご説明ありがとうございます。
- watabe007
- ベストアンサー率62% (476/760)
間違っていたら、ごめんなさいね ExcelならDocumentCompleteイベントがあって Private Sub WebBrowser1_DocumentComplete(ByVal pDisp As Object, URL As Variant) MsgBox pDisp.Document.Title '⇒Yahoo! JAPAN MsgBox URL '⇒http://www.yahoo.co.jp/ End Sub と、取得できるんですが・・・
お礼
エクセルならできるのですか。 アクセスのWebBrowserのイベントは、 Private Sub WebBrowser1_Enter() End Sub Private Sub WebBrowser1_Exit(Cancel As Integer) End Sub Private Sub WebBrowser1_GotFocus() End Sub Private Sub WebBrowser1_LostFocus() End Sub Private Sub WebBrowser1_Updated(Code As Integer) End Sub しかないようで、 MsgBox pDisp.Document.Title '⇒Yahoo! JAPAN MsgBox URL '⇒http://www.yahoo.co.jp/ を貼り付けてみたら、 「pDisp」の部分でエラーになってしまいました。 せっかくご回答いただいたのにすいません。
- singlecat
- ベストアンサー率33% (139/418)
webBrowser1.DocumentTitle です
お礼
MsgBox Form_フォーム1.WebBrowser1.DocumentTitle にすると、エラーになってしまいます・・・
補足
エラー内容は、 オブジェクトは、このプロパティまたはメソッドをサポートしていません。(Error 438) です。 再度ご回答いただければ幸いです。
お礼
Form_フォーム1.WebBrowser1 ではなく、 Forms!フォーム1![WebBrowser1] と、記述するべきでしたね! Debug.Print Forms!フォーム1![WebBrowser1].Document.Title Debug.Print Forms!フォーム1![WebBrowser1].Document.URL にしたら、 フォームモジュールでも標準モジュールでも問題なく出来ました。ありがとうございました。大変参考になりました。