• 締切済み

ExcelでWeb上のデータを確認する方法について

特定のWEBサイト上の表データではないデータ(数値)と、 Excel上にある数値が合致しているかを自動で確認できるようにしたいのですが、 このようなマクロを組むことは可能なのでしょうか。 また、その際、特定のWEBサイト自体がそもそも存在するか(削除されていないか)、 という点についても確認する方法はありますでしょうか。 自動化したい作業は、以下の4つです。  (1)Excelを開いた際に、特定のセルに記載されたURLに自動でアクセス  (2)上記の特定URLが存在するか否かを確認(Excel内に存否(○×等)を記入)  (3)Excel上の特定セルにある数値と、特定URL上にある数値が合致しているかを確認  (4)上記(3)の合致状況を○×等でExcel内に記入  ※(1)~(4)の流れを、複数の特定URLについて同時(or順番)に行いたいです。 調べたところ、その特定のWEBサイト上では、調べたいデータは以下のように記載されていました。 「<div class="item-price"><span class="denominator">$</span>219.99</div>」 この内、「$219.99」というデータがExcel上の数値と合致しているか、確認したいデータです。 大変お手数をお掛け致しますが、ご教示頂けますようお願い致します。

みんなの回答

  • oka_me
  • ベストアンサー率86% (26/30)
回答No.1

とりあえず、単一のURLのみで確認する方法ですが (繰り返し処理に関しては上手いことアレンジしてみてください) ☆質問文にある「特定セル」は仮にA1とします ☆URLの存否はB2、合致判定はC2に出力します ☆IE8以前の場合は多分上手く動作しません。少し書き換える必要があります。。 ☆ページ内に同一クラス名(item-price)は複数存在しないもの(単一)とします Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long) Sub test() Const READYSTATE_COMPLETE As Long = 4 Dim objie As Object, p As Object Dim i As Long Dim checkurl As String checkurl = "http://xxxx.com/xxxx/index.htm" 'URLを指定 Range("B2:C2").ClearContents Set p = CreateObject("Msxml2.ServerXMLHTTP") p.Open "GET", checkurl, False p.send If p.Status = 404 Then Range("B2") = "×" Exit Sub Else Range("B2") = "○" End If Set objie = CreateObject("InternetExplorer.Application") With objie .Visible = True .navigate checkurl Do While (.Busy = True) Or (.ReadyState <> READYSTATE_COMPLETE) DoEvents Loop End With Call Sleep(3000) If objie.document.getElementsByClassName("item-price")(0).innertext = Range("A1").Value Then Range("C2") = "○" Else Range("C2") = "×" End If Set p = Nothing Set objie = Nothing End Sub ※URLの存否確認の方法に関しては以下の質問ページを参考にさせて頂きました。 http://okwave.jp/qa/q5058816.html

kurakura48
質問者

お礼

さっそくのご回答をありがとうございます! 内容をご確認させて頂きましたら、またコメントを付けさせて頂きます。 お忙しい中、本当にありがとうございます。

