• 締切済み

VBAでの外部データの取得について

ベトナムのホーチミン証券取引所のサイトから株価データを取得したいと思っております。 http://www.hsx.vn/hsx_en/Modules/Danhsach/SymbolDetail.aspx?type=S&MCty=HSI このページの「Date & news」とうタブにある株価の時系列データをVBAにて取得したいのですが、 長期間のデータの所得方法が分かりません。 このページに表示される1ヶ月間のデータならば取得できるのですが、 長期データを取得するにはどのようにすればいいのでしょうか。 宜しくお願いいたします。

みんなの回答

  • chaigon
  • ベストアンサー率50% (4/8)
回答No.2

なるほど。Webクエリという機能を始めて知りました。 確かに、該当サイトのグラフはURLを指定して切り替えることができないようですね。 VBAではないのですが、こんな方法があります。 1.欲しい期間のグラフを選択して、グラフを表示する。 2.C:\Documents and Settings\ユーザ名\Local Settings\Temporary Internet FilesにアクセスしてSymbolDetail.aspx?~という名前のファイルで最終アクセス日時が最新のものを探す。 3.そのファイルの右クリックメニューのプロパティを表示する 4.一番上にURLがあるのでコピーする。 上記のURLにアクセスすれば、欲しい期間のグラフを取得できます。他の期間のグラフが欲しい場合は、同じ操作をしてURLをコピーすればOKです。 ただし、このURLが変わるかもしれません。例えば、今日の「1ヶ月間のグラフ」のURLと、明日の「1ヶ月間のグラフ」のURLが変わるかもしれまんせ。今日と明日は変わらなくても、今日と1ヶ月後のURLが変わるかもしれません。もし、URLがずっと変わらない場合は、このやり方で取得したURLを使って、最新のグラフを見たいときにアクセスすればよいでしょう。 説明がかなりテキトウになってしまいましたが、あまりお役に立てなくてすみません。

  • chaigon
  • ベストアンサー率50% (4/8)
回答No.1

Excel VBAは割りと経験がありますが、ネットの情報にアクセスして情報を取得することはやったことがないので、基本わかりません。ただ、何かお役に立てればと思い質問させていただきます。 1ヶ月間のデータは取得できるのに、長期データを取得できないのですか?それは何故ですか?どのようにしてデータを取得しているのですか?

kazuya72
質問者

お礼

お返事ありがとうございます。私は初心者であり相談できる相手がいないため非常に助かります。 このサイト上に表示されている株価データが1ヶ月分だけなので、その部分しか取得できません。 YahooファイナンスだとURLを操作することにより1ページ目、2ページ目と変更して長期データを取得できるのですが、このサイトは株価データがJavaScriptで管理されているためそのような方法ができないのではないかと思います。 取得方法は、エクセルのwebクエリを使用しています。

