• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:URL名を取得するには?)

URL名を取得する方法

このQ&Aのポイント
  • Web Browserを使用して、特定のURLの名前を取得する方法について教えてください。
  • 現在、WebBrowserコントロールを使用してURLにアクセスしていますが、名前を取得する方法がわかりません。
  • Debug.Print Form_フォーム1.WebBrowser1.Navigate.NameやForm_フォーム1.WebBrowser1.url.Nameを試しましたが、エラーになりました。

質問者が選んだベストアンサー

  • ベストアンサー
  • piroin654
  • ベストアンサー率75% (692/917)
回答No.3

フォームを開くときでも、ボタンクリック時でも いいのですが、たとえば、クリック時で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 のようにします。

kjrweugdbyu
質問者

お礼

Form_フォーム1.WebBrowser1 ではなく、 Forms!フォーム1![WebBrowser1] と、記述するべきでしたね! Debug.Print Forms!フォーム1![WebBrowser1].Document.Title Debug.Print Forms!フォーム1![WebBrowser1].Document.URL にしたら、 フォームモジュールでも標準モジュールでも問題なく出来ました。ありがとうございました。大変参考になりました。

その他の回答 (3)

  • piroin654
  • ベストアンサー率75% (692/917)
回答No.4

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を使用することもできます。

kjrweugdbyu
質問者

お礼

再度詳しいご説明ありがとうございます。

  • watabe007
  • ベストアンサー率62% (476/760)
回答No.2

間違っていたら、ごめんなさいね 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 と、取得できるんですが・・・

kjrweugdbyu
質問者

お礼

エクセルならできるのですか。 アクセスの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)
回答No.1

webBrowser1.DocumentTitle です

kjrweugdbyu
質問者

お礼

MsgBox Form_フォーム1.WebBrowser1.DocumentTitle にすると、エラーになってしまいます・・・

kjrweugdbyu
質問者

補足

エラー内容は、 オブジェクトは、このプロパティまたはメソッドをサポートしていません。(Error 438) です。 再度ご回答いただければ幸いです。

関連するQ&A