ここから本文です

ゆうパックマクロでクリックしたいのですが。。。

アバター

ID非公開さん

2014/1/1316:06:06

ゆうパックマクロでクリックしたいのですが。。。

https://trackings.post.japanpost.jp/services/srv/sequenceNoSearch/?...
ゆうパックのホームページの追跡スタートをマクロで指定してクリックしたいのですがうまく行きません。
.Document.forms(0)().Clickで指定してやりたいのですが、括弧の数字の考え方はどうなるんでしょうか?

補足ありがとうございます。
このページを開いた後、何も入力せず追跡スタートを押し、次のページにとび、
そこにある個別番号検索を押して初めの画面に戻りたいのですが、
指定しようにもソースにNAME項目がありません。この場合は何を指定してやればいいのでしょうか?

閲覧数:
534
回答数:
1

違反報告

ベストアンサーに選ばれた回答

blu********さん

編集あり2014/1/1417:57:21

基本的にはこんな感じです。

Sub sample()
Dim ie As Object
Set ie = CreateObject("InternetExplorer.Application")
ie.Visible = True
ie.Navigate "https://trackings.post.japanpost.jp/services/srv/search/input"
Do While ie.Busy Or (ie.ReadyState <> 4): DoEvents: Loop
ie.Document.Forms("srv_searchActionForm").all("requestNo1").Value = "123456789012" '問い合わせ番号
'ie.Document.Forms("srv_searchActionForm").all("requestNo2").Value = "123456789012" '2番目がある場合
ie.Document.Forms("srv_searchActionForm").all("search").Click
'ie.Quit
'Set ie = Nothing
End Sub




番号の場合は2番目のフォームなので、こんな感じになります。

Sub sample()
Dim ie As Object
Set ie = CreateObject("InternetExplorer.Application")
ie.Visible = True
ie.Navigate "https://trackings.post.japanpost.jp/services/srv/search/input"
Do While ie.Busy Or (ie.ReadyState <> 4): DoEvents: Loop
ie.Document.Forms(1).all("requestNo1").Value = "123456789012" '問い合わせ番号
ie.Document.Forms(1).all("search").Click
End Sub



または

Sub sample()
Dim ie As Object
Set ie = CreateObject("InternetExplorer.Application")
ie.Visible = True
ie.Navigate "https://trackings.post.japanpost.jp/services/srv/search/input"
Do While ie.Busy Or (ie.ReadyState <> 4): DoEvents: Loop
With ie.Document.Forms(1)
.all("requestNo1").Value = "123456789012"
.all("search").Click
End With
End Sub




などでできます。




[ 補足への回答 ]
回答のURLの
"https://trackings.post.japanpost.jp/services/srv/search/input"
が個別番号検索の飛び先のURLです。
質問のURLとは少し違うと思いますが直接個別番号検索に飛びました。


また、補足の様な方法での場合は、htmlソースでケースバイケースです。
更に同じhtmlでも色々な方法があります。
例えば、何も入力せず追跡スタートを押し、次のページの個別番号検索を押す場合に

<a href="/services/srv/search/input"><img src="イメージのurl" alt="個別番号検索"/></a>

と言うhtmlがあるので、このAタグに飛ぶ(押す)場合です。
alt属性が"個別番号検索"のimgタグを探して、その親のノード(Aタグ)に飛びます。

Sub sample()
Dim ie As Object
Dim elm As Object
Set ie = CreateObject("InternetExplorer.Application")
ie.Visible = True
ie.Navigate "https://trackings.post.japanpost.jp/services/srv/sequenceNoSearch/?..."
Do While ie.Busy Or (ie.ReadyState <> 4): DoEvents: Loop '表示待ち
ie.Document.All("search").Click '追跡スタートクリック
Do While ie.Busy Or (ie.ReadyState <> 4): DoEvents: Loop '表示待ち
For Each elm In ie.Document.All.Tags("img") 'imgタグを順に調べる
If elm.getAttribute("alt") = "個別番号検索" Then 'alt属性が"個別番号検索"なら
elm.ParentElement.Click 'imgの親のノード(Aタグ)をクリック
'ie.Navigate elm.ParentElement.href 'imgの親のノード(Aタグ)のhrefに飛ぶ(Clickでなくhrefに飛ぶ場合)
Do While ie.Busy Or (ie.ReadyState <> 4): DoEvents: Loop '表示待ち
Exit For 'Forを抜ける
End If
Next
If ie.Document.Title <> "個別番号検索 - 日本郵便" Then '目的のページのタイトルかチェック
MsgBox "みつかりません"
Exit Sub
End If

'ie.Quit
'Set ie = Nothing
End Sub





それと、InternetExplorer.Applicationを使う場合はバージョンで細かい所が違う場合があります。
質問時にバージョンを書いた方がいいと思います。(一番最初の回答はどのバージョンでも動くともいますが2番目のParentElementってバージョンに依存してたかもしれません)

アバター

質問した人からのコメント

2014/1/15 01:17:24

ありがとうございます

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる