UWSCでie内のデータを取得しエクセルにコピーする方法

このQ&Aのポイント
  • UWSC初心者がinternetexplorerのtableのtd情報を取得し、全てエクセルにコピーする方法について質問しています。
  • 現在は個別にTD情報を取得しエクセルに貼り付けていますが、簡単に記述できる方法を知りたいと困っています。
  • 初歩的な質問ですが、助言いただけると助かります。
回答を見る
  • ベストアンサー

UWSCでie内のデータを取得しエクセルにコピーする方法につい

はじめまして。 先日、UWSCを知り、始めたばかりのUWSC初心者です。 internetexplorerのtableのtd情報をあるだけ取得し、全てエクセルにコピーしたいのですが、その、書き方の質問になります。 最初はieとexcelを起動させたあとの記述は以下のような感じで書きました。 ww = IEGetData(IE,"TAG=TD",11) sendstr(0,ww1) ww2 =IEGetData(IE,"TAG=TD",12) sendstr(0,ww2) ww3 =IEGetData(IE,"TAG=TD",13) sendstr(0,ww3) ww4 =IEGetData(IE,"TAG=TD",14) sendstr(0,ww4) ww5 =IEGetData(IE,"TAG=TD",15) sendstr(0,ww5) ww6 =IEGetData(IE,"TAG=TD",16) sendstr(0,ww6) sheet1.range("a2").value = ww1 sheet1.range("b2").value = ww2 sheet1.range("c2").value = ww3 sheet1.range("a3").value = ww4 sheet1.range("b3").value = ww5 sheet1.range("c3").value = ww6 ・・・とアナログ的に書けば、確かにie内のTDの1,2・・・の情報を取得して excelにコピーできますが、TD1,2,・・・・の部分をあるだけ個別に取ってくる作業をもっと簡単に記述出来ると思うのですが、その書き方がわからなくて、ほんと困っています。。 あちこち参照して、for を組み合わせて使えばよいのは、なんとなくわかったのですが・・・tdデータの個別の抽出とエクセルに順序よく貼付する方法がわからなくて、どうしても思っているような作業がうまくできません。。 (下のような記述をしてみました。) obj = ie.document.body.getelementsbytagname(\"td\") for i = 0 to obj.length-1 tdn = obj.item(i).innertext sendstr(0,tdn) next sheet1.range("a2").value = tdn かなり初歩的な質問で、あきれてしまうかもしれませんが、どうか、宜しくお願いします。

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

  • ベストアンサー
回答No.1
参考URL:
http://www3.bigcosmic.com/board/s/board.cgi?id=umiumi
mokuyoku
質問者

お礼

nemutai_sh様 アドバイス、ありがとうございます。 こちらは参考になりそうです! URL先を見て、もうちょっと勉強してみます。 ありがとうございます。

関連するQ&A

  • (UWSC)エクセルのセルの値を読み込むには?

    UWSCで、エクセルのセルの値を読みこむ方法について 悩んでおります。 Excel = GETACTIVEOLEOBJ("Excel.Application"); val1 = Excel.ActiveSheet.range("A1").value; を使えば、開いているエクセルのA1セルにある値を 「val1」に読み込むことができました。 今、A1~A100にある100個のリストを順々に読み込むことを 考えています。おそらくfor文を使って、以下のようにするのかな? と思っております。 for i=1 to 100 val=○○ next A1~A100の値を順々に読み込むにはどのようにすればいいのでしょうか?

  • -UWSC:IEで自動クリック-

    -UWSC:IEで自動クリック- 下記HTMLのようなボタンを UWSCでIE上で自動クリックさせたい(マウスアクションではなく) のですがどうのように記述すれば良いでしょうか。 試したけどエ反応しなかった(エラーも出ず)記述は IE.CreateOLEObj("InternetExplorer.Application) IE.Visible=TRUE IE.Navigate("javascript:this.form.orderMode.value='1';openPage('order')") です。よろしくお願い致します。 -ボタンのHTML- <div id="sub_button"> <div><input onClick="this.form.orderMode.value='1';openPage('order')" name="" type="image" src="../images/parts/pgs/b_cartsbmt.gif" class="sub_but"/></div>

  • UWSCで現在開いているIEのサイト名を取得する方法

    UWSCを使って、エクセルに記録された複数のURLを順番に巡り、そのサイト名をエクセルに記録したいと思っていますが、IEで開いていたサイトの名称を取得する方法が分からずにいます。 例:IEで「http://oshiete.goo.ne.jp/」を訪れたら、サイト名「質問&回答 (Q&A) コミュニティ - 教えて!goo」を取得する。 上記の処理についてご存知の方がいらっしゃったら、是非教えてください。 よろしくお願いします。

  • なぜかデータがコピーされない(ExcelVBA)

    お願いします。 Sheets("sheet6").Range("A1:IV65536").ClearContents Xn1 = Sheets("sheet3").Range("B65536").End(xlUp).Row Sheets("sheet6").Range("A1:B" & (Xn1 - 2)).Value = Sheets("sheet3").Range("B3:C" & Xn1).Value このコードでシート6に何もコピーされないのはなぜでしょうか。 シート3のB,C列には数値が並んでいます。 Xn1はカウントされています。(xn=1631)

  • excelのデータをコピーする

    excelVBAで、他ブック(AAA)にあるシート(AA)のA列に入っているデータをBBBというブックのBBというシートのA列にそのまま移行したいのです。 そこでBBに次のように記述したのですが動作しません。 Range("[AAA]AA!A1:A700").copy Destination:=Range("A1:A700") 本当はAに入力されているものを全て、としたいのですが良く分からなかったためとりあえず700までとしてみました。 また、このモジュールが出来たら、そこから"###"という文字列だけを抜いてコピーをする、というように条件をつけたいと思っているのですが、可能でしょうか? 方法は、VBAでなくマクロでも何でも、出来れば構いません。 教えてください。よろしくお願いいたします。

  • EXCEL VBA オートフィルタの値コピー

    ほぼ初心者ですのでよろしくお願いします。 Sheet2にデータがありそのデータをオートフィルタで日付から抽出してSheet3にコピーして、その後Sheet1の表に該当項目をコピーする際についてですが、オートフィルタ後、1日当たり行は10~15行あります、そのうちG列にはデータが通常2つのセルに値があるだけでほかの行は空欄です。(日によってどの行になるかはわかりません)この2つのセルの値をそれぞれSheet1のM10とM11コピーしたいのです、 ちなみにセル番地は下記の方法で取得できましたが、値の取得ができません。 Range("D1").Value = Worksheets("sheet1").Range("A1").End(xlDown).Row Range("D2").Value = Worksheets("sheet1").Range("A65536").End(xlUp).Row Sub データコピー() Range("AB17") = Format(Sheet3.Range("A3").Value, "yy") Range("AE17") = Format(Sheet3.Range("A3").Value, "mm") Range("AH17") = Format(Sheet3.Range("A3").Value, "dd") Range("AK17") = Format(Sheet3.Range("A3").Value, "aaa") Range("D22") = Sheet4.Range("D3").Value Range("D25") = Sheet4.Range("E3").Value Range("H22") = Sheet4.Range("F3").Value Range("D22") = Sheet4.Range("G3").Value Range("L22") = Sheet4.Range("K3").Value Range("Q22") = Sheet4.Range("L3").Value Range("U22") = Sheet4.Range("M3").Value .   .   . End Sub

  • EXCEL VBA オートフィルタの値コピー2

    たびたびすいませんよろしくお願いします。 EXCEL VBA オートフィルタの値コピーの追加質問です http://okwave.jp/qa4803815.html?ans_count_asc=20 オートフィルタ後、1日当たり行は10~15行あります、そのうちH列からM列まで、ある1行にデータがありますそのデータをH列から順番にSheet1のM20とM28までコピーしたいのです、ただ日によってその列は空欄の時やM列だけの時もありますもあります。さらにN列からP列まで同じようにデータがある時(H列からM列と行が違うときがあり)、上にある行からSheet1のM20とM28に上詰めでコピーしたいのです。 もっと簡単にいいますとH列からP列まである値を上の行からさらにH列から順番に上詰めでSheet1のM20とM28にコピーしたいのです。 なにとぞよろしくお願いします。 Sub データコピー() Range("AB17") = Format(Sheet3.Range("A3").Value, "yy") Range("AE17") = Format(Sheet3.Range("A3").Value, "mm") Range("AH17") = Format(Sheet3.Range("A3").Value, "dd") Range("AK17") = Format(Sheet3.Range("A3").Value, "aaa") Range("D22") = Sheet4.Range("D3").Value Range("D25") = Sheet4.Range("E3").Value Range("H22") = Sheet4.Range("F3").Value Range("D22") = Sheet4.Range("G3").Value Range("L22") = Sheet4.Range("K3").Value Range("Q22") = Sheet4.Range("L3").Value Range("U22") = Sheet4.Range("M3").Value .   .   . End Sub

  • エクセルVBA 双方向での書式のリンク方法

    エクセルVBAにて双方向での書式のリンクをさせたいと考えています。 具体的にはセルの背景色の双方向リンク方法について教えていただきたいです。ここで双方向での背景色のリンクとは別々のシート上のセルの背景色をどちら側の変更であっても、もう一方に変更を反映させることです。 【シート1】 Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address = "$A$1" Then Sheets("Sheet2").Range("$A$1").Value = Sheets("Sheet1").Range("$A$1").Value Sheets("Sheet2").Range("$A$1").Interior.ColorIndex = Sheets("Sheet1").Range("$A$1").Interior.ColorIndex End If End Sub 【シート2】 Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address = "$A$1" Then Sheets("Sheet1").Range("$A$1").Value = Sheets("Sheet2").Range("$A$1").Value Sheets("Sheet1").Range("$A$1").Interior.ColorIndex = Sheets("Sheet2").Range("$A$1").Interior.ColorIndex End If End Sub 上記のコードを記述しています。値のリンクはできているのですが背景色のリンクがどうしてもうまくできません。どちらかの変更と同時にもう一方の背景色も変更されるようにするにはどうすればよいでしょうか? どんな方法でもかまいませんのでお詳しい方よろしくお願いします。

  • 【エクセルVBA】データの振り分けについて。

    エクセルVBAでのデータの振り分けについて教えて下さい。 シート(1)のA列には他のファイルから抽出したデータがあります。 各行のデータの中に、H20年度が含まれている場合はシート(2)のA列に移動させ、H21年度が含まれている場合にはシート(2)のC列に移動させたいと思っています。 以前に sheets(1).Range("H40").Value Like "*○○*" Then sheets(2).Range("H40").Value = 0 sheets(1).Range("G" & myRow).End(xlUp).Offset(1, 0).Value = _ sheets(2).Range("H40").Value こういうものを使ったことがある為これを応用するといいのかなとも思ったのですが、わからなくなってしまい質問させていただきました。 勉強不足ですいません。 教えて頂けないでしょうか。よろしくおねがいします。

  • EXCEL 名前の定義 VBA参照の方法

    EXCELの名前の定義を、VBAから参照する方法を教えていただきたいのですが  名前を定義する    シートA  名前:TEST 範囲:シートA    シートB  名前:TEST 範囲:シートB    シートC  名前:Pass 範囲:ブック  それぞれをVBAから参照する場合    Range("TEST").Value: シートA内のVBA    Range("Pass").Value  では、参照できず。    Worksheets("シートA").Range("TEST").Value    Worksheets("シートC").Range("Pass").Value  にて、参照できました。 明示的なシート名入力が必要なのでしょうか? よろしくお願いいたします。

専門家に質問してみよう