• 締切済み

Web画面の入力領域へのアクセス方法について

Web画面上にある入力領域に対して文字列を入力するプログラムを 作成したいと思います。 例えば、インターネットエクスプローラを起動して、 YAHOO JAPAN!のホームページを開いて、 検索入力欄に「クリック」という文字列を設定する場合、 下記で実現できますが、 入力領域の指定を、例えば左上から何番目の欄として 指定することはできないのでしょうか? また、入力領域の座標位置として、指定することはでき ないのでしょうか? (ところで、"srchtxt"とは、何者なのでしょうか?). やりたいことは、Webのログイン画面(ユーザIDとパス ワードの2つの入力領域を持つ画面)に、入力を行うこ とです。 Sub Macro1() Dim ie As Object Set ie = CreateObject("InternetExplorer.Application") ie.Visible = True ie.Navigate "http://www.yahoo.co.jp/index.html" ie.Document.getElementById("srchtxt").Value = "クリック" Set ie = Nothing End Sub 以上、よろしくお願いします。

みんなの回答

  • DOUGLAS_
  • ベストアンサー率74% (397/534)
回答No.5

http://10.64.13.8 >となっています。 お書きの リンク を クリック しても「このウェブサイトはご利用いただけません。」と表示されますが。。。

  • DOUGLAS_
  • ベストアンサー率74% (397/534)
回答No.4

#1・2・3 です。  #3 に >もし、お示しのままの html ソース であるとすると と書いてから、いろいろと Web検索してみて http://pares.town.aisho.shiga.jp/ という ページ を発見いたしました。  上記の ページ の ソース を見てみると、okayama394 さんがお示しのものと、ほぼ同じように見えます。  okayama394 さんは、手打ちで #2 への「補足」を書かれたようですね。  ところが、上記の URL を アドレスバー に入れて [Enter] すると、 http://pares.town.aisho.shiga.jp という ページ に飛ばされ、さらに「愛荘町施設予約システム」という ページ に転送(リダイレクト)されてしまいます。  そこの ページ 一番下に >IDやパスワードを忘れてしまった場合は、 お問合せ をご覧ください。 >ユーザーIDをお持ちでない方は、こちら へ。 と書かれているのですが、リンク の貼られている「お問合せ」・「こちら」の双方が リンク切れ になっています。  また、愛荘町 の ホームページ http://www.town.aisho.shiga.jp/ から、「サイトマップ」を開いて、「施設空き情報」を クリック してみると、こちらも リンク切れ になっていました。  okayama394 さんが >Webのログイン画面において、ユーザIDとパスワードをVBA >プログラムにより自動的に入力 したいと思っていらっしゃる ページ が「愛荘町 の ホームページ」でしたら、そもそも「ログイン ページ」そのものがないように思われますが、いかがでしょうか?  あるいは、「愛荘町 の ホームページ」でないようでしたら、#3 に書きましたように、お差し支えがなければ、「Webのログイン画面上の上部に表示されている http://XXX~の部分」をお知らせいただければ、私が アクセス して確認してみますが、いかがでしょうか?

okayama394
質問者

補足

ありがとうございます。 http://10.64.13.8 となっています。

  • DOUGLAS_
  • ベストアンサー率74% (397/534)
回答No.3

#1・2 です。  お示しの html ソース は、どこかの大学の「Campusmate/CourseNavig」の ログイン 画面かと存じますが、もし、お示しのままの html ソース であるとすると、明らかに、文法上間違った記載ですので、その ページ 自体が ログイン できるような構成になっていない、ということになります。  あるいは、okayama394 さんが、html ソース をいじって、必要と思われる ソース のみを、ここに コピペ されたのであれば、「ユーザIDとパスワードを臭わす語句」は、削除された ソース の中にあろうかと存じます。  いずれにいたしましても、このような質疑の場合は、お差し支えがなければ、「Webのログイン画面上の上部に表示されている http://XXX~の部分」をお知らせいただけれると、問題解決が早いかと存じます。

  • DOUGLAS_
  • ベストアンサー率74% (397/534)
回答No.2

