VBAでieを操作してフォームにIDとパスワードに自動入力するには?

最近の書き込み件数: 今日 0件、昨日 0件
未読分:2件

最新20件 最新50件 最新100件 最新200件 200件以前
昨日以降(0) 2日前以降(0) 3日前以降(0) 4日前以降(0) 5日前以降(0)


Excel VBAでIEを思いのままに操作できるプログラミング術 Excel 2013/2010/2007/2003対応

近田 伸矢, 植木 悠二, 上田 寛

IEのデータ収集&自動操作のプログラミング本はこの1冊だけ!IEの起動やポップアップウィンドウ、表示を制御する基本的なコードはもちろん、テキストボックスやラジオボタン、表、ハイパーリンクなどのHTML部品を制御する方法など、自動操作に欠かせないノウハウを丁寧に解説。

Message#2 2014年10月13日(月)22時38分
From: 管理人
返事 削除 変更
こちらのサイト確認するとframeが使われていますね。
下記がhtmlソース内容です。

<html>
<head>
<meta http-equiv="Content-Style-Type" content="text/css">
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7;EmulateIE8;EmulateIE9" />
<link rel="stylesheet" href="css/style.css" type="text/css">
<title>みまもりくんオンラインサービス ログイン</title>
</head>
<frameset cols="0,*" border="0" framespacing="0" bordercolor="white"
frameborder="0">

<frame src="/m/GA1801HiddenFrame.do" name="hiddenFrame" noresize="noresize">



<frame src="/m/GA1801LoginService.do" name="contents">

<noframes>
このページを表示するには、フレームをサポートしているブラウザが必要です。
</noframes>
</frameset>
<frameset>
<noframes>
このページを表示するには、フレームをサポートしているブラウザが必要です。
</noframes>
</frameset>
</html>

こちらの<frame src="/m/GA1801LoginService.do" name="contents">にフォームが格納されています。
ちなみにこちらのhtmlソースを見ると以下のようななります。


<html><head>
<title>みまもりくんオンラインサービス ログイン</title>
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
<meta http-equiv="Content-Style-Type" content="text/css">
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7;EmulateIE8;EmulateIE9">
<link rel="stylesheet" href="css/style.css" type="text/css">
<script src="/m/js/18login.js"></script>
</head>
<body class="menuBody" onload="JavaScript:clientinfo();">
<table width="770" height="100%" border="0" cellpadding="0" cellspacing="0">
<tbody><tr>
<td width="154" valign="top" align="center" class="me01">
<img src="/m/images/spacer.gif" height="18" width="154" border="0">
<a href="https://www.mytruck.jp/mimamori/products/mimamori_online/index.html" target="_blank" title="みまもりくんオンラインサービス"><img src="/m/images/logo_s.gif" height="80" width="150" border="0"></a></td>
<td width="16" valign="top" class="me01"><img src="/m/images/spacer.gif" height="1" width="16" border="0"></td>
<td valign="top">
<table width="600" border="0" cellpadding="0" cellspacing="10">
<tbody><tr>
<td width="580" valign="top">
<table width="100%" border="0" cellpadding="0" cellspacing="0">
<tbody><tr>
<td valign="top">

<table width="580" border="0" cellpadding="0" cellspacing="0">
<tbody><tr>
<td height="15" align="right"><a href="http://www.isuzu.co.jp" target="_blank"><img src="/m/images/isuzu.gif" height="13" width="67" border="0" alt="いすゞ自動車株式会社"></a></td>
</tr>
<tr>
<td height="33">
<img src="/m/titlebar/title_login.gif" height="33" width="580" border="0" alt="ログイン">
</td>
</tr>
</tbody></table>

</td>
</tr>
<tr>
<td height="447" valign="top" align="center">

<table width="560" border="0" cellpadding="0" cellspacing="0">
<form name="loginForm" method="POST" action="/m/loginCheck.do" onsubmit="return loginSubmit();"></form>
<tbody><tr>
<td height="45">
<span class="titlem2">ようこそ みまもりくんオンラインサービスへ。</span>
</td>
</tr>
<tr>
<td height="40" valign="top">
<p class="main">本サービスをご利用頂くには「
<a href="https://www.mytruck.jp/mimamori/products/mimamori_online/index.html" target="_blank" title="みまもりくんオンラインサービス"><span class="link">みまもりくんオンラインサービス</span></a>」のご契約が必要です。</p>
</td>
</tr>
<tr>
<td height="50" valign="top">
<img src="/m/images/mlist0.gif" height="7" width="10" border="0"><a href="https://www.mytruck.jp/mimamori/products/mimamori_online/index.html" target="_blank" title="みまもりくんオンラインサービス"><span class="link">「みまもりくんオンラインサービス」についてはこちらを参照ください</span></a>
</td>
</tr>

