• 締切済み

VB初心者です

エクセルVB初心者です。 ウェブサイトから情報を取ろうと思いました。 <dt class="market zsg-fineprint"> <!-- Market Text & tooltip --> <!-- Non-Market Text & Tooltip --> Market <sup>&reg;</sup>: $1.18M</dt> <dt class="market zsg-fineprint"> から"1.18M"を取り込んで現在のセルから右に6個目のセルにコピペしようと思い、次のようなSubを作りましたが、うまく行きません。 Sub getMarket(objIE As Object) Dim MarketPosition As Integer Dim DollarPosition As Integer MarketPosition = InStr(1, objIE.Document, "Market") DollarPosition = InStr(marketPosition, objIE.Document, "$") ActiveCell.Offset(0, 6) = Mid(objIE.Document, DollarPosition + 1, 4) End Sub うまく動作させるためにはどうしたらよいでしょうか?

みんなの回答

  • jcctaira
  • ベストアンサー率58% (119/204)
回答No.1

hyokoyamaさん はじめまして。 単純に基本的なことが理解できていないかと思います。 「objIE.Document」とは何かの値を返すと思っているのでしょうか?  ※InStr(1, objIE.Document, "Market") という命令なので   おそらくHTMLの文字列をイメージしているのだと思います。 「objIE.Document」はIEオブジェクトのドキュメントクラスです。 クラスなのでメソッド・プロパティが使用できます。 hyokoyamaさんがイメージした【HTML】を取得したいのなら  objIE.Document.body.innerHTML で取得できます。 その他にも  objIE.Document.body.innerText にすると表示する文字列だけ取得できます。 よってプログラムの修正は以下のようになります。  MarketPosition = InStr(1, objIE.Document, "Market")  DollarPosition = InStr(marketPosition, objIE.Document, "$")  ActiveCell.Offset(0, 6) = Mid(objIE.Document, DollarPosition + 1, 4)                 ↓  MarketPosition = InStr(1, objIE.Document.body.innerHTML, "Market")  DollarPosition = InStr(marketPosition, objIE.Document.body.innerHTML, "$")  ActiveCell.Offset(0, 6) = Mid(objIE.Document.body.innerHTML, DollarPosition + 1, 4)  試してみて下さい。