tagCANDY CGI VBレスキュー(花ちゃん) - VBレスキュー(花ちゃん)の投稿サンプル用掲示板 - Visual Basic 6.0 VB2005 VB2010
VB2005用トップページへVBレスキュー(花ちゃん)のトップページVB6.0用のトップページ
VBレスキュー(花ちゃん)の投稿サンプル用掲示板
     サンプル投稿用掲示板  VB2005 〜 用トップページ  VB6.0 用 トップページ
インターネット上の文字列取得(VB6.0) ( No.0 )  [親スレッドへ]
日時: 2009/12/27 13:22
名前: 花ちゃん

***********************************************************************************
* カテゴリー:[インターネット][][]                                         *
* キーワード:WEB,HTML,リモート操作,,,                                            *
***********************************************************************************

元質問:インターネット上の文字列取得 - js   2003/04/09-01:10 No.3478


---------------------------------------------------------------------------
Re: インターネット上の文字列取得 - 魔界の仮面弁士  2003/04/09-10:46 No.3489
---------------------------------------------------------------------------

> インターネット上のHTML内にある文字列を値として
> ソフトに取り込みたいのですが、そのようなことはできますでしょうか?

やり方はいろいろありますが、「XMLHTTPオブジェクト」を使うというのは如何でしょうか?

これだと、文字コードの変換も自動で行ってくれますので、yahooのような、
「文字コードがEUC-JPであるページ」でも、比較的簡単に取り込めるかと思います。

'--------
Option Explicit

Private Sub Form_Load()
    Text1.Text = "http://www.yahoo.co.jp/"

    'Text2のMultiLineはTrueにしておいて下さい。
    Text2.Text = ""
End Sub

Private Sub Command1_Click()
    Dim xmlHTTP As Object
    
    Set xmlHTTP = getXMLHTTP()
    If xmlHTTP Is Nothing Then
        MsgBox "XMLHTTPオブジェクトの生成に失敗しました。", vbExclamation
        Exit Sub
    End If

    xmlHTTP.Open "GET", Text1.Text, False
    xmlHTTP.send ""

    Text2.Text = xmlHTTP.responseText
    
    Set xmlHTTP = Nothing
End Sub

Private Function getXMLHTTP() As Object
  Dim L As Long
  On Error Resume Next

  'セキュリティレベル & パフォーマンスの高い MSXML4を優先して作成する。
  '対応バージョンのXMLHTTPがインストールされていない場合は、
  '下位バージョンのXMLHTTPオブジェクトの生成を試みる。
  For L = 0 To 4
    Select Case L
     Case 0
      Set getXMLHTTP = CreateObject("Msxml2.XMLHTTP.4.0")
     Case 1
      Set getXMLHTTP = CreateObject("Msxml2.XMLHTTP.3.0")
     Case 2
      Set getXMLHTTP = CreateObject("Msxml2.XMLHTTP.2.6")
     Case 3
      Set getXMLHTTP = CreateObject("Msxml2.XMLHTTP")
     Case 4
      Set getXMLHTTP = CreateObject("Microsoft.XMLHTTP")
    End Select
    If Not getXMLHTTP Is Nothing Then
        Exit For
    End If
  Next
End Function
'---------

上記のようにHTML自体を取得するのではなく、テキストノードだけを取得したいのであれば、
XMLHTTP.responseTextの代わりに、MSHTMLの「innerText/outerTextプロパティ」を
利用するという手もあります。



----------------------------------------------------------------------------
変ったコードなので試して見ました。 特に参照設定等も必要なく上記コードを
そのまま実行できます。コードだけでは、どのように出力されるのか解らないので
実行結果の画像を添付しておきます。

その他下記のような書き込みもありますので参考の為に(当サイト内検索結果)
http://tinyurl.com/22uk3y

                            by 花ちゃん
-----------------------------------------------------------------------------
画像をクリックすると元のサイズで見られます。



 [スレッド一覧へ] [親スレッドへ]