#1です。 >Web画面上に、メニューバーがなく  お使いの WEBブラウザ が Internet Explorer でしたら、画面の上の方の アドレス バー や コマンド バー などが並んでいるあたりの何もないところを 右クリック すると [メニュー バー(M)] という項目が現れますので、それを クリック してください。  あるいは、[Alt] + [V] キー を押下すると、[メニュー バー] - [表示] メニュー が現われます。  IE以外の場合は、ブラウザ によって操作が異なりますので、簡単な方法としては、 1)メモ帳 を 起動します。 2)[Ctrl] + [O(オー)] で [開く] ダイアログ を開きます。 3)[ファイル名(N):] のところに、「その ページ」の アドレス を入力し、[開く(O)] を クリック します。 4)メモ帳に読み込まれたものが、「その ページ」の html ソース になります。  実際には、メモ帳 で WEBページ を開くと、改行されずにダラダラと表示されることが多く、とても読みづらいので、私は、Crescent Eve(http://www.kashim.com/eve/)を使っています。

okayama394
質問者

補足

いつも丁寧にありがとうございます。 やってみましたが、何故か、目的の語句が出力されませんでした。 実は、Webのログイン画面において、ユーザIDとパスワードをVBA プログラムにより自動的に入力できないかを考えています。 Webのログイン画面上の上部に表示されている http://XXX~の部分をアドレスとして入力したところ、以下の ように表示され、ユーザIDとパスワードを臭わす語句が見つかりま せんでした。 <HTML><HEAD> <!--<META HTTP-EQUIV="Content-Type" CONTENT="text/html;Charset=iso-2022-jp"> --> <META NAME="Author" CONTENT="Fujitsu Limited"> <TITLE>Interstage</TITLE></HEAD><BODY> TEXT="#000000" BGCOLOR="#FFFFFF"><imgsrc>="fjlogo.gif" WIDTH="50" VSPACE="10" BORDER="0">,div align="center"><IMGSRC="interstage.jpg" WIDTH="50%" HEIGHT="50%" BORDER="0" ALT="Interstage"><BR></div><BR><CENTER> <imgsrc="istage-e.gif" BORDER="0" ALT="InterStageOHP" ALIGN="center" VSPACE="10" HSPACE="10"> </CENTER></BODY></HTML>

  • DOUGLAS_
  • ベストアンサー率74% (397/534)
回答No.1

 インターネットブラウザ は何をお使いか存じませんが、たとえば、Internet Explorer として、 http://www.yahoo.co.jp/index.html の ページ を表示させた後に、[表示(V)] - [ソース(C)] で、その ページ の html ソース を見ることができます。  その中に、 <p><label id="srchtxtBg"><input name="p" id="srchtxt" type="text" value=""></label><input type="submit" id="srchbtn" value="検索"></p> と表示された部分がありますが、これこそが、「検索入力欄」とその右にある「検索ボタン」を表わす html コード になります。  VBA の コード の中に ie.Document.getElementById("srchtxt").Value = "クリック" と書かれていますが、大雑把な解説をすれば、 【「YAHOO JAPAN!のホームページを開いて」いる IE オブジェクト】の【html ソース】の中から【「id="srchtxt"」と書かれた場所】を見つけ出し【その値】を【"クリック"】に設定する というような意味合いになります。  従って、通常は、 >左上から何番目の欄として指定 したり >入力領域の座標位置として、指定 するのではなくて、当該ページ の html ソース を読み、場所を確定した上で、 ie.Document.getElementById("srchtxt").Value = "クリック" ie.Document.getElementsByName("p").item(0).value = "クリック" というような指定の仕方をすると存じます。  Excel VBA から アクセス されるのでしたら、 ie.Document.getElementsByName("p") などを ウォッチ式 に追加してみると、item の数や内容が判りやすいかと存じます。

okayama394
質問者

補足

ご回答ありがとうございます。良くわかりました。 ただ、Web画面上に、メニューバーがなく、、[表示(V)] - [ソース(C)] で、その ページ の html ソース を見ることができない場合は、どうすればよろしいのでしょうか?

