私は「緑のパスワードがなくnanacoをお持ちの方」です。
カード記載の番号にはvbaで値を入れることはできるのですが、
nanaco番号に値を入れることとログインボタンを押すことができません。
**********************************************
Sub nanaco()
Dim objIE As InternetExplorer
Dim myObj As Object
Set objIE = CreateObject("InternetExplorer.Application")
objIE.Visible = True
objIE.navigate "https://www.nanaco-net.jp/pc/emServlet"
Do While objIE.Busy = True
DoEvents
Loop
Do While objIE.document.readyState <> "complete"
DoEvents
Loop
objIE.document.all("XCID").Value = "12345"
objIE.document.all("SECURITY_CD").Value = "Password"
For Each myObj In objIE.document.forms(0).all
If TypeName(myObj) = "HTMLInputElement" Then
If myObj.alt = "ログイン" Then
myObj.Click
Exit For
End If
End If
Next
Set objIE = Nothing
End Sub
**********************************************
これだとまずall("XCID").Value でエラーになります。
ソースでは、
<input name="XCID" tabIndex="1" class="txtBoxLogin" accessKey="1" type="text" maxLength="16" value=""/>
となっておりますが、同じコードが二つあるからエラーになるのでしょうか?
all("SECURITY_CD").Value
は問題なくできます。
ソースにも、SECURITY_CDは一つしかないです。
次にログインボタンも二つあるのですが、
For Each myObj In objIE.document.forms(0).all
If TypeName(myObj) = "HTMLInputElement" Then
If myObj.alt = "ログイン" Then
myObj.Click
Exit For
End If
End If
Next
このコードを実行すると、多分上の方のログインボタンが押されてるようです。
なので、
Dim 二つ目 As Boolean
For Each myObj In objIE.document.forms(0).all
If TypeName(myObj) = "HTMLInputElement" Then
If myObj.alt = "ログイン" Then
If 二つ目 = True Then
myObj.Click
Exit For
End If
二つ目 = True
End If
End If
Next
に変更してみたのですが、
どうやら
If myObj.alt = "ログイン" Then
になるのは、1回しかないようです。
うーん、うまくできません。
ご教授よろしくお願いします。
No.1ベストアンサー
- 回答日時:
rvnaclnvlhmrさん
こんにちは。
nameは普通ユニークだと思ったのですが同じ名前を2つ使っているのですね。
それでもnameで定義されているので簡単に対処できます。
objIE.document.all("XCID").Value = "12345"
objIE.document.all("SECURITY_CD").Value = "Password"
For Each myObj In objIE.document.forms(0).all
:
Next
↓↓↓↓↓↓
objIE.document.all.XCID(1).Value = "12345"
objIE.document.all.SECURITY_CD.Value = "Password"
objIE.document.all.ACT_ACBS_do_LOGIN2.Click
※objIE.document.all.XCID(0).Value … 1つ目のanaco番号入力エリアです。
注)objIE.document.all("XCID")(1).Value = "12345"
でもOKですが、上記の方がちょっとはスッキリしている?と思います。
お試し下さい。
With objIE.document.all
.XCID(1).Value = 会員番号
.SECURITY_CD.Value = Password
.ACT_ACBS_do_LOGIN2.Click
End With
にしたらうまくできました!
nameが二つある場合は、インデックスをつければいいのですね。
ACT_ACBS_do_LOGIN2についてもソースをよく見てみたらありました。
実は私、以前にもjcctairaさまにvbaの事でご回答いただきました。
以前のIDはパスワードがわからなくなりログインできなくなってしまったので、違うIDを使って質問しました。
でも色々試してみたら以前のIDのパスワードがわかったので、
jcctairaさまに過去にご回答いただいた分もやっとお礼できました!
(ZXEARIZUCC7です。遅くなってすいません)
何度もご回答いただけて助かります!
画像のねこちゃん可愛いです!
ありがとうございました!!!
No.2
- 回答日時:
# 上手く行ったなら解決済みにされた方がいいのではと。
objIE.document.forms(1).Item("XCID").Value = "12345"
objIE.document.forms(1).Item("SECURITY_CD").Value = "Password"
objIE.document.forms(1).all("ACT_ACBS_do_LOGIN2").Click
とも書けますね。
---
> nameは普通ユニーク
Idの方はUI Automationの AutomationId として検索としても使われるのでユニークなのですが、nameはForm毎に同名なのは結構ある様です。
(Twitterのログインページも同じ類)
閉め忘れてました
大変失礼しました
一つのページ内で
Nameは複数使われることがあるのですね。
勉強になりました。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) VBAについて 3 2022/06/19 18:19
- Visual Basic(VBA) InputBoxでキャンセルボタンを押したらファイル自体を閉じたい 3 2022/07/23 17:52
- Visual Basic(VBA) VBA Userformで一部別シートに転記がしたいのですが 2 2023/05/24 13:08
- Excel(エクセル) なぜExit Subがあるのかわかりません 4 2023/02/19 12:34
- Visual Basic(VBA) Excel VBAの解読について質問があります。 概要は、マクロでチェックボックスにチェックすると日 1 2023/02/10 07:50
- Visual Basic(VBA) 動きっぱなしです。止め方とプロシージャの間違いを教えて下さい! 5 2022/08/15 23:08
- Excel(エクセル) VBAの指示の内容 昨日こちらでご教示頂いたのですが初心者な為、一つ一つの指示が何をやっているのかわ 2 2022/10/25 18:08
- Excel(エクセル) B列に文字がはいったらA列に数字が入るマクロードを完成させたい 4 2023/04/21 01:58
- Excel(エクセル) vba 「Nextに対するForが見当たりません」のエラーが発生する原因 1 2022/10/21 15:46
- Visual Basic(VBA) VBAの繰り返し処理について教えてください。 3 2022/08/02 13:21
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
JavaScript window.openで開く...
-
showModalDialogで開いた画面を...
-
javascriptの基本的なことだと...
-
DOM要素を削除しても、イベント...
-
window.onloadを複数実行したい...
-
Latexに関する質問です。
-
excle VBA とweb上の検索を利用...
-
iframeのソースを取得したい
-
javascriptのdocument.allにつ...
-
ie操作 フレームのURLが...
-
Null またはオブジェクトではあ...
-
google マップ サイズ変更
-
オンマウスについて
-
ドロップダウンメニューを短縮...
-
このjavascriptのif文、条件式...
-
IEのイベントでのウインドウ...
-
Boolean型配列中のTrueの有無を...
-
ActiveXobjectが作成できない
-
C#テキストボックスの文字を配...
-
<a>タグのテキストを取得
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
codejump 模写コーディングgall...
-
このjavascriptのif文、条件式...
-
文字を一文字ずつ表示
-
DOM要素を削除しても、イベント...
-
FireFoxのjavascriptで自動でキ...
-
Javascriptのhtml出力についてa...
-
excle VBA とweb上の検索を利用...
-
Null またはオブジェクトではあ...
-
webページ上のTabキーの動き
-
XMLでのAttributeを持ったNode...
-
JavaScript window.openで開く...
-
ブラウザのウィンドウサイズに...
-
javascriptのdocument.allにつ...
-
javascriptの基本的なことだと...
-
responseTextについて
-
showModalDialogで開いた画面を...
-
iframeのソースを取得したい
-
removeEventListenerの必要性
-
クリッカブルマップのリンク部...
-
ラジオボタンをクリックしたい
おすすめ情報