Webbrowserコントロールを使用しています。
Submitボタンが押されてPOSTされたデータから、
以下のような命名規則で並んでいるHTML内の、
hiddenのvalue値をループで取得したいと思い、
<input type="hidden" name="No1" value="1">
<input type="hidden" name="No2" value="2">
<input type="hidden" name="No3" value="3">
For i = 0 To 3 Step 1
Debug.Print WebBrowser.Document.getElementsByName("No" & i)).Item(0).Value
Next
と書いたのですが、実行時エラー91が発生しました。
WebBrowser1.Document.getElementsByName("No1").Item(0).Value
と直に書くと、value値である「1」が、
WebBrowser1.Document.getElementsByName("No2").Item(0).Value
とすると、「2」が表示されるのですが、
getElementsByName("No" & i))ような書き方はできないのでしょうか?
> For i = 0 To 3 Step 1
> Debug.Print WebBrowser.Document.getElementsByName("No" & i).Item(0).Value
> Next
iが0から始まってます。
「No0」の名前は無いのでそりゃエラーになりますよね。
Debug.Print WebBrowser.Document.getElementsByName("No" & i)).Item(0).Value
の所を
Debug.Print WebBrowser.Document.getElementsByName("No" & i+1)).Item(0).Value
のように変えて
For i = 0 To 3 Step 1
の所を
For i = 0 To 2
を変えてみてはどうでしょうか?
あと、Step 1 は省略しても変わらないので
省略してしまいましょう。
>Debug.Print WebBrowser.Document.getElementsByName("No" & i)).Item(0).Value
>の所を
>Debug.Print WebBrowser.Document.getElementsByName("No" & i+1)).Item(0).Value
>
>のように変えて
>
>For i = 0 To 3 Step 1
>の所を
>For i = 0 To 2
>を変えてみてはどうでしょうか?
↑だったら、
For i = 1 To 3
でいいんじゃないの?
For i = 1 To 3でもいいんですけど・・・
プログラムは通常、数字だと0から始まるものだということを学びませんでしたか?
ポインターでのアセンブラーでしたっけ?
の番地が0000で始まっているのが理由みたいです。・・・・?
>For i = 1 To 3でもいいんですけど・・・
>プログラムは通常、数字だと0から始まるものだということを学びませんでしたか?
>
>ポインターでのアセンブラーでしたっけ?
>の番地が0000で始まっているのが理由みたいです。・・・・?
あなたこそ何を学んだのですか?
言わんとしている事はだいだいわかりますが、
何か勘違いしているようですね。(って言うか全然別の話持ち出してきてるし・・・)
iはカウンタとして使う変数です。
0から始まらなければならない理由は全くありません。
マグさんのようなコーディングの仕方をしていたら、
とても○づらく○いプログラムができそうですね・・・
そうだったのですか?
自分の作ったプログラムが読みにくいわけって・・・
もしかして、それが原因だったのですか・・・?