ファイル選択ダイアログが開かない

最近の書き込み件数: 今日 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 2017年9月19日(火)15時38分
From: 初心者
返事 変更
ジャッカルさん
objIE.document.parentWindow.execScript "window.setTimeout(""document.getElementsByName('csv')(0).Click();"",10);"
のClickを小文字のclickに変更することで解決しました。
この部分はjavaScriptの記述になるとのことで、小文字にしないと動作しないとの
指摘を別のサイトで教えてもらい、うまくいきました。


ジャッカルのメッセージ(#2)への返事

> 確か前にも同じような質問があって、VBSか何かで対応したといった内容があったけど、
> どこの質問だったか分からなかった。
>
> たぶん結構前だったから過去の方からチェックすると見つかるかも。
>
> > EXCEL VBAでホームページ(IE)にファイルをアップさせる記述を書いています。
> > ファイル選択のダイアログのところに直接フルパスでアップするファイル名を入力させたいと考えたいます。
> > objIE.document.getElementsByName("csv")(0).Click
> > でクリックできファイル選択ダイアログボックスが開くのですが、その後にVBAに制御が戻って来ないため、色々調べていたところ「VBA IE制御でファイル選択ダイアログにファイルパス入力(62945)」を見つけ、window.setTimeoutを使いVBAに戻ったところで、SendKeys "^v", Trueを実行すればできると分かり、下記のように記述しましたが、かんじんのファイル選択ダイアログボックスが開きません。
> > window.setTimeoutを使う前のobjIE.document.getElementsByName("csv")(0).Click
> > では確実にファイル選択ダイアログボックスが開いたので、記述がどこか間違えているのでしょうか?
> > 他にダイアログのウィンドウハンドルをFindWindowで取得し、SendMessageでメッセージを送信する方法も見つけたのですが、ダイアログ表示させた後はそもそもVBAに制御が戻って来ないので使えるのか分からず試していません。
> > window.setTimeoutを使う場合の方法を教えていただきたく、よろしくお願いします。
> >
> > <関連場所のスクリプト記述>
> > objIE.document.parentWindow.execScript "window.setTimeout(""document.getElementsByName('csv')(0).Click();"",10);"
> > '1秒待機
> > Sleep (1000)
> >
> > <試した記述と結果>
> > 記述を変えてファイル選択ダイアログボックスが開くかどうか試した結果は下記です。
> > 解決のヒントになりませんでしょうか?
> > @objIE.document.getElementsByName("csv")(0).Click ・・・・ 正常に開いた
> > AobjIE.document.parentWindow.execScript "window.setTimeout(""document.getElementsByName('csv')(0).Click();"",10);" ・・・ 開かない
> > BobjIE.document.forms("form1").csv.Click ・・・・ 正常に開いた
> > CobjIE.document.parentWindow.execScript "window.setTimeout(""document.forms('form1').csv.Click();"",10);" ・・・・ 開かない
> > DobjIE.document.getElementsByTagName("csv")(0).Click ・・・・ 実行時エラー91
> > EobjIE.document.parentWindow.execScript "window.setTimeout(""document.getElementsByTagName('csv')(0).Click();"",10);" ・・・・ 開かない

Message#2 2017年9月19日(火)07時56分
From: ジャッカル
返事 変更
確か前にも同じような質問があって、VBSか何かで対応したといった内容があったけど、
どこの質問だったか分からなかった。

たぶん結構前だったから過去の方からチェックすると見つかるかも。

> EXCEL VBAでホームページ(IE)にファイルをアップさせる記述を書いています。
> ファイル選択のダイアログのところに直接フルパスでアップするファイル名を入力させたいと考えたいます。
> objIE.document.getElementsByName("csv")(0).Click
> でクリックできファイル選択ダイアログボックスが開くのですが、その後にVBAに制御が戻って来ないため、色々調べていたところ「VBA IE制御でファイル選択ダイアログにファイルパス入力(62945)」を見つけ、window.setTimeoutを使いVBAに戻ったところで、SendKeys "^v", Trueを実行すればできると分かり、下記のように記述しましたが、かんじんのファイル選択ダイアログボックスが開きません。
> window.setTimeoutを使う前のobjIE.document.getElementsByName("csv")(0).Click
> では確実にファイル選択ダイアログボックスが開いたので、記述がどこか間違えているのでしょうか?
> 他にダイアログのウィンドウハンドルをFindWindowで取得し、SendMessageでメッセージを送信する方法も見つけたのですが、ダイアログ表示させた後はそもそもVBAに制御が戻って来ないので使えるのか分からず試していません。
> window.setTimeoutを使う場合の方法を教えていただきたく、よろしくお願いします。
>
> <関連場所のスクリプト記述>
> objIE.document.parentWindow.execScript "window.setTimeout(""document.getElementsByName('csv')(0).Click();"",10);"
> '1秒待機
> Sleep (1000)
>
> <試した記述と結果>
> 記述を変えてファイル選択ダイアログボックスが開くかどうか試した結果は下記です。
> 解決のヒントになりませんでしょうか?
> @objIE.document.getElementsByName("csv")(0).Click ・・・・ 正常に開いた
> AobjIE.document.parentWindow.execScript "window.setTimeout(""document.getElementsByName('csv')(0).Click();"",10);" ・・・ 開かない
> BobjIE.document.forms("form1").csv.Click ・・・・ 正常に開いた
> CobjIE.document.parentWindow.execScript "window.setTimeout(""document.forms('form1').csv.Click();"",10);" ・・・・ 開かない
> DobjIE.document.getElementsByTagName("csv")(0).Click ・・・・ 実行時エラー91
> EobjIE.document.parentWindow.execScript "window.setTimeout(""document.getElementsByTagName('csv')(0).Click();"",10);" ・・・・ 開かない

Message#1 2017年9月15日(金)10時42分
From: 初心者
返事 変更
EXCEL VBAでホームページ(IE)にファイルをアップさせる記述を書いています。
ファイル選択のダイアログのところに直接フルパスでアップするファイル名を入力させたいと考えたいます。
objIE.document.getElementsByName("csv")(0).Click
でクリックできファイル選択ダイアログボックスが開くのですが、その後にVBAに制御が戻って来ないため、色々調べていたところ「VBA IE制御でファイル選択ダイアログにファイルパス入力(62945)」を見つけ、window.setTimeoutを使いVBAに戻ったところで、SendKeys "^v", Trueを実行すればできると分かり、下記のように記述しましたが、かんじんのファイル選択ダイアログボックスが開きません。
window.setTimeoutを使う前のobjIE.document.getElementsByName("csv")(0).Click
では確実にファイル選択ダイアログボックスが開いたので、記述がどこか間違えているのでしょうか?
他にダイアログのウィンドウハンドルをFindWindowで取得し、SendMessageでメッセージを送信する方法も見つけたのですが、ダイアログ表示させた後はそもそもVBAに制御が戻って来ないので使えるのか分からず試していません。
window.setTimeoutを使う場合の方法を教えていただきたく、よろしくお願いします。

<関連場所のスクリプト記述>
objIE.document.parentWindow.execScript "window.setTimeout(""document.getElementsByName('csv')(0).Click();"",10);"
'1秒待機
Sleep (1000)

<試した記述と結果>
記述を変えてファイル選択ダイアログボックスが開くかどうか試した結果は下記です。
解決のヒントになりませんでしょうか?
@objIE.document.getElementsByName("csv")(0).Click ・・・・ 正常に開いた
AobjIE.document.parentWindow.execScript "window.setTimeout(""document.getElementsByName('csv')(0).Click();"",10);" ・・・ 開かない
BobjIE.document.forms("form1").csv.Click ・・・・ 正常に開いた
CobjIE.document.parentWindow.execScript "window.setTimeout(""document.forms('form1').csv.Click();"",10);" ・・・・ 開かない
DobjIE.document.getElementsByTagName("csv")(0).Click ・・・・ 実行時エラー91
EobjIE.document.parentWindow.execScript "window.setTimeout(""document.getElementsByTagName('csv')(0).Click();"",10);" ・・・・ 開かない

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