プロが教える店舗&オフィスのセキュリティ対策術

お世話になっております。

VBSでテキスト(文字列)の一部を切り出したいのですが、Visual basicのやり方だとエラーが出てしまいます。
つまり、Mid関数を使ったらエラーが出て、対処がわかりません。
以下に具体的なものを示します。
インターネットホームページの中からテキストを取得して、そのテキストから一部分を切り出したいのです。
例えば切り出したテキストが「赤1、青2、黄3」だとします。色名+数字、色名+数字、色名+数字というテキストです。色名を指定して、その次の数字を切り出したいのです。最終的には切り出した数字をc:\textfile.txtに保存しようとしております。

Dim IE
dim price

Set IE = WScript.CreateObject("InternetExplorer.Application")

IE.Navigate ("http://hoomupeeji")
While IE.busy: Wend
While IE.Document.readyState <> "complete": Wend

Dim fs

Set fs = CreateObject("Scripting.FileSystemObject")

Set a = fs.CreateTextFile("C:\textfile.txt", True)

For Each r In IE.Document.All.tags("TABLE")(3).rows
For Each c In r.Cells
a.Write (Replace(c.innerText, vbCrLf, ","))
Next
Next

price = Mid(a, InStr(price, "赤") , 1)
a.Write (price)
a.Close
IE.quit

どうぞよろしくお願いいたします。

A 回答 (2件)

まず、c.innerText で取り出した文字列が、


期待しているように
"赤1,青2,黄3"のようになっているかどうかを確認しましょう。
str = c.innerTextとかして、
いったん変数に入れます。
str = "赤1,青2,黄3"
の時
price=mid(str,instr(1,str,"青",1)+1,1)
で price は"2"になります。

私は、テーブルの数も内容も知りませんし、
またファイルに書き出す処理の意味も知りませんので、
方向が正しいかどうかは知りません。
    • good
    • 0

>price = Mid(a, InStr(price, "赤") , 1)


の「a」は、ファイルであって、文字列ではありません。
    • good
    • 0
この回答へのお礼

ありがとうございます。

>> price = Mid(a, InStr(price, "赤") , 1)
> の「a」は、ファイルであって、文字列ではありません。

このaファイルの記述をaファイルのテキストと直せばよいのではないかと思いました。もしその方向で正しければ、どのようにすればよいのでしょうか。

お礼日時:2004/09/24 14:25

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!