<tr>
<td valign="top" align="center">
<table width="100%" border="0" cellpadding="4" cellspacing="3">
<tbody><tr>
<td width="20%" height="35" align="center" class="ko_midasi" nowrap="">
ユーザーID
</td>
<td width="20%" align="center" class="me01" nowrap="">
<input type="text" name="loginID" maxlength="10" size="18" value="" style="ime-mode:disabled">
</td>
<td bgcolor="#e9e9e9" nowrap="">
<span class="mains">半角英数字<br>アルファベットは大文字で入力して下さい。</span>
</td>
</tr>
<tr>
<td height="35" align="center" class="ko_midasi" nowrap="">
パスワード
</td>
<td align="center" class="me01" nowrap="">
<input type="password" name="password" size="18" maxlength="12" value="">
</td>
<td bgcolor="#e9e9e9" nowrap="">
<span class="mains">半角英数字<br>アルファベットは大文字・小文字が区別されますのでご注意下さい。</span>
</td>
</tr>
</tbody></table>
</td>
</tr>
<tr class="buttonAndTable2"><td> </td></tr>
<tr>
<td align="center"><input type="image" name="" src="/m/images/login.gif" alt="ログイン"></td>
</tr>
<tr>
<td height="30" class="dummy"> </td>
</tr>
<tr>
<td valign="top">
<span class="grays"><ご注意事項><br>第三者にパスワードを知られた場合、悪用される可能性もありますので、パスワードはお客様の責任のもと大切に保管し、また定期的に変更することをお勧めします。
</span>
<br><br>
<img src="/m/images/mlist0.gif" height="7" width="10" border="0">
<a href="https://www.mytruck.jp/mimamori/FAQ/login/faq_login01.html" target="_blank" title="FAQ(ユーザーID)"><span class="links">ユーザーIDやパスワードをお忘れになった方はこちらを参照ください。</span></a>
</td>
</tr>

</tbody></table>



</td>
</tr>
</tbody></table>
</td>
</tr>
<tr>
<td>
<table width="580" border="0" cellpadding="0" cellspacing="0">
<tbody><tr>
<td colspan="2" bgcolor="#cccccc"><img src="/m/images/dot.gif" height="2" width="1" border="0"></td>
</tr>
<tr>
<td colspan="2" bgcolor="#000033"><img src="/m/images/dot.gif" height="1" width="1" border="0"></td>
</tr>
<tr valign="top">
<td>
<img src="/m/images/copyright.gif" border="0" vspace="6" alt="Copyright(C) ISUZU MOTORS LIMITED">
</td>
<td align="right"><a href="https://www.mytruck.jp/mimamori/security/security.html" target="_blank" title="セキュリティポリシー"><img src="/m/images/btn_sec.gif" height="10" width="117" border="0" vspace="4" alt="セキュリティポリシー"></a>
</td>

</tr>
</tbody></table>


</td>
</tr>
</tbody></table>
</td>
</tr>
</tbody></table>



</body></html>


ですので、まずはframeのhtmlを取得してからフォームの値入力+クリック処理をしていきます。

下記を参考に確認してください。

一応、こちらで確認したところログインはできませんでしたが、それぞれ処理がうまくいっているかと思います。

Sub sample()

Dim objIE As InternetExplorer
Dim objTag As Object

'IEでfacebook画面を起動
Call ieView(objIE, "https://www.mytruck.jp/m/GA1801.do")


'フレームのオブジェクトを取得する
Set objFrame = objIE.document.frames(1).document

'フレーム内のテキストボックス・パスワードボックスに値を入力
For Each objTag In objFrame.getElementsByTagName("input")

If objTag.name = "loginID" Then
objTag.value = "★ユーザーID★"
End If

If objTag.name = "password" Then
objTag.value = "★パスワード★"
End If

If InStr(objTag.outerHTML, "ログイン") > 0 Then
objTag.Click
Call ieCheck(objIE)
End If


Next

End Sub


Sub ieView(objIE As InternetExplorer, _
      urlName As String, _
Optional viewFlg As Boolean = True, _
      Optional ieTop As Integer = 0, _
Optional ieLeft As Integer = 0, _
Optional ieWidth As Integer = 600, _
Optional ieHeight As Integer = 800)

 'IEのオブジェクトを作成する
 Set objIE = CreateObject("InternetExplorer.Application")

'IEを表示・非表示
objIE.Visible = viewFlg

 objIE.Top = ieTop 'Y位置
 objIE.Left = ieLeft 'X位置
 objIE.Width = ieWidth '幅
 objIE.Height = ieHeight '高さ

'指定したURLのページを表示する
 objIE.Navigate urlName

'IEが完全表示されるまで待機
Call ieCheck(objIE)

End Sub

Sub ieCheck(objIE As InternetExplorer)

 Dim timeOut As Date

 timeOut = Now + TimeSerial(0, 0, 10)

 Do While objIE.Busy = True Or objIE.ReadyState <> 4
  DoEvents
  Sleep 100
  If Now > timeOut Then
   objIE.Refresh
   timeOut = Now + TimeSerial(0, 0, 10)
  End If
 Loop

 timeOut = Now + TimeSerial(0, 0, 10)

 Do Until objIE.document.ReadyState = "complete"
  DoEvents
  Sleep 100
  If Now > timeOut Then
   objIE.Refresh
   timeOut = Now + TimeSerial(0, 0, 10)
  End If
 Loop

End Sub

Message#1 2014年10月13日(月)05時15分
From: みまもりくん
返事 削除 変更
VBAでieを操作してフォームにIDとパスワードを入力してログインしたいのですが、サイトを表示させるところまでは行くのですが入力することができません。
サイト名は

”みまもりくん オンラインサービス”
https://www.mytruck.jp/m/GA1801.do

いろんなサイトを参考にいろいろやってみましたがフォームに入力することもできませんでした。

"getElementByid" "getElementByname" "getElementBytag"などいろいろ試しましたがすべてエラーでした。

ログインのソースは

<input type="text" name="loginID" maxlength="10" size="18" value="" style="ime-mode:disabled">


<input type="password" name="password" size="18" maxlength="12" value="">

この辺かと思われるのですがもう手が出ません。

どなたかアドバイスいただけると助かります。
よろしくお願いします。

初心者なので伝わりづらかったらすみません。

最新20件 最新50件 最新100件 最新200件 200件以前
昨日以降 2日前以降 3日前以降 4日前以降 5日前以降

VBAのIE制御についてのQ&A掲示板

↑エクセルVBAのIE(InternetExplorer)操作で分からない事があればこちらの掲示板よりご質問ください^^

ExcelのVBA初心者入門

↑こちらはExcelのVBAをマスターできるよう初心者向けのエクセルVBA入門コンテンツになります^^

VBAのIE制御入門RSS

RSSフィードを登録すると最新記事を受け取ることができます。

VBAIE操作のスカイプレッスン

VBAでIE(InternetExplorer)制御の準備

エクセルVBAでIE制御の応用編

こちらでは、エクセルVBAで実際に作成したIE(InternetExplorer)制御ツールをまとめています。自動ログインや情報収集など具体的に解説しています。IE(InternetExplorer)制御をされる方は参考にしてください。

【ダウンロード】IE操作に便利なツール

こちらでは、これまでに紹介したIE(InternetExplorer)操作で便利な機能をツール化しています。無償でダウンロードできますので、目的に合わせたご利用ください。

IEオブジェクトのメソッド・プロパティ

こちらでは、IE(InternetExplorer)オブジェクトのメソッド・プロパティをまとめています。

IE操作に利用されているVBA関数

こちらでは、エクセルVBAのIE(InternetExplorer)操作で利用されたVBA関数をまとめています。

IE操作に利用されているステートメント

こちらでは、エクセルVBAのIE(InternetExplorer)操作で利用されたステートメントをまとめています。ExcelのVBAで基本的な部分になりますので、しっかり理解しましょう。

IE(InternetExplorer)制御のVBAコード

こちらでは、これまでに作成したIE(InternetExplorer)操作で役立つサブルーチンをまとめています。
全てをコピーする必要はありませんが、目的に合わせたサブルーチンをご利用ください。

ExcelのVBAで作成した役立つVBAコード

こちらでは、IE(InternetExplorer)制御の利用だけでなく、Excel全般で利用できるVBAコードです。エクセルVBAで役に立つものばかりですので、ご利用ください。

dmb.cgi Ver. 1.068
Copyright(C) 1997-2014, hidekik.com