ウォーターサーバーとコーヒーマシンが一体化した画期的マシン >>

UWSCで、htmlソースコードの中の数字(1-3桁)を取得したいです。ブラウザはchromeを使う予定です。
取得するページには数字が多く存在するので、前後に固定文を入れて正確に数字を取得したいです。
固定文+取得する数字(1-3桁)+固定文 のように検索をかけたいです。


どのようなプログラムをかけばいいか教えて下さい。
よろしくお願いします。

このQ&Aに関連する最新のQ&A

A 回答 (2件)

前提として、固定文がHTMLに埋め込まれていて、


ブラウザをIEにすれば出来るかと。
クロームだと厳しそうです。

IE = CreateOLEObj("InternetExplorer.Application")
IE.Visible = True
IE.Navigate(URL)
BusyWait(IE)
body = IEGetSrc(IE, "BODY")             // BODYのソース取得
戻値 = BETWEENSTR(body, 前固定文字, 後固定文字, [n個目] ) //これを個数分 WHILEでデータが空になるまで繰り返すみたいな。。。

制御文は都合の良いようにすればいいかと思います。
※n個目をインクリメントする
    • good
    • 1

 UWSCは直接出来る内容ではありません。

したがって、UWSCで他のプログラムを動かしてデータを習得する必要があります。

この回答への補足

回答ありがとうございます。
VBScriptでやってみたのですが、技術が足りずうまくいきませんでした。
どのようにプログラムをかけば良いでしょうか。

補足日時:2012/05/17 20:54
    • good
    • 0

このQ&Aに関連する人気のQ&A

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

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Q(UWSC)エクセルのセルの値を読み込むには?

UWSCで、エクセルのセルの値を読みこむ方法について
悩んでおります。

Excel = GETACTIVEOLEOBJ("Excel.Application");
val1 = Excel.ActiveSheet.range("A1").value;
を使えば、開いているエクセルのA1セルにある値を
「val1」に読み込むことができました。

今、A1~A100にある100個のリストを順々に読み込むことを
考えています。おそらくfor文を使って、以下のようにするのかな?
と思っております。
for i=1 to 100
val=○○
next
A1~A100の値を順々に読み込むにはどのようにすればいいのでしょうか?

Aベストアンサー

Pro版だったらループなんてしなくても、XLGETDATA関数を使えば一発で配列変数に取り込めます。(UWSCのヘルプにサンプルコードがあります)

Pro版ではない通常UWSCだと、以下の処理で一個ずつ値を引っ張ってくるしかないでしょう。

1)F2キーを押す
2)Shift+Homeを押す
3)Ctrl+Cを押す
4)クリップボードから値を変数に読み込む(GETSTR関数を使用)
5)Enterを押す

という一連の処理を100回繰り返すわけです。

QUWSCを使用して、ドロップダウンリストを操作

お世話になります。

UWSCにてマクロを作成していますが、ドロップダウンリストを選択して操作する事ができずに、
止まってしまっています。

現在は、画像認識で選択し、マクロ上のKBの操作で選択する形を取ってますが、毎回マウスポインターが移動してしまい、マクロを動かしていると他の事ができません。

UWSCのマクロで、指定したリスト上の値を選択する事可能でしょうか

例)マクロ上で自動でリストから「いいい」を選択して、決定ボタン押下するなど。

===
対象ページの記述は下記の様な形です
2つリストがあり、それぞれに決定ボタンがあります。

<td class="b2"align="center">

<select name=mode>
<option value="aaa">あああ
<option value="bbb">いいい
<option value="ccc">ううう
<option value="ddd">えええ
<option value="eee">おおお
</select>
</td>
<td class="b2"align="center"><input type="submit"style="background-color:#9370DB;color:#FFFFFF;border:2 solid BFEFFF" value="決定"></td>

