既存IEのテキストボックスにEXCELの値を貼り付ける動作が不安定

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

最新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#3 2015年4月16日(木)17時58分
From: 鈴木
返事 変更
VBAマスターのメッセージ(#2)への返事
ありがとうございました。
今日、実際の作業がこれで実現できました。
随分遠回りをしていたと思いました。VBA初心者なので・・・

> やりたいことって検索ボックスにダブルクリックした値をセットしたいということですか?
> わざわざクリップボード経由で入力する必要はないと思いますが。
>
> とりあえずクリップボードなしでもOKの場合は以下でもいけるかと思います。
>
>
> Public objIE As InternetExplorer
>
> 'ダブルクリックでスタートする
> Private Sub Worksheet_BeforeDoubleClick(ByVal Target As range, Cancel As Boolean)
> Dim objInpTxt As HTMLInputTextElement
> Dim objSh As Object
> Dim objWin As Object
>
>
> Cancel = True
>
> Set objSh = CreateObject("Shell.Application")
>
> For Each objWin In objSh.Windows
> If TypeName(objWin.document) = "HTMLDocument" Then
> Set objIE = objWin
> Set objSh = Nothing
> Exit For
> End If
> Next
>
>
> Set objInpTxt = objIE.document.getElementsByName("q")(0)
>
> objInpTxt.value = Target.value
>
> End Sub

Message#2 2015年4月15日(水)14時53分
From: VBAマスター
返事 変更
やりたいことって検索ボックスにダブルクリックした値をセットしたいということですか?
わざわざクリップボード経由で入力する必要はないと思いますが。

とりあえずクリップボードなしでもOKの場合は以下でもいけるかと思います。


Public objIE As InternetExplorer

'ダブルクリックでスタートする
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As range, Cancel As Boolean)
Dim objInpTxt As HTMLInputTextElement
Dim objSh As Object
Dim objWin As Object


Cancel = True

Set objSh = CreateObject("Shell.Application")

For Each objWin In objSh.Windows
If TypeName(objWin.document) = "HTMLDocument" Then
Set objIE = objWin
Set objSh = Nothing
Exit For
End If
Next


Set objInpTxt = objIE.document.getElementsByName("q")(0)

objInpTxt.value = Target.value

End Sub

Message#1 2015年4月15日(水)13時39分
From: 鈴木
返事 変更
Excelのテキストをクリップボードに送信し、既に開いているIEのテキストボックスに貼り付けようとしています。

テスト用にhttps://www.google.co.jp/?gws_rd=sslを開いて下記を実行すると
→部分で中断する場合と貼り付けまでできる場合があります。
但し、現在は手動で、IEを最上画面にし貼り付け許可をクリックしています。

NGの場合は mystr=””になります。
何か対処方法はありますか?

Public objIE As InternetExplorer
#If VBA7 Then
Private Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal ms As LongPtr)
#Else
Private Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal ms As Long)
#End If

'ダブルクリックでスタートする
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim objInpTxt As HTMLInputTextElement
Dim mystr As String
Dim objSh As Object
Dim objWin As Object
Dim winex As Boolean
Dim cURL As String

Call CBSetText(Target.Value)
Cancel = True
winex = False
Set objSh = CreateObject("Shell.Application")
For Each objWin In objSh.Windows
If TypeName(objWin.document) = "HTMLDocument" Then
winex = True
Set objIE = objWin
cURL = objIE.document.URL
End If
Next
Set objSh = Nothing
objIE.navigate ("about:blank")
→ mystr = objIE.document.parentWindow.clipboardData.GetData("text")
objIE.navigate cURL
Call IEWait(objIE)
Set objInpTxt = objIE.document.getElementsByName("q")(0)
objInpTxt.Value = mystr
End Sub
Function IEWait(ByRef objIE As Object)
Do While objIE.Busy = True Or objIE.readyState <> 4
DoEvents
Loop
End Function
'クリップボードにコピーする
Sub CBSetText(strValue As String)
With New MSForms.DataObject
.SetText strValue
.PutInClipboard
End With
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