
私は「緑のパスワードがなく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でPOSTで自ウィンド...
-
乗換案内 VBAで操作したい
-
head内から外部jsにするとスク...
-
cookieの操作について
-
setTimeoutで引数を渡したいの...
-
[JS] eventListener
-
特定ページから遷移した時にア...
-
マウスオンで説明文をページの...
-
連動するセレクトボックスの内...
-
VBの記述方法はVBAと同じなので...
-
HPで...。
-
vbaでnanacoにログイン(ie操作)
-
jQueryで右クリック禁止後に再...
-
一つ少ないmyFORM.length
-
ie=!!document.all
-
ブログ
-
getElementByIdでonClick内を書...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
JavaScript window.openで開く...
-
乗換案内 VBAで操作したい
-
onClickイベントの変更方法
-
TexでΣの添え字の位置直し
-
javascriptの基本的なことだと...
-
Latexに関する質問です。
-
サブウィンドウに背景色をつけ...
-
XMLでのAttributeを持ったNode...
-
excle VBA とweb上の検索を利用...
-
javascriptのdocument.allにつ...
-
スマホでフォームにフォーカス...
-
Null またはオブジェクトではあ...
-
ラジオボタンでreadonlyの切替え
-
文字がマウスカーソルを追従す...
-
LaTeX:数式を等号揃えにする方法
-
選択によってsubmitボタンの色...
-
UWSCでオンクリックのボタンを...
-
VBAのIE操作でframe構造のサイ...
-
DOM要素を削除しても、イベント...
-
webページ上のTabキーの動き
おすすめ情報