<select name=mode>
<option value="aaa">かかか
<option value="bbb">ききき
<option value="ccc">くく
<option value="ddd">けけ
<option value="eee">こここ
</select>
</td>
<td class="b2"align="center"><input type="submit"style="background-color:#9370DB;color:#FFFFFF;border:2 solid BFEFFF" value="決定"></td>

お世話になります。

UWSCにてマクロを作成していますが、ドロップダウンリストを選択して操作する事ができずに、
止まってしまっています。

現在は、画像認識で選択し、マクロ上のKBの操作で選択する形を取ってますが、毎回マウスポインターが移動してしまい、マクロを動かしていると他の事ができません。

UWSCのマクロで、指定したリスト上の値を選択する事可能でしょうか

例)マクロ上で自動でリストから「いいい」を選択して、決定ボタン押下するなど。

===
対象ページの記述は下記の様な形です
2つリス...続きを読む

Aベストアンサー

IESetDataを使うと良いかもしれません。

IESetData(IE,"bbb","mode")
IESETDATA(IE, True, "決定")

とかすれば、いけるかも。

http://e-dcz.com/~uwsc/iesetdata.htm
http://www.uwsc.info/sample.html#n33

有料版使えばIE用記録ツールがあるので便利。
http://www.uwsc.info/download.html

QUWSCでテキストファイルを開いて表示したい

UWSCでテキストファイルやExcelファイルを開きたいのですが、
FOPEN関数を使っても、たとえばテキストファイルを開こうと思っても開けません。

これはなぜでしょうか?
すべてのパソコンでダメでした。
OSはXPSP3、7SP1、です。
UWSCのバージョンは最新のバージョン(4.8e1)です。

UWSC.EXEのあるフォルダに、「test01.txt」を作成し、
fid=FOPEN("test01.txt",F_READ or F_WRITE)

と書いても、絶対パスで、

fid=FOPEN("C:\Users\user01\Desktop\uwsc\test01.txt",F_READ or F_WRITE)

と書いても、ダメでした。

その一行しか書いてないのがダメな原因なのでしょうか?

「C:\Users\user01\Desktop\uwsc\test01.txt」は
コマンドプロンプトやファイルを指定して実行、からは開けます。

アンチウィルスソフトは一時的にOFFにしてもだめでした。

OS(XPSP3)を再インストールして、ネットにつながず、
セキュリティソフトなしでやってみてもダメでした。

多分、自分が何か勘違いをしているのだと思いますが、
FOPEN関数は、ファイルを開いて表示するものだと思っていましたが
違うのでしょうか?

Webで検索すると、他のみなさんは開いているようなのですが・・・

ファイルのIDを取得するだけではだめで、ほかの記述も必要ということなのでしょうか?

ゆくゆくはExcelのファイルを普通に開きたいのです。
COMで開くような事例もあったので、それは試してみましたが、
Office2003のセキュリティの「中」設定が無視されて
開いてしまい、Auto_Openマクロも無視されたりで、
使いたくありません。
「中」設定のまま、「マクロを実行させるダイアログ」を
表示してExcelファイルを開きたいのです。

でもその前にということで、テキストファイルを試しにと思ったのですが
テキストファイルすら開けません。


何度かWeb検索しても一向に手がかりがつかめません。

大変すみませんが、どなたがご存知の方がいらっしゃったら、
よろしくご指導くださいませ。

UWSCでテキストファイルやExcelファイルを開きたいのですが、
FOPEN関数を使っても、たとえばテキストファイルを開こうと思っても開けません。

これはなぜでしょうか?
すべてのパソコンでダメでした。
OSはXPSP3、7SP1、です。
UWSCのバージョンは最新のバージョン(4.8e1)です。

UWSC.EXEのあるフォルダに、「test01.txt」を作成し、
fid=FOPEN("test01.txt",F_READ or F_WRITE)

と書いても、絶対パスで、

fid=FOPEN("C:\Users\user01\Desktop\uwsc\test01.txt",F_READ or F_WRITE)