関連するQ&A

  • エクセルデータをWebに入力する方法(VBA)

    エクセル2000、IE6.0、Windows2000です。 エクセルのデータを1個ずつ社内のイントラネットの入力欄に転記し、そこで検索した結果を見て一つずつ、ある判断をする業務を前任者から引継ぎました。 やってみたところ、あまりの単純作業に嫌気がさしました。Σ( ̄ロ ̄lll) そこで、見よう見真似で、セレクトしたエクセルのデータを一個ずつクリップボードにコピーし、対象のURLを開くところまでは出来ました。 現在は、開いた画面の入力欄を選択し、Ctrl+Vで貼り付けしています。 Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Target.Count > 1 Then Exit Sub '複数セル不可 If Target.Column <> 1 Then Exit Sub 'A列のみ対象 Dim myData As DataObject Dim IE As Object Dim myCb As Variant Set myData = New DataObject myData.SetText Target.Text, 1 myCb = myData.GetText myData.PutInClipboard 'データをクリップボードへ Set IE = CreateObject("InternetExplorer.Application") IE.Visible = True IE.Navigate "http://******.co.jp/******/**/***/Details/DetailsScr/init" '入力画面を開く End Sub 改善したい点は、セルを選択する都度、新しいウィンドウが開いてしまうことです。 しかし、その都度入力画面を立ち上げないと、最初の入力画面のページは、データを入力して検索ボタンを押した後には別の画面(検索結果の画面)に変わってしまうので、新しいウィンドウを開かざるをえません。 今はその都度検索結果画面を手動で(右上の×ボタンで)終了させています。 一番いいのは、エクセル画面で新しいデータをクリップボードにコピーした段階で入力画面に自動的に戻ればいいのですが、その方法がわかりません。 ヾ( ̄∇ ̄; )ノ!   また、欲を言えば入力欄にクリップボードのデータを自動的に貼り付け、検索ボタンを押すところまで自動化できれば最高なのですが、これもWebにはとんと疎いものでしてわかりません。 ご教示いただけたら幸いです。 宜しくお願いいたします。 (o。_。)oペコッ

  • Webページに入力したい

    VisualBasicのプログラムで作ったデータ(10文字ぐらいの文字列です)を Webページ上の入力欄に入力したいのですが、ボタンをクリックして、入力するにはどうしたらいいのでしょうか ご教示下さい。

  • ExcelVBAでIE画面データの取り込みかた

    http://www.geocities.co.jp/SiliconValley-Bay/1992/excel/web.html このページの記述を見てYahoo!のページはとりこめました。 ただ、新たにURLを指定してIEを立ち上げるのではなく、すでに開いているIE画面のデータを取りこむにはどのように直せばよいのでしょうか? ご教授ください。 Option Explicit Sub test()  Dim ie As Object  Dim x As Object  Set ie = CreateObject("internetexplorer.application")  Set ie = GetObject("", "InternetExplorer.application")  ie.Visible = False  ie.navigate ("http://www.yahoo.co.jp/")  While ie.Busy Or ie.ReadyState <> 4: DoEvents: Wend  Set x = New DataObject  x.SetText ie.document.documentElement.innerText  x.PutInClipboard  ActiveSheet.PasteSpecial  Set x = Nothing  Set ie = Nothing End Sub

  • Web画面をプリントする方法(エクセルVBA)

    エクセル2000です。 VBAでNavigateを使いWeb画面(イントラネット)を開き、 .Document.all.Item("Hoge****No").Value = Target.Text のような方法で入力を行い、 .Document.forms(0).submit で送信ボタンクリックして新たな画面を開くところまではできております。 次に、その開いた画面をプリントしたいのです。 どのようなコードになるのでしょうか? ご教示いただければ幸いです。 (o。_。)oペコッ 現在のコードは以下のとおりです。 Dim objIE As Object Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Target.Count > 1 Then Exit Sub '複数セル不可 If Target.Column <> 1 Then Exit Sub 'A列のみ対象 'IEが起動しているかチェック。objIE.Nameプロパティの取得に成功したら起動とみなす。 Dim tmp As String On Error Resume Next tmp = objIE.Name If Err.Number <> 0 Then 'エラーならIEが起動していないので、起動する Set objIE = CreateObject("InternetExplorer.Application") End If On Error GoTo 0 With objIE .Navigate "​http://******.co.jp/******/**/***/Details/DetailsScr/init"​ .Visible = True Do While .Busy = True DoEvents Loop .Document.all.Item("Hoge****No").Value = Target.Text 'テストボックスへ入力:Name属性で指定 'オートコンプリートなどの機能が働く場合があるので、念のため待機 Do While .Busy = True DoEvents Loop .Document.forms(0).submit '送信ボタンクリック End With End Sub

  • EXCEL入力値のWeb画面への入力について

    Excelに入力された値をWeb画面上のある入力領域に挿入し、 Web画面上のボタンを押すという処理を繰り返し行いたいと思います。 単純な操作なのですが、手入力で行うと結構面倒で、できれば 自動化したいと思います。 VBAプログラムでプログラミングしたいと思うのですが、 Web画面上への入力、ボタン押下処理は、どのようにしたら 良いのでしょうか。

  • セルにハイパーリンクつきのURLを投入したい。

    こんばんは。 Sub Macro7() URL = "http://www.yahoo.co.jp/" Range("a1").Value = "#" & URL & "#" End Sub を実行してもA1には「#http://www.yahoo.co.jp/#」と入力されるだけなのですが 図のようにURLを文字列で入力、なおかつリンクをつけて、クリックすればURL先に飛べるようにしたいです。 どうすればいいのでしょうか? よろしくお願いします。

  • 文字入力ができないときが

    いままでIE6 OSはXP Home SP2 でした 先日クリーンインストールしたときに SP3に IEは7にしました IE7は初心者です ときどき文字入力ができなくなります IE開いた状態です 入力できないのはWebメール(ヤフー)やヤフーやgoogleの検索窓とか通販の注文入力画面とかです 検索窓をWクリックするとオートコンプリートで入力した文字が現れたりもするようです  Wordには入力できますのに いったん閉じて再び開くとこんどは入力できたりします なにがどうなっているのかつかめません IEが壊れているのでしょうか

  • WEB画面からのドキュメント読み込み方法について

    表示したWEB画面からドキュメントを読み込み、次に表示したいURLを抽出したいのですが、うまくいったりできなかったりします。 どうも、画面の表示が完了しない内に、ドキュメントを読みとるためと思いますが、うまくとる方法を教えてください。 wb0.navigate urlx ・ ・ wb0.navigate urly Set doc = wb0.Document Text1 = doc.body.innerHTML→(urlyのドキュメントをみたいがurlxのドキュメントを読んでいるみたい) Set doc = Nothing urlz=(text1からurlを抽出) wb0.navigate urlz wb0.navigate urlyのイベントの完了を待って次に進む方法があればよいのでしょうか。

  • VBScriptのIEでhttpにアクセスできない

    VBScriptにてIEを操作しています。 先日PCを新しくwin7のIE11にしたところおかしくなりました。 httpのサイトにアクセスするとDocumentCompleteが発生しません。 というか最初のnavigateでは発生はしているようなのですが 次のURLにnavigateした時発生せずreadystateは1のままです。 2度目のnavigateの挙動がおかしい気がします。 ちなみにhttpsのサイトは問題ありませんでした。 試しに以下のようなスクリプトを作成してみたところ Msgboxにて"http://www.yahoo.co.jp/"、"http://weather.yahoo.co.jp/weather/" の二つが表示されてしまいました、、、。 画面上にはお天気ページのIEのみが起動(見えて)していてIEはQuitできていません。 かなり困っています。 Option Explicit Dim ie Dim isReady Set ie = WScript.CreateObject("InternetExplorer.Application", "ie_") ie.Visible = True ie.Navigate "http://www.yahoo.co.jp/" Call wait ie.Navigate "http://weather.yahoo.co.jp/weather/" Call wait ie.Quit Set ie = Nothing msgbox "ok" Sub wait() Dim count: count = 0 isReady = False Do While isReady = False WScript.Sleep 100 count = count + 1 If count > 100 Then Call chkIe ie.Quit Set ie = Nothing WScript.Quit End If Loop End Sub Sub ie_DocumentComplete(ByVal pDisp, URL) If pDisp Is ie Then isReady = True End Sub Sub chkIe Dim fso Dim browse Dim pn Set fso = CreateObject("Scripting.FileSystemObject") For Each browse In CreateObject("Shell.Application").Windows pn = fso.GetFileName(browse.FullName) If LCase(pn) = "iexplore.exe" Then msgbox browse.LocationURL Next Set fso = Nothing End Sub ほかのWIN7、IE11のPCでは問題なく操作できています。 この新しいPCのIEもデフォルトのままで特別な設定はしていません。 どなたか何か心当たりがありましたらよろしくお願い致します。

  • webアドレスの入力方法を教えてください

    OCNの光通信を利用しています。 インターネット・エクスプローラーからホームページ用としてヤフーを表示しているのですが、webアドレス(http~)を入力できる空欄がありません。 画面上部にはツールバーがあるのですが、どこに入力すれば良いのでしょうか。 他にAOLをスクリーンネームに使っているのですが、此方のヤフーのホームにはwebアドレスが入力できる空欄があります。(AOLのIE検索だとホームページの表示移動が遅いです) 分かりにくい説明かもしれませんが宜しくお願いいたします

専門家に質問してみよう