
みなさんこんばんわ。
uwscを使ってwebページ内の検索などのテキストボックスにカーソルを置きたいのです。
KBDで文字を打ち込めるようにテキストボックスを編集状態にするにはどうすれば教えてください。
具体的には、
私の会社の日報システム(html)で日報を入れる日付テキストボックスがあるのですが、日付のテキストボックスだけvalueで値を入力しても元に戻ってしまうのです。html解析スクリプトで調べると、outerhtmlと書いてあり、何か動的に書き変わるしかけがあるようなのですがよくわかりません。しかたがないのでKBDで日付を入力しています。domというのでしょうか、ie.doc.elements(i).value="yyyy/mm/dd"のようにテキストボックスを指定して直接値を入力できればベストなのですが…
よろしくお願いします。
No.3ベストアンサー
- 回答日時:
たびたび大変失礼をしました。
エレメント名を調査する方法が間違いでした。
前に紹介したスクリプトはオブジェクトへのアクセス方法でした。
以下の方法が原始的ですが、フォーム内のエレメント名を調べる方法を推奨します。
そもそも、テキストボックスはフォームの中に存在する訳なので、フォームを指定してあげて、その中のテキストボックスを全て表示すれば良い。
IEのウインドウ内のフォーム総数はIE.document.forms.lengthで求められます。
フォームの中のエレメント総数はIE.document.forms[番号].elements.lengthで求められます。
以下のスクリプトならIEで[番号]に指定されたフォーム番号のエレメント名が全て表示されます。
故に、フォーム番号を0から片っ端から入力して調査すれば、下のスクリプトでいずれ貴殿の探しているテキストボックスのエレメント名が解る筈です。
エラーで止まっても、UWSCに付属している小さなウインドウでエレメント名が出てくるので、これを使えばokです。
先ほど、佐川急便のフォームで試しました。エラーで止まりましたが、ウインドウのなかにエレメント名がばっちり残ってました。
但し、システム上でUWSCのアクセスを弾くなど、エレメント名を隠す加工がなされていれば、無理なのでごめんなさい。
ウインドウ名の入力は、前の答えのウインドウ名を調査するアプリを使って下さい。
//フォーム番号を0~いっぱい順序で入れて数回に分けて片っ端から調査して下さい。
UL1 = input("開いているウィンド名を入力")
IE = GETACTIVEOLEOBJ("InternetExplorer.Application",UL1)//指定したウィンド名のIEを制御
IE.visible=TRUE
REPEAT
SLEEP(0.1)
UNTIL !IE.BUSY AND IE.READYSTATE = 4
FBANGOU = input("要素数を調査したいフォーム番号を入力")
番号 = VAL(FBANGOU)
KOSUU = IE.document.forms[番号].elements.length
MSGBOX(KOSUU)
FOR x = 1 to VAL(KOSUU)
Ifb x > VAL(KOSUU) then
MSGBOX("終了")
EXITEXIT
endif
NAIYOU = IE.document.forms[番号].elements[x].name
print NAIYOU
next
追記:フォーム総数は、以下で求められます。
UL1 = input("開いているウィンド名を入力")
IE = GETACTIVEOLEOBJ("InternetExplorer.Application",UL1)
IE.visible=TRUE
REPEAT
SLEEP(0.1)
UNTIL !IE.BUSY AND IE.READYSTATE = 4
KOSUU = IE.document.forms.length
MSGBOX(KOSUU)
総括:わかりにくかったと思うので、私が実際に行った方法を最後に記します。
(1)調査したいIEのwebアプリの画面を開く。
(2)開いたIEのwebアプリの画面のフォーム総数をスクリプトを使って調べる。
(3)開いたIEのwebアプリの画面内に存在するフォームの数だけ、エレメント名の調査を行う。(例:フォーム数5と出たら5回。念のために0を含めた0から5を入力)
(4)エラーで出ても、めげずにprint関数を使ったUWSCのウインドウでエレメント名を拾う。
(5)エレメント名から法則性を推測する。
(6)法則性を理解したら、ID番号+エレメント名など入力するデータをエクセルで作成する。
(7)IESETDATA関数を使って、直接入力する。
終了です。
redcrow_TXさん、お返事が大変遅れてしまい申し訳ありませんでした。仕事上大事な試験があって、勉強漬けの日々を送っていました。遅れてごめんなさい。そして本当にありがとうございます。redcrow_TXさんのように、赤の他人のために親切に回答してくれる人が居るだけでうれしいです。説明の内容を試してみます。本当にありがとうございました。これからも困っている人を助けてあげられる人であってください。ありがとう。
No.2
- 回答日時:
すいません。
補足します。尚、IEはバージョンによって、ウインドウ名が異なります。
ウインドウ名の取得プログラムも優秀な方が作られたプログラムを拝借して調べました。
私は”デスクトップ ウィンドウ クラス名 タイトル 取得 プログラム”と入力して検索しました。
直リンを貼るとNGっぽいので、ごめんなさい。
>何か動的に書き変わるしかけがあるようなのですがよくわかりません
蛇足がかなーり入ってますが、エクセルでセルA2から続くデータを、B2に入っているID等の番号で管理されたエレメントに入力する例文です。
これをこんな形で答えたのは、世の中のIEを用いて作られたアプリの大半は、IE上で生成されるフォームのテキストボックスに入力する事になってますが、困ったことに場合によってはフォーム上のテキストボックスの位置は座標がマチマチで、ダイレクトに入力する他なく、ダイレクトに入力する方法は、エレメントを知らなければ難しいからだと思ったからです。
が、嬉しい事にプログラマーの方々は殆どの場合、ID番号+エレメント名などの法則性を使っている為、これを逆手にとってエクセルのセルにIDを入れ、当該ID&エレメント名とすれば、解決できると思ったからです。(私はこれで解決させました。勿論、『エレメント名&ID&エレメント名』・『エレメント名&ID&日付』などもあります。
日付は
GETTIME()
TIME=G_TIME_YY4+"年"+G_TIME_MM2+"月"+G_TIME_DD2+"日"+G_TIME_HH2+"時"+G_TIME_NN2+"分"+G_TIME_SS2+"秒"
を使えばTIMEが現在の時間として取得処理出来るので、日報関係ならどうでしょうか?)
更に、動的部分がIE上に表示されている文章等を用いている法則性なら
SENDSTR(0,IE.document.body.innerTEXT)
SCKEY ( GETID("Microsoft Excel","XLMAIN", 0.1) , VK_CTRL, V)
として、クリップボード経由でエクセル上に表示されている文章を落としてしまうことも推奨します。
その上で、法則性の部分を抽出して下記の内容で処理したら如何でしょうか?
回数 = input("繰り返す回数を入力してください。")
FOR x = 1 to VAL(回数)
IE = GETACTIVEOLEOBJ("InternetExplorer.Application","●●●- Windows Internet Explorer")//指定したウィンド名のIEを制御→●●●は例です。
Excel=GETACTIVEOLEOBJ("Excel.Application")
val1=Excel.ActiveSheet.Cells(x+1,1).Value//エクセルのA2セルから下に掛けてフォームに入力したいデータを入れます。
val2=Excel.ActiveSheet.Cells(x+1,2).Value//動的法則性を把握して、B2のセルから下に掛けて管理されている法則のID等のデータを入れます。
val3=trim(val2)
bo1="▼▼▼"+val3//▼▼▼は例です。エレメント名を作ります。例えば、動的でIE上でエレメント名が都度異なる場合には、これが有効だと解りました。
print bo1
IESETDATA ( IE , val1, bo1 )
next
MSGBOX("終了です。)
No.1
- 回答日時:
私も同じ内容で従前迷ってました。
IESETDATAを使って解決させました。
構文は、UWSC本体のヘルプに出てます。
エレメント名の解析スクリプトは、たしか
http://siromasa.xxxxxxxx.jp/Sample/index.html
で拾いました。
2010/12/03 [Module] Windowアイテム・オブジェクト・イメージ・スクリプト取得 ⇒ Module_GetsDX2.uws
が其れです。非常に優秀な方が作られたと思っております。
このスクリプトを使用すると、或る程度の解析が出来るので、非常に優れたスクリプトだと思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) ExcelVBAでユーザーフォームでテキストボックスなどからセルに連続して入力するコーディングの際の 2 2022/06/29 22:51
- Access(アクセス) capeofdragonと申します。 Access2016を使っております。 あるフォームがあり、テ 2 2022/09/09 13:18
- Visual Basic(VBA) ユーザーフォームで銀行に対応した支店コードの入力ができません Sheet1のA列に銀行名、B列に銀行 5 2022/07/28 17:50
- Access(アクセス) Access IF文でテーブルに存在しない場合の処理について 2 2022/10/10 18:09
- Visual Basic(VBA) Selenium Basicの件 5 2023/04/10 20:55
- Access(アクセス) Access DTPickerの初期表示月を変えたい 1 2022/08/02 08:55
- Visual Basic(VBA) テキストボックスの値を該当セルに登録する方法 2 2022/11/23 18:47
- JavaScript javascriptのちょっとした動作不良(原因は突き止めたのですが) 1 2023/06/15 19:58
- Excel(エクセル) 【vba】日付の形式が勝手に変わってしまう。 1 2022/09/29 10:54
- Access(アクセス) チェックボックスにチェックが入った後の挙動 1 2022/08/21 12:39
このQ&Aを見た人はこんなQ&Aも見ています
-
これまでで一番「情けなかったとき」はいつですか?
これまでの人生で一番「情けない」と感じていたときはいつですか? そこからどう変化していきましたか?
-
初めて自分の家と他人の家が違う、と意識した時
子供の頃、友達の家に行くと「なんか自分の家と匂いが違うな?」って思いませんでしたか?
-
最強の防寒、あったか術を教えてください!
とっても寒がりなのですが、冬に皆さんがされている最強の防寒、あったか術が知りたいです!
-
あなたなりのストレス発散方法を教えてください!
自分なりのストレス発散方法はありますか?
-
思い出すきっかけは 音楽?におい?景色?
記憶をふと思い出すきっかけは 音楽、におい、景色 どれですか?
-
【UWSC】WEBページ中の特定文字リンクをクリックする動作を自動化したい
その他(プログラミング・Web制作)
-
UWSCを使用して、ドロップダウンリストを操作
フリーソフト
-
フォーカスを一発移動
フリーソフト
-
-
4
UWSCの終了の仕方
その他(プログラミング・Web制作)
-
5
【UWSC】WEBページ内コピーしたものをExcelで値で貼り付けするには?
その他(プログラミング・Web制作)
-
6
UWSCに詳しい方簡単なテキスト入力方法を教えてください
その他(プログラミング・Web制作)
-
7
UWSCのSELECT文の記述方法
その他(プログラミング・Web制作)
-
8
UWSCで変数をキー入力
その他(プログラミング・Web制作)
-
9
UWSCの待機コマンドについて
その他(ソフトウェア)
-
10
UWSCのIE操作でプルダウンを選択する方法
その他(プログラミング・Web制作)
-
11
変数内に入った文字列の結合 UWSC
その他(プログラミング・Web制作)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・一番好きなみそ汁の具材は?
- ・泣きながら食べたご飯の思い出
- ・「これはヤバかったな」という遅刻エピソード
- ・初めて自分の家と他人の家が違う、と意識した時
- ・いちばん失敗した人決定戦
- ・思い出すきっかけは 音楽?におい?景色?
- ・あなたなりのストレス発散方法を教えてください!
- ・もし10億円当たったら何に使いますか?
- ・何回やってもうまくいかないことは?
- ・今年はじめたいことは?
- ・あなたの人生で一番ピンチに陥った瞬間は?
- ・初めて見た映画を教えてください!
- ・今の日本に期待することはなんですか?
- ・集中するためにやっていること
- ・テレビやラジオに出たことがある人、いますか?
- ・【お題】斜め上を行くスキー場にありがちなこと
- ・人生でいちばんスベッた瞬間
- ・コーピングについて教えてください
- ・あなたの「プチ贅沢」はなんですか?
- ・コンビニでおにぎりを買うときのスタメンはどの具?
- ・おすすめの美術館・博物館、教えてください!
- ・【お題】大変な警告
- ・洋服何着持ってますか?
- ・みんなの【マイ・ベスト積読2024】を教えてください。
- ・「これいらなくない?」という慣習、教えてください
- ・今から楽しみな予定はありますか?
- ・AIツールの活用方法を教えて
- ・最強の防寒、あったか術を教えてください!
- ・歳とったな〜〜と思ったことは?
- ・モテ期を経験した方いらっしゃいますか?
- ・好きな人を振り向かせるためにしたこと
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
テキストボックスの番号を使っ...
-
エクセルVBA テキストボックス...
-
初歩的な事だと思います。 Sub...
-
EXCEL VBA で指定した範囲に入...
-
VBAでInputBoxの再入力をさせる...
-
TextBoxから数字が文字...
-
DataGridView 列ごとの入力制限
-
Excel-VBAでInputBox+Pulldown...
-
EXCEL VBA のユーザーフォーム...
-
DataGridViewの桁数制限に関して
-
「イ分」・・・フンという文字...
-
VBA R1C1形式で変数の入力について
-
至急です!Excelがわかりません
-
検索窓とcssハックについて
-
アルファベットGの小文字の入力
-
入力フォームの値をQRコードで...
-
教えて!全角文字「μ」の半角
-
アクセスのマクロ
-
VBscriptでHTTP POSTでサイトに...
-
ExcelVBAのユーザーフォームで...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルVBA テキストボックス...
-
初歩的な事だと思います。 Sub...
-
テキストボックスの番号を使っ...
-
Excel-VBAでInputBox+Pulldown...
-
EXCEL VBA で指定した範囲に入...
-
DataGridView 列ごとの入力制限
-
TextBoxから数字が文字...
-
数字以外の入力をエラーにする...
-
DataGridViewの桁数制限に関して
-
クロスサイト・スクリプティン...
-
VBAでInputBoxの再入力をさせる...
-
excel vba でユーザーフォーム...
-
X(元Twitter)で問題があり、お...
-
HTMLで全角文字のみ入力するに...
-
アクセスのマクロ
-
入力フォームの値をQRコードで...
-
エディットボックスの入力制限...
-
「イ分」・・・フンという文字...
-
教えて!全角文字「μ」の半角
-
ExcelVBAのユーザーフォームで...
おすすめ情報