電子書籍の厳選無料作品が豊富!

エクセルvbaでHTML操作
vba,HTML初級者です。asp,javaScriptはほとんどわかりません。

社内の管理システム(ウェブアプリケーション)にエクセルの数値を転記すると
いう作業がめんどくさいので、エクセルVBAで自動化できないかと考えています。
会社の管理システムはASP+JavaScriptで作成されていて、よくわからないので
手動で入力する手順をそのままvbaで組もうかと思っています。

ログイン → リンクリスト表示 → リンククリック → データを入力 → 登録

という流れなのですが、リンクをクリックしてデータ入力画面まではいけたのですが
その後のプログラムがわかりません。

<データ入力画面の構成>
----------------------------
|  CODE  |  案件名  |  内容  |
----------------------------
|  CODE  |  案件名  |  内容  |
----------------------------
|  CODE  |  案件名  |  内容  |
----------------------------
|  CODE  |  案件名  |  内容  |
----------------------------
|  CODE  |  案件名  |  内容  |
---------------------------- 
[登録ボタン]

CODE、案件名、内容、の部分はテーブルになっています。
このような構成の画面にCODE、案件名、内容を入力して登録ボタンをクリックしたいのですが、
テキストボックスのネーム属性がどの行も同じで(txtCode,txtName,txtJobの3種類)
どうやって指定して入力すればいいのかわかりません。

画面のhtmlをここに載せられるといいのですが、情報漏えいなどに触れそうなので
ちょっと載せられません。
非常に少ない情報なので、申し訳ないのですが解決のヒントをいただけたらと思います。

よろしくお願いします。

A 回答 (2件)

elementsで追っていけばいいです。


こんなかんじになりますでしょうか。(実際に動くか試していません)

For i=0 to …document.forms(0).elements.length-1
 If …document.forms(0).elements(i).name = "txtCode" Then
  …document.forms(0).elements(i).value = Cells(rowCode, colCode).value
  rowCode = rowCode + 1
 End If
Next

登録ボタンを押すには forms(0).submit() でできます。
(もしくは [ボタンのname].click()でもよいです)

この回答への補足

早速の回答ありがとうございます。

・・・の部分はInternetExplorerオブジェクトでよかったですか?
早速試してみたところ、とりあえず要素の名前を拾うことが出来ましたので、
入力も問題なく出来るかと思います。
できればHTMLTableオブジェクトの行単位での入力がしたかったのですが、
わかりやすいコードですし、これでもいいですね。

それでちょっと質問なのですが、今まで私はコードを組む際、ローカルウィンドウでオブジェクトの
持っているフィールド(?)で追っていたのですが、(ie-document-all-itemと言う感じで・・)
このelementsと言うのはなんなんですか?ローカルウィンドウには出てこないのですが・・・。
vbaの補完にも出てこないですし、どのようなオブジェクトなのですか?

補足日時:2010/10/20 14:49
    • good
    • 0

≫このelementsと言うのはなんなんですか?



elementsはFORMに含まれるINPUTやSELECTなどの要素が入ります。

「form elements」などで検索すると色々出てきます。
わからなくなったらとりあえず検索してみるとよいですよ。
    • good
    • 0
この回答へのお礼

早速検索してみました。使用方法はなんとなくわかりました。
でも、まだelementsというもの自体が理解できる情報は得られてませんので、
もう少し検索してみたいと思います。
javaのapiの様な物があるとわかりやすいんですけどねぇ^^;

追加の質問にもお答えいただき、どうもありがとうございました。

お礼日時:2010/10/21 09:42

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