VBAでIEから情報を取得する方法

このQ&Aのポイント
  • VBAから起動したIEに表示されている情報を取得してエクセルに貼り付ける方法について質問です。特に「08:04出発」という文字を取得したいのですが、具体的な方法がわかりません。お手数ですが、アドバイスをお願いします。
  • VBAを使用してIEの情報を取得し、エクセルにコピーする方法について教えてください。具体的には、「08:04出発」という文字を取得したいのですが、方法が分からない状況です。お手数ですが、アドバイスをお願いします。
  • VBAを使ってIE上の情報を取得し、エクセルに貼り付ける方法について教えてください。具体的には、「08:04出発」という文字を取得したいのですが、方法が分からない状況です。アドバイスをいただけると助かります。
回答を見る
  • ベストアンサー

VBAでIEに表示されている情報を取得したい。

お世話になります。 VBAから起動したIEに記載されている情報をコピーしてエクセルに張りたいと 思っております。 下記で言いますと「08:04出発」という文字を取得したいのですが どのようにしたら取得できるのでしょうか? お手数ですがよろしくお願い致します。 ※当方、TextBoxに値を入れる・OKボタンを押す方法はわかったのですが、 表示されたページから値を取る方法がわからないのです。。。 <div class="infomation"> <dl><dt><span class="route-departure">08:04出発</span><span class="route-arrive-on">09:08到着</span>時間:</dt><dd>1時間4分(乗車53分、ほか11分)</dd></dl> <!--heikin-->

質問者が選んだベストアンサー

  • ベストアンサー
  • mitarashi
  • ベストアンサー率59% (574/965)
回答No.2

getElementByClassとか、getElementByClassNameというのは、IEには無いようですね。 誰かVBAで実装した人は居ないのかと調べてみたら、灯台もと暗しでヒットしました。 http://okwave.jp/qa/q6157470.html DOUGLAS_さん、出てきてくれないかな。 さもなければ、文字列関数に、objIE.document.all(1).Innerhtmlとかを丸ごと代入して、VBAの検索関数なり、正規表現なりで探すというものでしょう。 余談ですが、getElementByClassNameが使えるらしいFireFoxをVBAで制御できないのかと、ちょっと検索してみましたが、回答が付かない英語の質問にしか辿りついていません。 その過程で、View Source Chartというアドオンを知って、FireFoxにインストールしてみましたが、HTMLの構造を知るのに便利そうです。ご参考まで。

その他の回答 (1)

  • web2525
  • ベストアンサー率42% (1219/2850)
回答No.1

WEBクエリって事かな? http://www.fujicom.co.jp/salon/it_info/07webquery/webquery.html 目的のWEBデータがテーブル表記になっている場合、テーブル番号を指定してデータの取り込みが出来ます マクロの記録でマクロ化したものを修正して利用するのが簡単な方法だと思います

kgyqk433
質問者

お礼

説明がへたくそで済みません。。。 VBAでテキストBoxに値を下記の方法でいれているのですが、 objIE.document.getElementsByName("from")(0).Value = Range("B" & Counter) 同様のobjIE.documentで、値を取得したいのです。。。