関連するQ&A

  • 株価データ取得プログラム

    ヤフーなどから時系列の株価データを取得するプログラムを作りたいのですが、かいもく見当がつきません。 ヒント、参考URL等教えてください。 よろしくお願いします。

  • 株価のデータを取得したい

    自分でツールを作ったりすることが可能なように、 株価の生データを取得するためのプロトコルを 公開しているような組織、証券会社はありませんか? 無料、有料は問いません。 また、証券会社の場合、注文リクエストの仕様まで 公開しているところがあれば、それも知りたいです。 よろしくおねがいします。

  • EXCEL 外部データの取り込みからのページ取得(VBA)

    OS:WIN XP EXCEL2000使用 EXCELから簡易データ取得を行いたいとおもっています。 マクロ化しVBAをいじって複数のページデータを取得したいと考えています。 取得したいページのURLが ​http://hogehoge.com/0000XXX.html​ XXX部分が数字で001~100まで可変すると想定。 001~100までのデザインは同じ。 1~100までをそれぞれSHEET1~SHEET100までに貼り付けたいとおもっています。 その際に邪魔なA列と1~5行目を削除とする場合 どのような記述に変更すればよいのでしょうか。 ページの取得までは出来るのですが VBAがあまりよくわからないので質問させていただきました。 宜しくお願い致します。 下記001.htmlだけを取得したものになります。 With ActiveSheet.QueryTables.Add(Connection:="URL;​http://hogehoge.com/0000001.html",​ _ Destination:=Range("A1")) .Name = "ExternalData_1" ~800文字に収まらないため中略~ .WebDisableDateRecognition = False .Refresh BackgroundQuery:=False End With Columns("A:A").Select Selection.Delete Shift:=xlToLeft Rows("1:5").Select Selection.Delete Shift:=xlUp Range("A1").Select End Sub

  • Excel VBA で Webからデータを取得する方法

    Excel VBAを使ってWebページからデータを 取得する方法を探しています。 最初に、そのWebページの認証ページにIDをパスワード をVBAから自動で送信したいのですが、方法が全く わかりません。 認証ページはJavascriptを利用したページです。 どちらかご存知の方がおられましたら、 ご教授ください。

  • VBA:webページのデータ取得

    お世話になります。 現在、VBAを勉強しており、webページのデータを取得するツールを個人的に開発しております。開発中に不明点がでましたのでご質問いたします。 ※インターネット上で一通り探しましたが、解決策は見つかりませんでした。 現状、HTMLファイルのデータは取得はできております。(ソースといわれるものです) ただ、ソース上にはjavascriptで記述されているところが多々あり、javascript側でHTMLを生成している場合、このデータを取得することができません。 ソースではなく、実際にwebページに表示されているHTML・CSSなどを取得したいと考えておりますが、取得する方法は存在するのでしょうか? もしご存知でしたらご教示いただきたく思います。 以上、よろしくお願いいたします。

  • エクセルで株価&財務データを取得するVBAについて

    様々なサイトを参考にして、独自のVBAを作ろうと思っています。 しかし、ダウンロードした株価データ取得のエクセルにVBを開こうと思ったが、パスワードが掛けられており、内容が確認できませんでした。 私がやりたい事は 1、ヤフーより株価データ、インフォシークより財務データを取得する 2、シートのA行にコード(複数)を入力して、実行ボタンを押すと、B以降に銘柄・株価(始値・高値・安値・終値)のデータが自動的に入力 3、株価データの後の行以降は、財務データが自動的に入力(発行済み株式数、当期純利益3年分など)   A   B    C  D…  F…      1 コード 銘柄   始値 高値… 発行済み株式数… 2 1885  ○○会社 358 457   3 2548  ××会社 369 587 4 3647  ●●会社 357 598 ようなシートが自動的に入力できるようなマクロサンプルが欲しいです。 これだけ出来れば、理論株価が計算しやすくなり助かるという気持ちがあります。 そういうマクロはあるのでしょうか・・。

  • ヤフーファイナンス 株価時系列データ EXCEL VBA データ取り込み 

    ヤフーファイナンスの株価時系列データを、EXCELのVBAを使って、1回のマクロ操作で複数銘柄EXCELに取り込みたいと考えています。 EXCEL Sheet1のA1、A2、A3、、、に取り込みたい銘柄コードを記入し、マクロを走らせると同ブック内で銘柄コード別にシートが出来上がるのが理想です。 データ取得期間は”デイリー”で”1999/1/1~2012/1/1”を考えています。 よろしくお願いします。

  • リアルタイムで 株価取得したい!!

    楽天証券 RSS で五分足の時系列データをエクセルに自動収集したいと思っています。 おそらくVBA を駆使するのだろうと思いますが、VBA初心者なのでかなり苦しんでいます。 こんな私を、お助けください!!

  • アクティブタブの名前(Caption)を取得したい

    アクセス2003です。 フォームにコマンドボタンとタブを設置しています。 そのタブにはページが5つあります。 コマンドボタンを押すと Msgboxで一番上になっているアクティブなタブの名前を取得したいのですが可能でしょうか? もし、タブの中でページ1を最後に選択し、コマンドボタンを押すと 「ページ1です」 とVBAで取得するにはどうすればいいのでしょうか? よろしくお願い致します。

  • VBA(excel)でグラフのデータ範囲の取得

    excel2010の VBA利用者です。 グラフが書いてあって(種類は3D等高線グラフ)、 その元になるデータ範囲は 例えば ActiveChart.SetSourceData Source:=Range("Sheet1!$A$1:$D$10") のようにすれば、シート1のRange("A1:D10")の範囲が設定できます。  では、  これの 逆に 設定でなくて、取得が出来ませんでしょうか?  つまり 上記の場合でしたら、範囲"A1:D10"を取得して、変数に代入したいのです。 もし、範囲としての取得が難しいならば、最低限 グラフの現在のデータ範囲の矩形範囲の縦横の、行数、列数の 取得だけでもなんとかしたいのですが、 何か方法はないでしょうか? 縦横数百セルの大き目の範囲を相手にしたいので、 Formulaプロパティで系列ごとに取得していく方法では煩雑になるので 何とかもっと 簡便な方法が無いものかと思っております 御教授のほど、よろしくお願いいたします。

専門家に質問してみよう