- ベストアンサー
vbsでフォームに値を入力できない
- vbsでフォームに値を入力する方法がうまくいかないです。
- ファイルパスを入力するテキストボックスに値を入力できません。
- IE.document.form(0).file.valueによるテキストボックスへの値の入力が機能しません。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは。 > ファイルパスを入力するテキストボックスで、「ファイルを > 選択する」ダイアログボックスを起動するボタンが付属... INPUT TYPE=FILE のことですね。#1 の方がご回答されてますが、 セキュリティー的な理由で、通常まともなブラウザであれば、 不可能です。 # そのようになっていないと、ローカルのファイルを勝手に # 送信するスクリプトを組めてしまいますから。 SendKeys で逃げるしかないですかね.... ie.document.form(0).file.focus CreateObject("Wscript.Shell").SendKeys "c:\test.csv" などでいけると思います。もちろん IE がアクティブでないと ダメですよ。 ただ、WSH の SendKeys は日本語がバケます。もし、日本語の ファイル名がある場合は、クリップボードを経由するしかない かもしれません。こんな感じ。 ' // IE の各種定数 Const OLECMDEXECOPT_DODEFAULT = 0 Const OLECMDID_PASTE = 13 ' // クリップボードにファイル名をセットする ie.document.parentWindow.clipboardData.setData "text","C:\テスト.csv" ' // 目的のテキストボックスをフォーカスしてペースト ie.document.form(0).file.focus ie.ExecWB OLECMDID_PASTE, OLECMDEXECOPT_DODEFAULT 全ての PC で必ずしも上手くいくとは限りませんが。。 私の環境では、一見して動作してます。
その他の回答 (1)
- redfox63
- ベストアンサー率71% (1325/1856)
出来ません セキュリティ上の理由からできないようになっています ご質問のことが出来てしまうと『悪意のある第三者』がサーバーがパンクするほどの大量データを流し込めてしまうからです フォームの送信の仕組みを直接操作するように制御してやれば可能ですが VBScriptのみでは限界があるでしょう
お礼
遅くなりましたが、ご回答ありがとうございました。 なるほど、制限がかかっていたんですね。
お礼
お礼が遅くなって申し訳ありません。 クリップボード経由でファイル名を送り込むやり方で何とか できました!ありがとうございましたm( )m