関連するQ&A

  • エクセルのデータを自動的にWebに入れるには?

    いつもお世話になっています。 エクセルのデータをホームページに入れる時、決まった動作の繰り返しをするので、これを自動化することは出来ないでしょうか?VBAだとエクセル内部でしか出来ないのではないでしょうか? こういう操作です。 エクセルの場面でセルをCtrl+Cでコピーして、リターンキーを押して(セルが次のセルへ飛ぶ)、Alt+TabでWeb画面へ移動して、Ctrl+VでWebにエクセルの数値を貼り付けて、Tabキーを数回(回数は一定)押して次の入力欄へ移動させて、Alt+Tabでエクセル画面へ戻って、またCtrl+Cでコピー。 この繰り返しでエクセルの数値をWeb画面に入力するのです。このような定型的な動作はコンピューターが得意とするはずですが、VBAでは実現できない(と思う・・。エクセルの外部にまで操作出来るのでしょうか?)。 何か方法があるはずですが、ご存知の方がいらっしゃればよろしくお願いしたします。

  • エクセルで文字が入っているセルを確認する方法は?

    エクセルで、条件にあてはまった場合、「合致」と表示するように計算式を作りました。 その上で、以下のことを調べたいと思っています。 (1)「合致」と表示されているセルがどこにあるかを確認する。 (2)「合致」と記載されている件数を確認する。 (1)については、「検索」機能を用いて、行なってみたところ、実際に「合致」と表示された セルだけでなく、計算式に「合致」という文字が入力されている関係で、全てのセルが 該当してしまい、どこにあるかを素早くみつけることができませんでした。 (2)については、文字をカウントするため、counta関数を使ってみましたが、条件式が 全てのセルに入っているため、意味がありませんでした。別のセルに、「合致」という 文字があれば1を表示させるようにすれば計算はできますが、そうしたことをせずに 表示されている数だけを計算できる方法があれば、教えていただけると助かります。 よろしくご教授願いますm(__)m

  • エクセルでのリンク

    エクセルのワークシートの特定のセルに、ウェブ上の特定のデータを自動的に表示させるリンクの方法はありますか? 例えば、エクセルのA1のセルに、ヤフーファイナンスのページの株価を表示させることです。 これができるとして、データの更新の方法はどのようにしたらよいのでしょうか?? よろしくお願いします。

  • VB2008 Excelにデータ出力

    VB2008で、Timerで更新されるTextBoxの数値をExcelに順次出力する(セルA1に出力したら、次の値をA2に出力、・・・)プログラムを作りたいのですが、どんなソースにすればよいか分かりません。 Web検索もしましたが、キーワードが悪かったのか、適したサンプルも見つかりませんでした。 VB Form上のTimerでTextBoxの数値を更新する部分はできていますので、指定のフォルダ内のExcelを開いてデータをセルに出力する方法を教えてください。 参考URLなどもあれば教えてください

  • VBA エクセルの表をHTML形式のテーブルに変換

    https://tonari-it.com/vba-html-table/ 上記のマクロではCSSが使えない簡単なテーブルタグです。 <table> <tr> <td class=“CSS1”>1</td> <td> <div class=“CSS2”> <div class=“CSS3”> <img> <span class=“CSS4” style="background-image: url(images/abc.png);"></span> </div> <div class=“CSS5”> <div class=“CSS6”>山田 太郎</div> <div class="CSS7”><span>東京</span></div> </div> </div> </td> <td class="CSS8>2000</td> <td class="CSS9”>2000</td> <td class="CSS9”>2000</td> <td class="CSS9”>6000</td> </tr> </table> というふうにやりたいのですが、どうしたら良いでしょうか?

  • Excelでセル内の「"」をテキストとして認識させたい

    前回「"」を関数の""内で認識させる方法を伺ったのですが、 それを複数のセルで作成し、最後にまとめてコピペすると 「"」が「""」になってしまいます。 これを解消する方法はないでしょうか。 B1:<span class="text1">A1</span> B2:<span class="text1">B1</span> で="<div>"&B1&B2&"</div>"などにすると表示上は問題ないのですが、 エディタにコピペすると「"」が「""」になっております。 これを解消する方法はりますでしょうか。

  • エクセルのCSVデータ内のカンマを表示させたい

    CSVデータを作成してネットショップに一括登録したいのですが データ内のカンマがページ上で表示されず困っています。 セル内にどのように記入したら表示されるのでしょうか? 例) <br>■価格:<span class="aaa"> 1,400円</span><br>■.... ....の先はまだまだ続きます。 1,400円の部分のカンマが普通に書いただけじゃ反映されません。。 ちなみにエクセル2007を使用しています。 どうぞよろしくお願いします。

  • jQuery?でサイト上の特定の数字をいじりたい

    サイト上にある特定の数字に+1や-1などをして、自動ですべて書き換えたいです。 たとえば、 <span class="number">1000</span> <span class="number">1003</span> <span class="number">1017</span> というのが、そこらじゅうに散らばっているとして、 それら全てを-1して、999、1002、1016に書き換えるにはどうすれば良いでしょうか? よろしくおねがいします。

  • Excel データ操作

    Excel データ操作 ExcelでA列とB列というデータがあります。 B列の特定のセルに黄色く印をつけます。次に黄色く印をつけたデータを左隣のA列のセルに移すこととしたい。どのような操作すればできますか。 (私としては、まず移動したいものを決めて確認しておいて移しを一度に実行したいのです。)

  • excel内のデータの検索

    メーカーに勤務しています。商品の検査データをexcelで入力して保存しており、そのファイル数が数千個になります。今回そのファイル内のある部分のデータ(すべて同じセルに入力してある4桁の数値データ)がある値以下になっているものを抽出しなければなりません。明日の夕方までにやり遂げる必要があるため、1つ1つファイルを開いて確認すると間に合いません。そのため、ファイルを開くことなく自動で検索する方法があればと考えています。非常に困っており、方法を是非とも教えて頂ける様お願いします。

専門家に質問してみよう