こちらのExcelVBAサンプルを

http://www.happy2-island.com/vbs/cafe02/capter00707.shtml

下記フォームに組み込む方法を教えてください。

ラベル     lblURL  「URL表示」
コマンドボタン cmdKensaku 「検索」
コマンドボタン cmdSyutoku 「URL取得」

この3つのオブジェクトを配置し「検索」を押すとIEが立ち上がり
URLを取得を押すとその時表示しているページのURLを取得しラベルに表示させたい

聞いてばかりで申し訳ないのですが、適切な答えの方には
100p~差し上げます。
よろしくお願いします。

回答の条件
  • 1人5回まで
  • 登録:
  • 終了:2007/07/17 14:05:04
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答1件)

id:Mook No.1

回答回数1314ベストアンサー獲得回数393

ポイント60pt

今回ご質問への直接の回答ではありませんが、EXCEL の VBA と WSH の VBS は文法も似ていますが、まったく同じではありません。


特にWScript と書かれている部分はそのままでは動きませんし、VBA がプロシージャ単位でしか記述できないという点も異なります。


例示のサンプルをEXCEL で動かすには下記にように変更する必要があります。

Option Explicit
'--- 追加 ---
Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)

Sub runIE()
    Dim objIE As Object
    Dim strBody As String
    
    'objIEオブジェクトを作成します
    Set objIE = CreateObject("InternetExplorer.Application")
    
    'ウィンドウの大きさを変更します
    objIE.Width = 800
    objIE.Height = 600
    
    '表示位置を変更します
    objIE.Left = 0
    objIE.Top = 0
    
    'インターネットエクスプローラ画面を表示します
    objIE.Visible = True
    
    '指定したURLを表示します
    objIE.Navigate "http://www.yahoo.co.jp/"
    
    'ページの読み込みが終わるまでココでグルグル回る
    Do Until objIE.Busy = False
       '空ループだと無駄にCPUを使うので250ミリ秒のインターバルを置く
'--- 変更 ---
       Sleep 250
    Loop '
    
    '①表示したページの<BODY>部のHTMLを取得し画面に表示
    strBody = objIE.Document.Body.InnerHtml
'--- 変更 ---
    MsgBox strBody
    
    '②表示したページの<BODY>部のテキストだけを取得し画面に表示
    strBody = objIE.Document.Body.InnerText
'--- 変更 ---
    MsgBox strBody
    
    'オブジェクトの破棄
    Set objIE = Nothing
End Sub

ご質問では、URL を取得したいということですが、今回の例はURL を渡して表示させ、中身を表示させるものです。


やりたい目的をもう一度、整理してはいかがでしょうか。

id:taro_tan

いつもご回答ありがとうございます。

勉強不足で質問内容を間違っていたようです。

また勉強してみます

2007/07/16 13:56:44
  • id:Mook
    前回の回答では、問題があったでしょうか。
    まだあちらの方が、ご質問の題意に近い気がするのですが。

    不明な点がありましたらコメントください。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません