• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:uwsc webページ内のテキストボックス)

uwscでwebページ内のテキストボックスにカーソルを置く方法

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("終了です。)

関連するQ&A

  • 日付型のテキストボックスに数値を入れて日付にしたい

    アクセスのフォームの上にテキストボックスがあり、 書式はyyyy/mm/dd(aaa)になっています。 日付型の値を入力した際は問題ないのですが 例えば、20130720と入力したら、 このフィールドに入力した値が正しくありません。 例えば、数値型のフィールドに文字列を入力しました。 となります。 なので、 Private Sub 日付_BeforeUpdate(Cancel As Integer) If Len(Me.ActiveControl.Value) = 8 Then Me.ActiveControl.Value = Format(Me.ActiveControl.Value, "yyyy/mm/dd") End If End Sub としてみたのですが、 更新前処理イベントが発動する前に、 「このフィールドに入力した値が正しくありません。 例えば、数値型のフィールドに文字列を入力しました。」 のエラーが出てしまうようです。 20130720の形の日付を入れても自動で日付型に変換するの方法はありますか?

  • エクセルVBA フォームのテキストボックスの入力規則

    エクセル2000を使用しています。 VBAでフォームを作成しています。日付の入力項目をテキストボックスで 作りたいのですが、”yyyy/mm/dd”の形式で入力するようテキストボックスの中に表示し、それ以外の入力形式を制限するにはどのようにしたらよいでしょうか。

  • VBA テキストボックスで日付を変更するとエラー

    VBAにて、ユーザーフォーム上のテキストボックスに初期値として今日の日付が入力されており、さらにそれを任意で変更するというマクロを作成しようとしています。 'テキストボックス2に初期値として今日の日付を入力 Private Sub UserForm_Initialize() TextBox2.Text = Format$(Date, "yyyy/mm/dd") End Sub 'テキストボックス2に入力された日付はdenpyoudateという変数に格納される Private Sub TextBox2_Change() denpyoudate = UserForm2.TextBox2.Value End Sub 入力された日付を変数として利用したいので、上記のようなコードにしたのですが、実際に初期値である今日の日付を編集すると「型が一致しません」というエラーが出てしまいます。 このエラーを回避し、テキストボックスに入力された日付を変数として使用するにはどうすればよいでしょうか?

  • UWSCでのテキストボックス入力およびボタンクリック

    一昨日「超速!!Windowsマクロテクニック」という本を買い、UWSCの勉強を始めたばかりの初心者ですが、IE上でテキストボックスの入力やボタンのクリックについて本では理解ができず、壁に当たってしまいました。 たとえばyahooのトップ画面から  "オークション"をクリック (サイト移動)  "デジカメ"を入力  「検索」ボタンをクリック というような作業をしたい場合、 どのようにマクロをかけばよいのでしょうか? 上記の本の中ではテキストボックスへの入力について IE.document.forms[x].elements[y].value="zzz" というようなことが書いてありましたが、テキストボックスやリンク、ボタンがたくさんある場合、どうやってその場所を指定すればよいか(xやyをどうやって調べればよいか)がわかりません??? 初歩的な質問で申し訳ありませんが、何卒ご教授をお願いします。

  • VBAでExcelのヘッダーに文字列+セルの値を入れたい

    お知恵を貸してください。 Excelヘッダーについてです。 セルA1に日付が入っていて、この値をYYYY/MM/DDの形でヘッダーにしたいと思っているのですが、この日付の前に「日報」という2文字を必ず入れたいのです。 最終的な形は「日報YYYY/MM/DD」となればよいのですが、これはVBAで可能なのでしょうか。 今まで手入力していたのですが毎日印刷するものなので、自動化したいと思うのです。 よろしくお願いいたします。

  • エクセルVBA セルの書式につい

    ユーザーフォームのテキストボックスに入力した日付(yyyy/mm/ddの形式)をA1セルに入れるとします。  Range("A1").Value = Me.txt日付 A1セルの表示形式は書式設定でユーザー定義の"d"で表示されるように設定していますが、 テキストボックスに入力した形式のまま(yyyy/mm/dd)でA1セルに表示されてしまいます。 上記のみではNGでしょうか? ちなみに、yyyy/mm/ddと入力されたA1セルを一旦編集モード([F2]キーを押した状態)にして[Enter]を押すと"d"(書式設定で指定している書式)に変わります。 参考:A1セルの日付をみて別シートの一覧からVlookup関数で値を検索したいところが、yyyy/mm/ddで表示されるためにエラーとなってしまいます) ご存知の方教えていただきたいです。

  • UWSCで ENTERキーを押した時の挙動について

    UWSCで ENTERキーを押した時の挙動を再現したいのですが上手くいきません。 アバター sekiguchi_kou_dayoさん2017/6/2302:40:58 UWSCで ENTERキーを押した時の挙動を再現したいのですが上手くいきません。 ●試したコード IESetData(IE,True,"","innerText=編集",2) sleep(0.5) IESetData(IE,"2017/08/28","TAG=input",9) sleep(0.5) KBD(VK_RETURN) 実際、手でエンターキーを押すのとテキストボックスの日付が更新されるのですが、KBD(VK_RETURN)だと更新がかかりません。 考えられる可能性がございましたらアドバイスを頂けると助かります。宜しくお願い致します。

  • テキストボックスの入力チェック。

    Version 6.0 です。 テキストボックスに入力された値の中に任意の文字があるかどうかを判断する関数というのはあるでしょうか?InStrとかでやってみたのですが、If文を繰り返すことになってしまい、見難い状況です。 2つのテキストボックスに年月を入力させ、 "yyyymm"、"yyyym"、"yyyy/mm"、"yyyy/m" が入力可。入力した文字列に"/"があるかないかを判断し、あればそのままでIsDateでチェック。なければ、"/"を入れてIsDateでチェック、とさせたいです。 何か簡単なコードの書き方等あれば、ぜひ教えてください。分かり難いところがあれば、補足します。よろしくお願いします。

  • Excel2010のコンボボックスについて

    ActiveXコントロールのコンボボックスについて質問です。 ListFillRangeに一番上に文字列・以下は日付の入ったセル(日付の書式はyyyy/mm/dd)を設定しています。 コンボボックスで選択する際にリストの表示は設定したセルの通りなのですが、日付を選択するとコンボボックスのテキストエリア?の表示が標準に(41172のように)なってしまいます。 これをyyyy/mm/ddのように表示することは可能でしょうか? プロパティのどこをどのようにしたら良いのでしょうか? お願いします。

  • visual basicのテキストボックスについて

    ビジュアルベーシックでカレンダーを作ろうと考えてます。 日付のところをテキストボックスに数字を入れて、カレンダーに見立てようとしています。 でも、そのテキストボックスに値を代入するとき、一つ一つに textbox1.text=1 textbox2.text=2・・・・ と書いていくのはすごくメンドくさく、非効率的です。 今、自分が考えている解決方法は、javascriptにでてくるdocument.forms[0].elements[a].valueのようなテキストボックスなどの名前を指定しなくても値を代入する方法です。 でも、ビジュアルベーシックにこのような操作が可能なのかわかりません。 知っている方がいたら是非教えてください。