ファイル選択ダイアログが開かない
未読分:3件
昨日以降(0) 2日前以降(0) 3日前以降(0) 4日前以降(0) 5日前以降(0)
近田 伸矢, 植木 悠二, 上田 寛
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);" ・・・・ 開かない |
昨日以降 2日前以降 3日前以降 4日前以降 5日前以降