関連するQ&A

  • 特定部分のテキストを取得したい

    あるテンプレートに添って作られたページからテキストを取得するブックマークレットを作りたいのですが、 下記のような構造のページから りんご、みかん、ぶどう、部分のテキストだけ抜き出して取得するにはどうすればいいでしょうか? <h1 id="hoge">りんご</h1> ~ <span class="fuga"> <a href="test.html">みかん</a> </span> ~ <div class="piyo"> <dl class="foo"> <dt>xxx</dt><dd>ぶどう</dd> <dt>xxx</dt><dd>xxx</dd> <dt>xxx</dt><dd>xxx</dd> </dl> </div>

  • HTMLのデータ読み取り

    HTMLのデータ読み取り 下記のように記述されたホームページの一部からデータを読み取りしたいのですが いろいろ参考にしてプログラムしても構文エラーで実行できません。 WEBBROUSERを使用してHTML.DOCUMENTを取得するところまではできました。 すみませんが詳しい方教えていただけますでしょうか? VB2010を使用し、document.completeイベントにて取得しようとしています。 --------------------- <dl class="clearfix" style="padding:10px 0 0;"> <dt>現在位置 :</dt> <dd class="address"> <span class="address-now">+38</span><br /><span class="vat">(mm)</span> </dd> <dt>目標 :</dt> <dd class="target"><span class="user-target">読み込み中</span></dd> </dl> --------------------- ほしい出力 text1.text = address text2.text = +38 text3.text = target text4.text = 読み込み中   ← この値は変化しています よろしくお願いします。

  • メールフォームについて質問です。

    php初心者です。 メールフォームのチェックボックスの値をPOSTでキャッチしたあと表示がしたいのですがうまくいきません。 他のPOSTでキャッチした値も、最終的にforeachで回しています。 チェックボックスからの値のみ「array」と出力されます。 多次元配列の値を並列に表示したい場合、どのような処理の考え方があるのか教えていただきたいです。 送信元 <form action="entry.php" method="post"> <dl> <dt>氏名 <span class="red">[必須]</span></dt> <dd><input type="text" name="氏名"></dd> </dl> <dl> <dt>フリガナ <span class="red">[必須]</span></dt> <dd><input type="text" name="フリガナ"></dd> </dl> <dl> <dt>メールアドレス <span class="red">[必須]</span></dt> <dd><input type="text" name="メールアドレス" style="white-space:nowrap;"></dd> </dl> <dl> <dt>参加内容</dt> <dd><input type="checkbox" value="値1" name="参加内容[]">値1</dd> <dd><input type="checkbox" value="値2" name="参加内容[]">値2</dd> </dl> <dl> <dt>個人情報保護方針 <span class="red">[必須]</span><br /><input type="checkbox" class="checkbox" name="個人情報保護方針">同意する</dd> </dl> <p class="contactBt"><input type="submit" value="確認ページ" /></p> </form> 【送信先】 $_POSTSTRINGCODE = "EUC-JP"; $_THISFILESTRING = "UTF-8"; $_MYPOST = ""; foreach($_POST as $key=>$var) { //mb_convert_variables($_THISFILESTRING, $_POSTSTRINGCODE, $key); //smb_convert_variables($_THISFILESTRING, $_POSTSTRINGCODE, $var); $_MYPOST[$key] = $var; } <dl> <?php unset( $_MYPOST['個人情報保護方針'] ); foreach($_MYPOST as $key=>$var) { $key = strtr($key, $string_from, $string_to); if(get_magic_quotes_gpc()) $var = stripslashes($var); $var = htmlspecialchars($var); $OUT_var = ($var == "")?'&nbsp;&nbsp;':nl2br($var); print("<dt>".$key."</dt><dd>".$OUT_var."</dd>"); ?> <INPUT type="hidden" name="<?php echo $key ?>" value="<?php echo $var ?>"> <?php print("</dt></dd>\n"); } ?> </dl> 配列はこんな感じです。 array(6) { ["所属団体"]=> string(1) "a" ["氏名"]=> string(2) "aa" ["フリガナ"]=> string(3) "ア" ["メールアドレス"]=> string(15) "aaa@aaa.co.jp" ["ご参加内容"]=> array(2) { [0]=> string(51) "値1" [1]=> string(15) "値2" } ["個人情報保護方針"]=> string(2) "on" } このまま表示させると「array」として表示されてしまうため「値1」「値2」の値を表示 させるためループ内で色々やってみましたが、考え方自体少しつかめていません。   【現状】 所属団体 a 氏名 aa フリガナ ア メールアドレス aaa@aaa.co.jp ご参加内容 Array (この場所に「値1」「値2」が表示させるようにしたいです) どなたかご教授いただければと思います。 よろしくおねがいいたします。

    • ベストアンサー
    • PHP
  • JavaScriptでオブジェクトを取得したい

    JavaScriptで特定の<dl>内の<dd>要素(複数)を取得したいと 思っています。<dd>要素の数はページにより変動しますので 不定です。 <dl id="myDL"> <dt>xxx</dt> <dd>@@@</dd> <dd>aaa</dd> </dl> どのようにすればよいでしょうか?

  • JQueryで$("dt span")クリック動作

    JQueryで$("dt span")をクリックしたときに 隣接するddタグの部分を表示させるには以下の記述を どのように修正すればよいのでしょうか? <html> <head> <style type="text/css"> dl { margin-bottom: 20px; } dd { display: none; } </style> <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js"></script> <script type="text/javascript"> $(function(){ $("dt span").click(function(){ $("+dd",this).slideToggle(); }); }); </script> </head> <body> <dl> <dt>toggle<span>開く</span></dt> <dd>テキストが入ります。</dd> </dl> <dl> <dt>toggle<span>開く</span></dt> <dd>テキストが入ります。</dd> </dl> </body> </html> ご存じの方がおられましたらご回答をよろしくお願いします。

  • DD,DT,DDを横並び。paddingとmarginと無指定で

    DD,DT,DDを横並び。paddingとmarginと無指定で 下記の内どれが一番使われているのでしょうか? 理由も教えていただけれるとありがたいです。 dl,dt,dd{ margin:0; padding:0;} dt{ float:left; width:8em; } .list0 dd{ padding-left:7em;} .list2 dd{ margin-left:8em;} <div> <dl class="list0"> <dt>短いタイトル</dt> <dd>短い説明、短い説明、短い説明</dd> <dt>短いタイトル</dt> <dd>短い説明、短い説明、短い説明</dd> </dl> <br /> <dl class="list1"> <dt>短いタイトル</dt> <dd>短い説明、短い説明、短い説明</dd> <dt>短いタイトル</dt> <dd>短い説明、短い説明、短い説明</dd> </dl> <br /> <div class="list2"> <dl> <dt>短いタイトル</dt> <dd>短い説明、短い説明、短い説明</dd> </dl> <dl> <dt>短いタイトル</dt> <dd>短い説明、短い説明、短い説明</dd> </dl> </div> </div>

    • ベストアンサー
    • HTML
  • phpの外部読み込みで半角ハテナがでる

    初歩的な質問内容なのかもしれませんが、宜しくお願いします。 phpの外部読み込みをすると半角ハテナがでてきてしまいデザインが崩れてしまいます。 下記がソースです。 【index.php】 <?php echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?>"; ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" lang="ja" xml:lang="ja"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <title></title> </head> <body> <?php include("information.php"); ?> </body> </html> 【information.php】 <div id="infomation" class="scroll"> <h3><span class="red">更新履歴</span></h3> <dl> <dt>サイト作成開始<span class="new">New!!</span></dt> <dd>07年05月04日:管理人の閃きで作成。</dd> </dl> </div> 上記のように本当にシンプルなソースといいますか・・・ この感じでindex.phpにinformation.phpを呼び出すと 【index.php】 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" lang="ja" xml:lang="ja"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <title></title> </head> <body> ?<div id="infomation" class="scroll"> <h3><span class="red">更新履歴</span></h3> <dl> <dt>サイト作成開始<span class="new">New!!</span></dt> <dd>07年05月04日:管理人の閃きで作成。</dd> </dl> </div> </body> </html> という結果になり半角ハテナが入ってしまいます。 この現象がでるのはInternetExplorerとOperaでアクセスした場合です。 Firefoxの場合はこの現象は現れませんでした。 この半角ハテナを出なくする方法はありませんでしょうか? 宜しくお願いします。

    • ベストアンサー
    • PHP
  • 複数の<option>と一致するものを表示するには

    サンプルで作ったコードは、 <select name="select1">の<option>、 <select name="select2">の<option>、 <select name="select3">の<option>で選び、その下にあるボタンを押すと、 <div class="sample_in">の<dd>タグ内と上記3つの項目に一致するにものだけを表示させたい と考え下記コードを作りました。しかし、select1とselect2は処理が行われません。 select3のみが処理されてしまいます。例えば・・・ 「1組,男子,おとなしい」を選んだ場合、サンプルでは一致するものは1つしかないので その親である<div class="sample_in">のみを表示させたいですが、 2組、女子でも表示の対象になり、一致するものが2つになってしまいます。 解決に役立つ様なプロパティやメソッドはないでしょうか。ヒントだけでもお願いします。 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitio … <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja"> <head> <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS" /> <meta http-equiv="Content-Style-Type" content="text/css" /> <meta http-equiv="Content-Script-Type" content="text/javascript" /> <title>サンプル</title> <style type="text/css"> #mainBox { width: 300px; border: 3px solid black; padding: 10px; } .sample_in { width: 250px; border: 1px solid SteelBlue; padding: 10px; margin: 20px; } .sample_in dt { color: Magenta; } </style> </head> <body> <form name="myForm" action="#"> <select name="select1"> <option value="指定なし" selected="selected">指定なし</option> <option value="1組">1組</option> <option value="2組">2組</option> <option value="3組">3組</option> </select> <select name="select2"> <option value="指定なし" selected="selected">指定なし</option> <option value="男子">男子</option> <option value="女子">女子</option> </select> <select name="select3"> <option value="指定なし" selected="selected">指定なし</option> <option value="おとなしい">おとなしい</option> <option value="活発">活発</option> <option value="普通">普通</option> </select> <input type="button" value="OK" onclick="test0()"> </form> <div id="sample"> <div class="sample_in"> <dl><dt>組名</dt><dd>2組</dd></dl> <dl><dt>性別</dt><dd>女子</dd></dl> <dl><dt>性格</dt><dd>おとなしい</dd></dl> </div> <div class="sample_in"> <dl><dt>組名</dt><dd>1組</dd></dl> <dl><dt>性別</dt><dd>女子</dd></dl> <dl><dt>性格</dt><dd>普通</dd></dl> </div> <div class="sample_in"> <dl><dt>組名</dt><dd>1組</dd></dl> <dl><dt>性別</dt><dd>男子</dd></dl> <dl><dt>性格</dt><dd>おとなしい</dd></dl> </div> <div class="sample_in"> <dl><dt>組名</dt><dd>2組</dd></dl> <dl><dt>性別</dt><dd>女子</dd></dl> <dl><dt>性格</dt><dd>活発</dd></dl> </div> <div class="sample_in"> <dl><dt>組名</dt><dd>2組</dd></dl> <dl><dt>性別</dt><dd>男子</dd></dl> <dl><dt>性格</dt><dd>活発</dd></dl> </div> <div class="sample_in"> <dl><dt>組名</dt><dd>1組</dd></dl> <dl><dt>性別</dt><dd>男子</dd></dl> <dl><dt>性格</dt><dd>普通</dd></dl> </div> </div> <script type="text/javascript"> function test0() { var div1 = document.getElementById('sample'); var div2 = div1.children; var index1 = document.myForm.select1.selectedIndex; var index2 = document.myForm.select2.selectedIndex; var index3 = document.myForm.select3.selectedIndex; var str1 = document.myForm.select1.options[index1].text; var str2 = document.myForm.select2.options[index2].text; var str3 = document.myForm.select3.options[index3].text; var ary = [str1, str2, str3]; for(m=0; m<ary.length; m++){ for(i=0, len1=div2.length; i<len1; i++){ var dd = div2[i].getElementsByTagName("dd"); for(j=0, len2=dd.length; j<len2; j++){ var ddText = dd[j].textContent; if( ary[m] == ddText ){ dd[j].parentNode.parentNode.style.display = ''; break; }else{ dd[j].parentNode.parentNode.style.display = 'none'; } } } } alert("エラーなし"); //動作確認用 } </script></body></html>

  • <dt>に隙間を入れる方法

    <DL class="goo"> <DT>あああ</DT> <DD>いいい</DD> <!-- この間 --> <DT>AAA</DT> <DD>BBB</DD> </DL> というHTMLを書きましたが、<DD>いいい</DD>と<DT>AAA</DT>の間を入れることがCSSでできません。どうしたら隙間をいれることができるのでしょいうか?

    • ベストアンサー
    • HTML
  • 横並びしたいのですが

    横並びしたいのですがdd.sub内のテキストがwidthサイズを超えて2段になった場合や 改行(<br>)を入れた場合それ以降のclear: both;が効かない状態になってしまいます。 dl, dl dd { padding-left: 20px; padding-bottom: 15px; } dl dd.sub { float: left; clear: both; width: 55em; } dl dd.page { margin-left: 55em; margin-bottom: 10px; } <dl> <dt>1 あああ</dt> <dd class="sub">サブ1</dd> <dd class="page">p1</dd> <dt>2 いいい</dt> <dd class="sub">サブ2</dd> <dd class="page">p2</dd> <dt>3 ううう</dt> <dd class="sub">サブ3</dd> <dd class="page">p3</dd> </dl> 理想の並びとしては 1 あああ  サブ1 p1 2 いいい  サブ2 p2 3 ううう  サブ3 p3 のようにしたいのですがCSSをどのようにすれば可能でしょうか? 仮に<dd class="clear"></dd>を追加すれば回り込みの解除はできるのですが 無駄に要素を入れたくないもので他にいい方法はないものかと悩んでおります。

    • ベストアンサー
    • HTML

専門家に質問してみよう