と書いても、ダメでし...続きを読む

Aベストアンサー

fopenはuwscでファイルを開くための命令です。

> fid=FOPEN("test01.txt",F_READ or F_WRITE)

エラー値が返ってないのなら、

fline=FGET(fid, 1)

とかでflineに1行目が取得できるので、

print fline

なんかで表示できるはず。

--
> UWSCでテキストファイルやExcelファイルを開きたいのですが、

メモ帳(notepad.exe)やExcelでファイルを開くためには、例えば、

exec("C:\Windows\notepad.exe test01.txt")

などとして、メモ帳をアプリとして起動し、同時に引数を指定します。

QUWSCのIE操作でプルダウンを選択する方法

UWSCのIE操作でプルダウンを選択する方法がわからなく、
記録機能を使い試してみたのですがうまくいきませんでした。

どなたか教えていただけないでしょうか。
よろしくお願いします。


IE = CREATEOLEOBJ("InternetExplorer.Application")
IE.visible = true

IE.navigate("http://sportsnavi.yahoo.co.jp/")
waiting(IE)

IELINK(IE,"Jリーグ")
waiting(IE)

IELINK(IE,"日程&結果",2)
waiting(IE)


//ここがうまく行かないところです。記録で出てきたものをそのまま使用
CLKITEM(IE, "第22節", CLK_ACC)


//読み込み待ち
Procedure waiting(IE)
while IE.busy or IE.readyState<>4
Sleep(0.5)
wend
Fend

Aベストアンサー

 CLKITEM(IE, "第22節", CLK_ACC)

 IE.document.getElementsByName("select").item[2].value="index_2nd.html#j22"
 IE.document.getElementsByName("select").item[2].fireEvent("OnChange")
に変更すればいけると思います。

しかし、そもそも
 IE.navigate("http://sportsnavi.yahoo.co.jp/")

 IE.navigate("http://sportsnavi.yahoo.co.jp/soccer/jleague/2012/data/result/index_2nd.html#j22")
に変更すれば目的は達成されるような気がするのですが……
(来年度はたぶん2012が2013になるだけです。)

あと、IEの操作を記録したいのであれば、Pro版を購入してRecIEを使用したほうがいいと思います。

QUWSCの基本的な文字列操作

該当命令が、見つからず困っております。
9桁の文字列を先頭から、3桁ずつに分割したいのですが
お解かりになる方教えていただけませんでしょうか?

例、
DATA="123456789"
処理後
A="123"
b="456"
c="789"

Aベストアンサー

ヘルプより引用

----------
// 文字列コピー
戻値 = COPY( 文字列, 開始位置, コピー文字数 )
引数
  文字列: コピー元の文字列
  開始位置: コピーすべき文字列の開始位置 (1から)
  コピー文字数: コピーすべき文字数
戻値
  結果の文字列
----------

QUWSCでie内のデータを取得しエクセルにコピーする方法につい

はじめまして。
先日、UWSCを知り、始めたばかりのUWSC初心者です。
internetexplorerのtableのtd情報をあるだけ取得し、全てエクセルにコピーしたいのですが、その、書き方の質問になります。
最初はieとexcelを起動させたあとの記述は以下のような感じで書きました。

ww = IEGetData(IE,"TAG=TD",11)
sendstr(0,ww1)
ww2 =IEGetData(IE,"TAG=TD",12)
sendstr(0,ww2)
ww3 =IEGetData(IE,"TAG=TD",13)
sendstr(0,ww3)
ww4 =IEGetData(IE,"TAG=TD",14)
sendstr(0,ww4)
ww5 =IEGetData(IE,"TAG=TD",15)
sendstr(0,ww5)
ww6 =IEGetData(IE,"TAG=TD",16)
sendstr(0,ww6)

