作りたいプログラムはpartsno_01から、partsno_20までのテキストボックスに、エクセルのセルA1から、A20までにある製品番号を入力し、データをsubmitするものです。
Sub pn()
Dim ObjIE As Object
Dim ObjShell As Object
Dim ObjWindow As Object
Dim WinExist As Boolean
WinExist = False
Set ObjShell = CreateObject("Shell.Application")
For Each ObjWindow In ObjShell.Windows
If TypeName(ObjWindow.document) = "HTMLDocument" Then
WinExist = True
Set ObjIE = ObjWindow
End If
Next
Set ObjShell = Nothing
If Not WinExist = True Then
MsgBox "製品番号検索を開いてください。"
Exit Sub
End If
ObjIE.Visible = True
Do While i < 21
i = 1
Set elements = ObjIE.document.getElementsByName("partsno_0" & "i")
If elements Is Nothing Then
Exit Sub
End If
elements.Item(0).Value = Worksheets(1).Cells(i, 1).Value
i = i + 1
Loop
End Sub
で、
elements.Item(0).Value = Worksheets(1).Cells(1, 1).Value
が常にエラーになります。
間違っていはいないと思うんですが・・・・。
何がいけないのでしょうか。
No.1ベストアンサー
- 回答日時:
「製品番号検索」という ページ の詳細な構成が判りませんが、「ん?」と思う点を列挙いたします。
1)getElementsByName("partsno_0" & "i")
は
getElementsByName("partsno_0" & i)
ではありませんか?
2)If Not WinExist = True Then
とのことですが、「製品番号検索」という ページ 以外の WEBページ が開いている場合も、
WinExist = True
になりませんかねぇ?
3)i = i + 1
しながら、「Do ~ Loop」で回すのでしたら、
i = 1
は「Do」より前ですね。
4)「i」が2桁になった場合に「partsno_20」ではなくて、「partsno_020」というような文字列になってしまいますので、(1)で訂正した
("partsno_0" & i)
の部分は、
("partsno_" & Format(i, "00"))
とすべきです。
ご返答ありがとうございます。
1)気づきませんでした。その通りですね。
2)その通りです。ただ、普段はfirefoxを使用するので、予測される問題はおきません。
3)その通りですね。すみません素人で・・・。
4)なるほど、formatって、そういう使い方もできるんですね。
以下のように書き換えましたが、まだ
elements.Item(0).Value = Worksheets(1).Cells(i, 1).Value
で、止まります・・・・。
i = 1
Do While i < 21
Set elements = ObjIE.document.getElementsByName("partsno_" & Format(i, "00"))
If elements Is Nothing Then
Exit Sub
End If
elements.Item(0).Value = Worksheets(1).Cells(i, 1).Value
i = i + 1
Loop
elements.Item(0).form.submit
End Sub
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) VBAについて 3 2022/06/19 18:19
- Visual Basic(VBA) VBAコードが作動せず、どこに問題があるのか教えて下さい。 3 2023/06/13 13:20
- Visual Basic(VBA) VBA Userformで一部別シートに転記がしたいのですが 2 2023/05/24 13:08
- Visual Basic(VBA) オブジェクトが見つかりません 1 2023/06/24 19:43
- Excel(エクセル) なぜExit Subがあるのかわかりません 4 2023/02/19 12:34
- Excel(エクセル) VBAの指示の内容 昨日こちらでご教示頂いたのですが初心者な為、一つ一つの指示が何をやっているのかわ 2 2022/10/25 18:08
- Visual Basic(VBA) VBA 別ブックからの転記の高速化について VBA 別ブックからの転記の高速化についてご教授下さい。 19 2022/07/26 13:07
- Visual Basic(VBA) vba 重複データ合算 5 2023/07/05 18:55
- Visual Basic(VBA) VBA処理追加 こちらでご教示頂いたのですが回答完了させてしまいましたのでこちらからまた質問させてく 2 2022/10/27 09:57
- Visual Basic(VBA) いつもお世話になっております、VBAで教えて頂きたいのですが 2 2022/05/05 22:20
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
メルカリやラクマができず 体調...
-
固定電話着信履歴 181 ・・・・...
-
携帯番号変える時は、それなり...
-
学籍番号の下一桁
-
81・・・・・から始まる電話...
-
電話番号 +817673467911という...
-
体育の時の4列横隊ってどーやっ...
-
至急お願いいたします! ゆう...
-
電話をかけるのに、違う番号を...
-
すべて「ひとつ・・・」ではじ...
-
FAX番号の英語表記とは?
-
メルカリをやるために番号変え...
-
1から5までの番号が1つずつ書か...
-
P/Nとは?
-
前の使ってた番号から着信!!
-
同じ商品なのに、JANコード...
-
国際電話番号の前の+(プラス...
-
海外から日本へ番号非通知でケ...
-
MS Wordで図表番号を1から振り...
-
フリーダイヤルのけた数
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
おすすめ情報