フレーム内のテキストボックスに入力したい

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

最新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#5 2015年8月19日(水)11時09分
From: VBAマスター
返事 削除 変更
> 現在こちらのHPを参考にさせて頂いておりますが、特にフレームの取り扱いについて全く分かっていないようですので、何か参考資料がありましたらご照会願います。
> また、因みに有料で個別相談は可能でしょうか?

すいません、私はこのサイトの管理者ではないです(汗

ここで質問される分には、たまに回答します。
参考資料というものはないですが、このサイトを最初からマスターしていくとそこそこ構築は可能ですが、HTMLなどの付属知識は必要です。

トップページを見ると詳細の相談や開発の依頼なども請けているようなのでそちらで相談してみてはどうですか?

このページ下の「開発依頼」「お問い合わせ」ってやつです。

Message#4 2015年8月19日(水)09時30分
From: 高山修
返事 削除 変更
VBAマスターのメッセージ(#2)への返事

VBAマスターのメッセージ(#2)への返事

早速のご対応ありがとうございます。

まだ、ご回答について行けるレベルに達していないようです。
今現在何をどうしていいかもわかりません。
一から出直しをしたいと思います。
現在こちらのHPを参考にさせて頂いておりますが、特にフレームの取り扱いについて全く分かっていないようですので、何か参考資料がありましたらご照会願います。
また、因みに有料で個別相談は可能でしょうか?





> > '得意先コードのテキストエリアに値を入力
> > 'Call frameFormText (objIE, "lcSrcTokuisakiCode", "1234567") ← ここで入力できない
>
> frameFormTextプロシージャの中のどの部分でエラーになっているか確認しましたか?
> もしくはどのように処理されていったかの確認です。
> フレーム処理をしていますが、そもそも該当するフレームが読まれているか確認してみてはどうでしょう。
>
> それとこちらはinputタグが対象のプロシージャになっていますが、lcSrcTokuisakiCodeはinputタグのものですか?

Message#3 2015年8月19日(水)09時28分
From: 高山修
返事 削除 変更
VBAマスターのメッセージ(#2)への返事

> > '得意先コードのテキストエリアに値を入力
> > 'Call frameFormText (objIE, "lcSrcTokuisakiCode", "1234567") ← ここで入力できない
>
> frameFormTextプロシージャの中のどの部分でエラーになっているか確認しましたか?
> もしくはどのように処理されていったかの確認です。
> フレーム処理をしていますが、そもそも該当するフレームが読まれているか確認してみてはどうでしょう。
>
> それとこちらはinputタグが対象のプロシージャになっていますが、lcSrcTokuisakiCodeはinputタグのものですか?

Message#2 2015年8月18日(火)18時46分
From: VBAマスター
返事 削除 変更
> '得意先コードのテキストエリアに値を入力
> 'Call frameFormText (objIE, "lcSrcTokuisakiCode", "1234567") ← ここで入力できない

frameFormTextプロシージャの中のどの部分でエラーになっているか確認しましたか?
もしくはどのように処理されていったかの確認です。
フレーム処理をしていますが、そもそも該当するフレームが読まれているか確認してみてはどうでしょう。

それとこちらはinputタグが対象のプロシージャになっていますが、lcSrcTokuisakiCodeはinputタグのものですか?

Message#1 2015年8月17日(月)14時48分
From: 高山修
返事 削除 変更
最近、エクセルVBAによるIE操作を始めたばかりの超初心者です。
現在、貴HPを参考にしてデータをダウンローするためのマクロを作成しておりますが
テキストデータを入力するところで躓いてしまいました。
ご指導よろしくお願い致します。

<操作内容>
1. IEをVBAで開く
2. 指定したURLで再度ページを表示する
3. ID,PWを入力する
4. ログインボタンをクリックする
5. 照会・ダウンロードのタグ(MainleftMenu)をframeTagClickでクリックする
6. 得意先コードにコードを入力する(frameFormText) ← ここで操作できない


<table class="tblSrc">
<tr>
<td class="tdlcItemRight">
得意先コード
</TD>
<td class="tdlcItemLeft">
<input type="text" name="lcSrcTokuisakiCode" size="22" maxlength="7" value="" class="lcSrcTokuisakiCode"><!--
--></td>
<td class="tdlcItemRight">
得意先名
</td>
<td class="tdlcItemLeft">
<input type="text" name="lcSrcTokuisakiNamk" size="32" maxlength="40" value="" class="lcSrcTokuisakiNamk"><!--
--></td>
<td class="tdlcbtnsearch">
<INPUT type="image" name="btn030020_search" border="0" src="images/btn/btn_search.gif" alt="検索" onClick='fnc_vmJumpFindKaisha()'><!--
--></td>
</tr>
<tr>
<td rowspan="5" class="tdlcPadding">
</td>
</tr>
</table>


Sub IE_open()


'IE起動
Set objIE = CreateObject("InternetExplorer.application")

With objIE

'見えるようにする(お約束)
.Visible = True

'文字列で指定したURLに飛ぶ
.Navigate "https://www. "


'表示終了まで待つ
While .Busy Or .ReadyState <> READYSTATE_COMPLETE
DoEvents
Wend

'項目名を指定して、データをセットする
.Document.all.kaiinuserId.Value = "ユーザー名"
.Document.all.pswdTxtc.Value = "パスワード"

'ログインボタンを押す
.Document.all.btnP010020_logonImgtop.Click

'表示終了まで待つ
While .Busy Or .ReadyState <> READYSTATE_COMPLETE
DoEvents
Wend

'2秒停止
Call WaitFor(2)

'ボタンをクリック
Call frameTagClick(objIE, "IMG", "imgM2104")

'表示終了まで待つ
While .Busy Or .ReadyState <> READYSTATE_COMPLETE
DoEvents
Wend

'得意先コードのテキストエリアに値を入力
'Call frameFormText (objIE, "lcSrcTokuisakiCode", "1234567") ← ここで入力できない

End With

End Sub

Sub frameFormText(objIE As InternetExplorer, _
nameValue As String, _
tagValue As String)

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

 For i = 0 To objFrame.Length - 1
  'フレームドキュメントのオブジェクトを取得する
  Set objFrameDoc = objFrame(i).document

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

   If objTag.name = nameValue Then
    objTag.Value = tagValue
    GoTo label01
   End If

  Next

  'フレームテキストエリアに値を入力
  For Each objTag In objFrameDoc.getElementsByTagName("text") ← 変更

   If objTag.name = nameValue Then
    objTag.Value = tagValue
    GoTo label01
   End If

  Next

 Next

label01:

End Sub

最新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