sheet1.range("a2").value = ww1
sheet1.range("b2").value = ww2
sheet1.range("c2").value = ww3
sheet1.range("a3").value = ww4
sheet1.range("b3").value = ww5
sheet1.range("c3").value = ww6


・・・とアナログ的に書けば、確かにie内のTDの1,2・・・の情報を取得して
excelにコピーできますが、TD1,2,・・・・の部分をあるだけ個別に取ってくる作業をもっと簡単に記述出来ると思うのですが、その書き方がわからなくて、ほんと困っています。。
あちこち参照して、for を組み合わせて使えばよいのは、なんとなくわかったのですが・・・tdデータの個別の抽出とエクセルに順序よく貼付する方法がわからなくて、どうしても思っているような作業がうまくできません。。
(下のような記述をしてみました。)

obj = ie.document.body.getelementsbytagname(\"td\")
for i = 0 to obj.length-1
tdn = obj.item(i).innertext
sendstr(0,tdn)
next
sheet1.range("a2").value = tdn



かなり初歩的な質問で、あきれてしまうかもしれませんが、どうか、宜しくお願いします。

はじめまして。
先日、UWSCを知り、始めたばかりのUWSC初心者です。
internetexplorerのtableのtd情報をあるだけ取得し、全てエクセルにコピーしたいのですが、その、書き方の質問になります。
最初はieとexcelを起動させたあとの記述は以下のような感じで書きました。

ww = IEGetData(IE,"TAG=TD",11)
sendstr(0,ww1)
ww2 =IEGetData(IE,"TAG=TD",12)
sendstr(0,ww2)
ww3 =IEGetData(IE,"TAG=TD",13)
sendstr(0,ww3)
ww4 =IEGetData(IE,"TAG=TD",14)
sendstr(0,ww4)
ww5 =IEGetData(IE,"TAG=TD",15...続きを読む

Aベストアンサー

操作対象のURLの提示がないので、UWSC掲示板の関連の話題を載せます。

http://www3.bigcosmic.com/board/s/board.cgi?id=umiumi&mode=all&no=349&log=ON&cnt=3
http://www3.bigcosmic.com/board/s/board.cgi?id=umiumi&mode=all&no=1451&log=ON&cnt=13
http://www3.bigcosmic.com/board/s/board.cgi?id=umiumi&mode=all&no=1468&log=ON&cnt=12
http://www3.bigcosmic.com/board/s/board.cgi?id=umiumi&mode=all&no=1787&log=ON&cnt=15


上は[掲示板検索ツール  UBTrek]で探しました。
http://sourceforge.jp/projects/uwsclib/

参考URL:http://www3.bigcosmic.com/board/s/board.cgi?id=umiumi

操作対象のURLの提示がないので、UWSC掲示板の関連の話題を載せます。

http://www3.bigcosmic.com/board/s/board.cgi?id=umiumi&mode=all&no=349&log=ON&cnt=3
http://www3.bigcosmic.com/board/s/board.cgi?id=umiumi&mode=all&no=1451&log=ON&cnt=13
http://www3.bigcosmic.com/board/s/board.cgi?id=umiumi&mode=all&no=1468&log=ON&cnt=12
http://www3.bigcosmic.com/board/s/board.cgi?id=umiumi&mode=all&no=1787&log=ON&cnt=15


上は[掲示板検索ツール  UBTrek]で探しました。
http://sourcefo...続きを読む

QUWSCでIEが開いているか判定する方法

UWSCでIEを操作しています。

しかし、IEは相手側のネットの環境によって動きが左右される場合があり
時々、IEが閉じてしまいます。

そこで、IEが閉じてしまったらUWSCのプログラムをストップするような処理を作りたいのですが、
そのような命令は存在するのでしょうか?

例えば、 IEが起動していればTRUE、起動していなければFALSEを返すような処理があれば良いのですが、もし知っている方がいましたらアドバイスを頂けるとうれしいです。

よろしくお願いします。

Aベストアンサー

こんにちわ

For i = 0 To GetAllWin() - 1
Ifb Status(ALL_WIN_ID[i], ST_CLASS) = "IEFrame" then
  msgbox("BBBBBBBB") // IEが有るときの処理
  exitexit
endif
Next
msgbox("AAAAAAAA") // IEが無いときの処理
exitexit


WIN XP, IE6での処理なので、動くかどうか試してください。

Quwsc webページ内のテキストボックス

みなさんこんばんわ。

uwscを使ってwebページ内の検索などのテキストボックスにカーソルを置きたいのです。
KBDで文字を打ち込めるようにテキストボックスを編集状態にするにはどうすれば教えてください。

具体的には、
私の会社の日報システム(html)で日報を入れる日付テキストボックスがあるのですが、日付のテキストボックスだけvalueで値を入力しても元に戻ってしまうのです。html解析スクリプトで調べると、outerhtmlと書いてあり、何か動的に書き変わるしかけがあるようなのですがよくわかりません。しかたがないのでKBDで日付を入力しています。domというのでしょうか、ie.doc.elements(i).value="yyyy/mm/dd"のようにテキストボックスを指定して直接値を入力できればベストなのですが…

よろしくお願いします。

Aベストアンサー

たびたび大変失礼をしました。
エレメント名を調査する方法が間違いでした。
前に紹介したスクリプトはオブジェクトへのアクセス方法でした。

以下の方法が原始的ですが、フォーム内のエレメント名を調べる方法を推奨します。

そもそも、テキストボックスはフォームの中に存在する訳なので、フォームを指定してあげて、その中のテキストボックスを全て表示すれば良い。

IEのウインドウ内のフォーム総数はIE.document.forms.lengthで求められます。

フォームの中のエレメント総数はIE.document.forms[番号].elements.lengthで求められます。

以下のスクリプトならIEで[番号]に指定されたフォーム番号のエレメント名が全て表示されます。
故に、フォーム番号を0から片っ端から入力して調査すれば、下のスクリプトでいずれ貴殿の探しているテキストボックスのエレメント名が解る筈です。
エラーで止まっても、UWSCに付属している小さなウインドウでエレメント名が出てくるので、これを使えばokです。
先ほど、佐川急便のフォームで試しました。エラーで止まりましたが、ウインドウのなかにエレメント名がばっちり残ってました。
但し、システム上でUWSCのアクセスを弾くなど、エレメント名を隠す加工がなされていれば、無理なのでごめんなさい。
ウインドウ名の入力は、前の答えのウインドウ名を調査するアプリを使って下さい。

//フォーム番号を0~いっぱい順序で入れて数回に分けて片っ端から調査して下さい。
UL1 = input("開いているウィンド名を入力")

IE = GETACTIVEOLEOBJ("InternetExplorer.Application",UL1)//指定したウィンド名のIEを制御
IE.visible=TRUE

REPEAT
SLEEP(0.1)
UNTIL !IE.BUSY AND IE.READYSTATE = 4

FBANGOU = input("要素数を調査したいフォーム番号を入力")

番号 = VAL(FBANGOU)
KOSUU = IE.document.forms[番号].elements.length
MSGBOX(KOSUU)

FOR x = 1 to VAL(KOSUU)
Ifb x > VAL(KOSUU) then
MSGBOX("終了")

EXITEXIT
endif

NAIYOU = IE.document.forms[番号].elements[x].name

print NAIYOU

next



追記:フォーム総数は、以下で求められます。
UL1 = input("開いているウィンド名を入力")
IE = GETACTIVEOLEOBJ("InternetExplorer.Application",UL1)
IE.visible=TRUE
REPEAT
SLEEP(0.1)
UNTIL !IE.BUSY AND IE.READYSTATE = 4
KOSUU = IE.document.forms.length
MSGBOX(KOSUU)


総括:わかりにくかったと思うので、私が実際に行った方法を最後に記します。
(1)調査したいIEのwebアプリの画面を開く。
(2)開いたIEのwebアプリの画面のフォーム総数をスクリプトを使って調べる。
(3)開いたIEのwebアプリの画面内に存在するフォームの数だけ、エレメント名の調査を行う。(例:フォーム数5と出たら5回。念のために0を含めた0から5を入力)
(4)エラーで出ても、めげずにprint関数を使ったUWSCのウインドウでエレメント名を拾う。
(5)エレメント名から法則性を推測する。
(6)法則性を理解したら、ID番号+エレメント名など入力するデータをエクセルで作成する。
(7)IESETDATA関数を使って、直接入力する。
終了です。

たびたび大変失礼をしました。
エレメント名を調査する方法が間違いでした。
前に紹介したスクリプトはオブジェクトへのアクセス方法でした。

以下の方法が原始的ですが、フォーム内のエレメント名を調べる方法を推奨します。

そもそも、テキストボックスはフォームの中に存在する訳なので、フォームを指定してあげて、その中のテキストボックスを全て表示すれば良い。

IEのウインドウ内のフォーム総数はIE.document.forms.lengthで求められます。

フォームの中のエレメント総数はIE.document.forms[番号].ele...続きを読む

Q【初心者】UWSCでjavascriptで書かれたhtmlを処理したいと思っています。

プログラムは殆どしたことのない初心者です。

UWSCでjavascriptで書かれたサイトの処理を
したいと思っています。

なにぶん、超のつく初心者なので分からないこと
だらけなのですが、何かよい知恵・知識をお持ちの方、
アドバイスを頂けないでしょうか?

具体的には、

<td height="36">
<a href="javascript:submitTab('ifwtab')" tabindex="13">
<img src="/external/PA_1_0_15H/img/tabs/image3off.gif" name="imag3"
height="36" hspace="0" vspace="0" border="0"
onMouseOver="nbGroup('over','imag3','/external/PA_1_0_15H/img/tabs/image3on.gif','/external/PA_1_0_15H/img/tabs/image3on.gif',1);"
onMouseOut="nbGroup('out');"
alt="Image File Wrapper" /></a></td>
といった具合のソースにおいて、
image3off.gifをクリックすることで行けるURLへ飛びたいと
いうものです。

以上、説明など足りない点が多々あるかと思いますが、
何かヒントになるようなサイト及び書籍
(Windowsマクロテクニックは本屋で既に予約済みです)
ご存知でしたら教えていただけないでしょうか?

以上、よろしくお願いいたします。

プログラムは殆どしたことのない初心者です。

UWSCでjavascriptで書かれたサイトの処理を
したいと思っています。

なにぶん、超のつく初心者なので分からないこと
だらけなのですが、何かよい知恵・知識をお持ちの方、
アドバイスを頂けないでしょうか?

具体的には、

<td height="36">
<a href="javascript:submitTab('ifwtab')" tabindex="13">
<img src="/external/PA_1_0_15H/img/tabs/image3off.gif" name="imag3"
height="36" hspace="0" vspace="0" border="0"
onMouseOver="nbGroup('o...続きを読む

Aベストアンサー

とおりすがりのシステム屋です。

ie = GETACTIVEOLEOBJ("internetexplorer.application")
ie.visible=true
repeat;sleep(0.1);until !ie.busy and ie.readystate=4
ie.document.all["imag3"].click

でいかがでしょうか。
これでダメだったらゴメンナサイ。

Q(UWSC) 「#32770」の意味わかりますか?

(UWSC)で、他人が作ったプログラムを見ています。

その中で、
GETID("タイトルの名前","#32770")
となっている箇所があります。
この"#32770"の意味がわかる方いらっしゃいますか?

教えてください。

Aベストアンサー

> この"#32770"の意味

ダイアログのクラス名


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング