advanced help
per page, with , order by , clip by
Results of 1 - 1 of about 14741 for VBA�������������� (0.003 sec.)
[[20210616113520]]
#score: 3407
@digest: 79542f753b6beed6b523df60e025cdaf
@id: 88068
@mdate: 2021-06-21T05:50:48Z
@size: 4454
@type: text/plain
#keywords: firstentrydatefrom (38104), invalid (23334), シラ (21670), objtag (18756), ハヤ (18075), getelementsbyname (16701), ヤシ (15440), htmlevents (15241), initevent (15241), evt1 (14996), createevent (14536), outerhtml (7971), objie (6495), 当箇 (5627), document (5608), sendkeys (4504), internetexplorer (3085), 瞬間 (2230), input (2230), 専門 (1935), イベ (1854), 了日 (1600), ヒン (1599), 始日 (1557), ベン (1518), (ハ (1455), change (1301), 日」 (1217), ライ (1014), ス) (976), トボ (903), カレ (902)
VBAによるIE操作(日付の入力) 』(ハヤシライス) お世話になります。 VBAでIEの制御を行おうとしています。 「開始日」と「終了日」を入力後、「検索」ボタンを押して該当のデータを検索したいと考えています。 このとき、VBAでValueに値を入れると、見た目はデータが入力されたように見えるのですが、「検索」ボタンをVBAからクリックする瞬間に、「開始日」「終了日」ともに空欄になって、検索結果も期間を指定しないものになります。 該当箇所のソースは以下になります(Classの値はダミーです)。 <input name="firstEntryDataFrom" class="dummy" aria-invalid="false" type="datepicker" placeholder="YYYY/MM/DD" value=""/> また、開発者ツールで該当箇所を表示したあと、「イベント」を見ると「invalid」とありました。 なお、実際の画面では「開始日」「終了日」それぞれのテキストボックスの右側にカレンダーを表示するボタンがあり、カレンダーからの入力も、手入力による直接入力もどちらも可能になっています。 手入力で入力時は、日付を1文字入力するたびにテキストボックの下に「日付が正しく有りません」というメッセージが表示され、最終的に日付の入力が終わった時点で、メッセージが消えます。 このことから、何かしらイベントが走っているのだと考え、 以下の様に記述しましたがうまくいきません。 Dim evt1 Set evt1 = .createEvent("HTMLEvents") evt1.initEvent "Invalid", True, False objIE.Document.getElementsByName("firstEntryDateFrom")(0).Value = Format(now, "yyyy/mm/dd") objIE.Document.getElementsByName("firstEntryDateFrom")(0).dispatchEvent evt1 SendKeysを使う方法も試しました。SendKeysだと日付を認識はするのですが、やはり不安定なので、できれば避けたいと考えています。 ヒントでも良いのでご教示いただけないでしょうか? 何卒よろしくお願いいたします。 < 使用 Excel:Office365、使用 OS:Windows10 > ---- >このとき、VBAでValueに値を入れると、見た目はデータが入力されたように見えるのですが、 >「検索」ボタンをVBAからクリックする瞬間に、 アイデアだけですが、、 Valueに値を代入したあと、すぐ検索ボタンをクリックせず、 当該各InputオブジェクトをClickだか、MouseDownだか、MouseUpだか(Down/Up 両方続けてだか)したら 本来の入力イベントが発生しないですか? (半平太) 2021/06/16(水) 17:06 ---- 半平太様 ありがとうございます。 ヒントでも嬉しいです。 確かにその方法だと行けるかもしれません。 試してみます。 ありがとうございます。 (ハヤシライス) 2021/06/16(水) 17:25 ---- お世話になります。 半平太様に頂いたヒントを元に、Valueに値を設定後、いろいろイベントを発行してみたのですが、 やはりうまくいきませんでした。 そこで、SendKeysを使って次のコードを試したところ、SendKeysの直後に対象のテキストボックスの値が消えてしまいます。 objIE.Document.getElementsByName("firstEntryDateFrom")(0).Value = Format(now, "yyyy/mm/dd") objIE.Document.getElementsByName("firstEntryDateFrom")(0).Focus SendKeys "{ENTER}" Valueで入力した値がきちんと入力できていないように見えるのですが、こういうことってあるんでしょうか? (ハヤシライス) 2021/06/18(金) 14:11 ---- こんばんは 専門ではありませんが invalid ? 無効? &#160;Set evt = objIE.document.createEvent("HTMLEvents") &#160;evt.initEvent "change", True, False 違ってたらスルーしてください。 (change) 2021/06/18(金) 22:37 ---- change様 ありがとうございます。 確かにイベントとしてInvalidを指定するのはどうかなと思い、 ご指摘いただいた「change」も試したのですが、だめでした。 試したのは、 ・invalid ・change ・click となります。 (ハヤシライス) 2021/06/21(月) 09:15 ---- input操作は、難しいの頑張って。 自分も思い通りにセルの情報を反映させるのに1か月かかったよ… 参考になるか解りませんが For eachで全ての要素をチェックする? Tagがinputのhtml(outerhtml)内に「該当箇所」が含まれていたら Dim objIE As InternetExplorer Dim objTag As Object Set objIE = CreateObject("InternetExplorer.Application") For Each objTag In objIE.document.getElementsByTagName("input") If InStr(objTag.outerHTML, "firstEntryDateFrom") > 0 Then objTag.Click Exit For End If Next objTag.Clickなのか、下記方法かは自分で試してくださいな objTag.Value =反映情報 でダメなら検索で javascript , イベント , 強制発火 , VBA などなど でダメならIE専門の質問サイトで質問する!! 例 : Q&Aコーナーあるよ https://www.vba-ie.net/ それでも苦労するなら IEはいつまで使用できるか解らないので Seleniumを使用して、Chromeを操作する (change) 2021/06/21(月) 11:55 ---- change様 非常に丁寧なコメントありがとうございます。 IEの操作はやはり難しいんですね。 頂いたヒントを元に試行錯誤してみます。 ありがとうございます。 (ハヤシライス) 2021/06/21(月) 14:50 ...
https://www.excel.studio-kazu.jp/wiki/kazuwiki/202106/20210616113520.txt - [detail] - similar
PREV NEXT
Powered by Hyper Estraier 1.4.13, with 97065 documents and 608342 words.

訪問者:カウンタValid HTML 4.01 Transitional