IEの中のフォームのデータセットに関してわからないところがあり、どうか力をお貸しください。よろしくお願いします。
Dim mo As Integer
Dim atai As Integer
Dim basyo As String
For mo = 1 To 10
basyo = "form1" & Cells(7, mo)
atai = Cells(9, mo)
objie.Document.all.basyo.Value = atai
Next
のような感じにしたいのですが、どうしてもエラーがでてしまい、先にすすめず困っています。
ネットで探して試してはみたのですが、やはりエラーがでてしまいます・・
objie.Document.parentWindow.execScript "document.all." & basyo & ".Value = " & atai, "VBScript"
解決する上手い方法が知っている方がいましたら、よろしくお願いします。
No.6ベストアンサー
- 回答日時:
回答3です。
>objie.Document.Item(basyo).Value = atai
>でもやってみたのですが、
>オブジェクトはこのプロパティまたはメソッドをサポートしていません。というエラーがでてしまいます。objie.Document.Item(basyo).Value = atai
失礼しました。
objie.Document.all.Item(basyo).Value = atai
と書いたつもりでした。「all」が抜けていました。
しかし、私の環境ではそれでもエラーになりました。
objie.Document.all.Item("form1_1").Value = atai
ならOKでも
basyo="form1_1"
objie.Document.all.Item(basyo).Value = atai
と、変数を使うとエラーになりました。
原因は不明ですが、代案として
objIE.Document.getElementsByName(basyo).Item(0).Value = atai
ではいかがでしょう?こちらの2003の環境では動作確認できました。
No.5
- 回答日時:
>objie.Document.GetElementByID("basyo").Value = atai
・・・
>でやってみましたがエラーがでました・・
GetElementByID関数は、その名前から判るように、引数にID属性値を指定します。「objie.Document.GetElementByID("basyo")」では、「"form1" & Cells(7, mo)」というIDのエレメントではなく、「basyo」というIDのエレメントを探してます。
「objie.Document.GetElementByID(basyo)」としてください。ただし、
http://island.geocities.jp/kawamae1023/test.html
を見るとinputタグにはname属性値はありますが、ID属性値はありませんよね。なので、GetElementByIDは使えません。
名前の重複がないなら、すでに回答3で示されているように
objie.Document.Item(basyo).Value = atai
となります。「objie.Document.Item("basyo")」ではありませんのでご注意ください。
この回答への補足
いろいろ、アドバイスありがとうございます。
名前の重複はないので、
objie.Document.Item(basyo).Value = atai
でもやってみたのですが、
オブジェクトはこのプロパティまたはメソッドをサポートしていません。というエラーがでてしまいます。。
No.4
- 回答日時:
getElementsByTagNameを使ってみました。
Sub test2()
Dim myWind As Object
Dim myTag As Object
Dim myUrl As String
Dim myAry As Variant
Dim i As Integer
myUrl = "http://island.geocities.jp/kawamae1023/test.html"
myAry = Array("あ", "い", "う", "え", "お")
For Each myWind In CreateObject("Shell.Application").Windows
With myWind
If .locationURL = myUrl Then
Set myTag = .Document.getElementsByTagName("input")
For i = 0 To myTag.Length - 1
If myTag.Item(i).Name Like "form1_*" Then
myTag.Item(i).Value = myAry(i)
MsgBox myTag.Item(i).Name & " : " & myTag.Item(i).Value
End If
Next i
Exit For
End If
End With
Next myWind
Set myTag = Nothing
End Sub
No.3
- 回答日時:
テストしてみました。
提示されたサンプルページをIEで表示してからマクロを実行してください。
Sub test1()
Dim myWind As Object
Dim myUrl As String
Dim myAry As Variant
Dim i As Integer
myUrl = "http://island.geocities.jp/kawamae1023/test.html"
myAry = Array("あ", "い", "う", "え", "お")
For Each myWind In CreateObject("Shell.Application").Windows
With myWind
If .locationURL = myUrl Then
For i = 1 To 5
.Document.all.Item("form1_" & i).Value = myAry(i - 1)
MsgBox .Document.all.Item("form1_" & i).Value
Next i
Exit For
End If
End With
Next myWind
End Sub
この回答への補足
情報がいろいろ足らずすいません。
Dim objIE As Object
Set objIE = CreateObject("InternetExplorer.application")
objIE.Visible = True
objIE.Navigate "http://island.geocities.jp/kawamae1023/test.html"
上記を入れて1つ1つIEを起動して処理する必要があるのです。。
よろしくお願いします。
No.2
- 回答日時:
>objie.Document.all.basyo.Value = atai
formタグに値を設定しようとしているのでしょうか?Value属性はありません。inputタグなどの名前を指定すべきでしょう。さらにこの式は、「.basyo」というName属性を持つタグに値を入れています。「"form1" & Cells(7, mo)」に値を入れることにはなっていません。
ということで、二重に間違っています。正しいやり方は
http://www.ken3.org/cgi-bin/group/vba_ie_form.asp
などを参考にしてください。
もし、id属性が設定されているなら、
objie.Document.GetElementByID("対象タグのID").Value = atai
で大丈夫なはずです。
この回答への補足
Dim mo As Integer
Dim atai As Integer
Dim basyo As String
For mo = 1 To 10
basyo = "form1" & Cells(7, mo)
atai = Cells(9, mo)
objie.Document.GetElementByID("basyo").Value = atai
Next
でやってみましたがエラーがでました・・
いろいろ頑張ってみます。
No.1
- 回答日時:
URLを教えていただければ試してみますがどうでしょうか。
下記ページが参考になります。
三流君VBAでIE操作 InternetExplorer.Applicationを操作する
http://www.ken3.org/cgi-bin/group/vba_ie.asp
インターネットエクスプローラ操作編
http://www.happy2-island.com/vbs/cafe02/capter00 …
7.1 IEオブジェクトを作る(IE7編)
http://www.happy2-island.com/vbs/cafe02/capter00 …
この回答への補足
サンプルページを作りました。
よろしくお願いします。
http://island.geocities.jp/kawamae1023/test.html
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) vba 「Nextに対するForが見当たりません」のエラーが発生する原因 1 2022/10/21 15:46
- Visual Basic(VBA) 初めてマクロを入力しますが、テキストとおりに入力したのに構文エラーです。修正を教えてください。 3 2022/10/28 11:18
- Visual Basic(VBA) VBA 別ブックからの転記の高速化について VBA 別ブックからの転記の高速化についてご教授下さい。 19 2022/07/26 13:07
- Visual Basic(VBA) A列B列C列 3 2023/04/26 18:11
- Excel(エクセル) VBA フォルダ見える化のコードについて 2 2023/06/19 15:04
- Visual Basic(VBA) Excelで下記のようにマクロを作ったところ、一回目は実行できたのですが、二回目以降「実行時エラー1 1 2022/03/25 08:08
- Visual Basic(VBA) VBA Userformで一部別シートに転記がしたいのですが 2 2023/05/24 13:08
- Visual Basic(VBA) VBA横データを縦にしたいです 2 2023/08/08 19:38
- Visual Basic(VBA) このマクロの説明文を教えてほしいです。 1 2023/01/12 09:17
- Visual Basic(VBA) Accessフォームで全レコードを指定のExcelのセルへ転送し印刷する方法について 2 2022/09/08 18:23
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
トミーズ雅と中川家剛
-
D(E)カップの中学生が半袖の体...
-
ロバートの秋山さんの芸が気持...
-
ぴえんこえてぱおんって急に言...
-
伊藤理佐さんの最初の旦那さんは?
-
お笑い芸人がよく言う『営業』...
-
関西と関東の笑いについて
-
彼氏が車をぶつけて修理に20万...
-
美味しそうじゃなくて美味しいの!
-
キラとシン
-
さらば青春の光という芸人さん...
-
吉本新喜劇の鼻がでかい人は今...
-
VBの基本的な質問ですが・・・
-
サンドイッチマンの番組全く面...
-
人 家 員 者 の意味用法を...
-
「びっくり!くりくりくりっく...
-
おさえておきたい芸能人、またT...
-
中川家の礼二について
-
島田紳助の政界進出!?
-
なぜエガちゃんはほされないん...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
D(E)カップの中学生が半袖の体...
-
ロバートの秋山さんの芸が気持...
-
キラとシン
-
「びっくり!くりくりくりっく...
-
へらちょんぺ
-
トミーズ雅と中川家剛
-
サンドイッチマンの番組全く面...
-
ハーバルエッセンスのCM(yes...
-
元自衛隊芸人やす子
-
お笑い芸人がよく言う『営業』...
-
彼氏が車をぶつけて修理に20万...
-
form1 hotkey closing
-
チャンネル変えるレベルの芸能人
-
伊藤理佐さんの最初の旦那さんは?
-
水星茗さんの行方は?
-
人 家 員 者 の意味用法を...
-
タレント
-
昔の吉本新喜劇で笑いながら首...
-
チョコボールのキョロちゃんの...
-
久保帯人先生がアダルトビデオ...
おすすめ情報