<?xml version="1.0" encoding="UTF-8" ?>
<rdf:RDF
  xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
  xmlns="http://purl.org/rss/1.0/"
  xmlns:dc="http://purl.org/dc/elements/1.1/"
  xmlns:content="http://purl.org/rss/1.0/modules/content/">

  <channel rdf:about="http://keizann.blog.shinobi.jp/RSS/100/">
    <title>EXCEL VBAで あくせく</title>
    <link>http://keizann.blog.shinobi.jp/</link>
    <atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://keizann.blog.shinobi.jp/RSS/" />
    <atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" />
    <description></description>
    <dc:language>ja</dc:language>
    <dc:date>2022-03-13T08:31:24+09:00</dc:date>
    <items>
    <rdf:Seq>
      <rdf:li rdf:resource="http://keizann.blog.shinobi.jp/-download-/%E4%BF%A1%E7%94%A8%E5%8F%96%E5%BC%95%E3%80%80ver2.4" />
      <rdf:li rdf:resource="http://keizann.blog.shinobi.jp/-download-/%E6%A0%AA%E5%AF%8C%E5%A4%A2%E5%A3%AB-%E3%81%8B%E3%81%B6%E3%81%A8%E3%82%80%E3%81%97-%E3%80%80ver3.2" />
      <rdf:li rdf:resource="http://keizann.blog.shinobi.jp/-download-/%E6%A0%AA%E4%BE%A1%E5%8F%8E%E9%9B%86%20ver1.8" />
      <rdf:li rdf:resource="http://keizann.blog.shinobi.jp/-yahoovba-/yahoo%E3%83%95%E3%82%A1%E3%82%A4%E3%83%8A%E3%83%B3%E3%82%B9%E3%81%8B%E3%82%89%E6%99%82%E7%B3%BB%E5%88%97%E3%83%87%E3%83%BC%E3%82%BF%E3%81%AE%E5%8F%96%E5%BE%97" />
      <rdf:li rdf:resource="http://keizann.blog.shinobi.jp/-yahoovba-/%E6%8E%A5%E7%B6%9A%E6%99%82%E9%96%93%E6%B8%AC%E5%AE%9A" />
      <rdf:li rdf:resource="http://keizann.blog.shinobi.jp/-yahoovba-/yahoo%E3%83%95%E3%82%A1%E3%82%A4%E3%83%8A%E3%83%B3%E3%82%B9%E3%81%8B%E3%82%89%E6%A0%AA%E4%BE%A1%E6%83%85%E5%A0%B1%E3%81%AE%E5%8F%96%E5%BE%97" />
      <rdf:li rdf:resource="http://keizann.blog.shinobi.jp/-yahoovba-/yahoo%E3%83%95%E3%82%A1%E3%82%A4%E3%83%8A%E3%83%B3%E3%82%B9%E3%81%8B%E3%82%89%E6%99%82%E7%B3%BB%E5%88%97%E6%83%85%E5%A0%B1%E3%81%AE%E5%8F%96%E5%BE%97" />
      <rdf:li rdf:resource="http://keizann.blog.shinobi.jp/-yahoovba-/yahoo%E3%83%95%E3%82%A1%E3%82%A4%E3%83%8A%E3%83%B3%E3%82%B9%E3%81%8B%E3%82%89%E6%A0%AA%E4%BE%A1%E8%A9%B3%E7%B4%B0%E6%83%85%E5%A0%B1%E3%82%92%E5%8F%96%E5%BE%97" />
      <rdf:li rdf:resource="http://keizann.blog.shinobi.jp/-kabutomushi-/%E6%A0%AA%E5%AF%8C%E5%A4%A2%E5%A3%AB%E4%BF%A1%E7%94%A8%E5%8F%96%E5%BC%95%E3%80%80%E3%82%B5%E3%83%9D%E3%83%BC%E3%83%88" />
      <rdf:li rdf:resource="http://keizann.blog.shinobi.jp/excel%20vba/%E9%87%8D%E8%A4%87%E3%81%99%E3%82%8B%E3%83%87%E3%83%BC%E3%82%BF%E3%81%AE%E5%89%8A%E9%99%A4" />
    </rdf:Seq>
    </items>
  </channel>

  <item rdf:about="http://keizann.blog.shinobi.jp/-download-/%E4%BF%A1%E7%94%A8%E5%8F%96%E5%BC%95%E3%80%80ver2.4">
    <link>http://keizann.blog.shinobi.jp/-download-/%E4%BF%A1%E7%94%A8%E5%8F%96%E5%BC%95%E3%80%80ver2.4</link>
    <title>信用取引　Ver2.4</title>
    <description>　本EXCELは、信用取引を行うトレーダーを対象として作成しています。
ご自身が契約しているインターネット証券会社の取引結果を、このEXCEL表で管理する事を目的としています。

　信用取引では保証金と保証金率の関係や持株下落により保証金率が低下していく事など、証券会社の提供画面を見ているだけでは全...</description>
    <content:encoded><![CDATA[<div>　本EXCELは、信用取引を行うトレーダーを対象として作成しています。</div>
<div>ご自身が契約しているインターネット証券会社の取引結果を、このEXCEL表で管理する事を目的としています。</div>
<div></div>
<div>　信用取引では保証金と保証金率の関係や持株下落により保証金率が低下していく事など、証券会社の提供画面を見ているだけでは全くわかりません。</div>
<div>またどこまで行けば追証がでるのかという不安ばかりで具体的な株価の数値を知る事ができない悩みからこの株富夢士 信用取引を作成しました。</div>
<div></div>
<div>　株価のシュミレーション値を設定する機能があり、株価の設定値を上下に変化させて、保証金率の変化や追証金の発生する株価をあらかじめ知る事ができます。</div>
<div>証券会社のページでは信用買方金利や貸株料は、一括でしか見る事ができませんが、本シートでは毎日変化している信用買方金利や貸株料を注文毎に確認する事ができます。</div>
<div>　</div>
<div>　注意事項：yahooはスクレイピング(Program等を用いて機械的に掲載情報を取得)する事を禁止しました。<br />
　<br />
　</div>
<div>●使い方</div>
<div></div>
<div>　初期設定や手持ち株の登録・手持ち資金の登録などは、添付の信用取引EXCEL説明書を参照してください。</div>
<div>&nbsp;&nbsp;</div>
<div>　起動時に「マクロが使用できません。セキュリティレベルが高に設定されています」というエラーが発生する場合。</div>
<div>ご使用しているパソコンのEXCELのマクロのセキュリティレベルが、「最高」又は「高」に設定されていますので、下記の手順でセキュリティレベルを、「中」に設定変更してください。</div>
<div>&nbsp;EXCELのみを起動して、「ツール」&rarr;「オプション」を開く。</div>
<div>「セキュリティタブ」を選択して、「マクロセキュリティ」をクリックする。</div>
<div>「セキュリティレベル」タブの中の「中」を選択して「ＯＫ」を押し、「オプション」も「ＯＫ」を押しEXCELを閉じる。</div>
<div>その後は、本EXCELのマクロ起動が可能になります。</div>
<div></div>
<div>&nbsp; セキュリティ警告「コンテンツの有効化」が表示されたら、必ずクリックしてマクロが使用できる状態にしてください。&nbsp;</div>
<div></div>
<div></div>
<div>　このソフトはマクロが無効だと動作しません。</div>
<div>本EXCELを起動したときに表示されるウインドウで、「マクロの使用を有効にする」を必ず選択してください。</div>
<div><br />
<br />
　信用取引　Ver2.4<br />
　　&darr;<br />
　<a target="_blank" href="//keizann.blog.shinobi.jp/File/91788da2.zip" title=""><img src="//keizann.blog.shinobi.jp/Img/1396676283/" alt="" /></a> <br />
<br />
<br />
<br />
<br />
<br />
<br />

<div>－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－</div>
<div>
<div>2022.04.05 　Ver2.4　　信用取引 ver2.4 公開</div>
<div>　　1. 証券取引所の市場名称変更により市場名称修正。</div>
2022.03.12 　Ver2.3　　信用取引 ver2.3 公開</div>
<div>　　1. yahooの仕様変更により終値収集が出来なくなったので修正。</div>
<div>2021.04.19 　Ver2.2　　信用取引 ver2.2&nbsp; 公開</div>
<div>　　1. yahooの仕様変更により情報収集が出来なくなったので修正。</div>
<div>2017.03.31　Ver2.1 　　信用取引 Ver2.1&nbsp; 公開</div>
<div>&nbsp; &nbsp; 1. Yahooの仕様変更により情報収集ができなくなったので修正。&nbsp;</div>
<div>&nbsp; &nbsp; &nbsp; &nbsp;接続先URLを変更。</div>
<div>&nbsp; &nbsp; 2. 注文実行時の警告メーッセージがOFFにならない現象を修正。</div>
<div>2016.05.27　Ver2.0 　&nbsp; &nbsp; 信用取引 Ver2.0&nbsp; 公開</div>
<div>&nbsp; &nbsp; 1. 操作性を向上させるために表設計を見直し表示セルを必要最小限に削減。</div>
<div>&nbsp; &nbsp; 2. 警告メッセージの追加。</div>
<div>&nbsp; &nbsp; 3. 手数料・買方金利/貸株料を欄外に移動。</div>
<div>&nbsp; &nbsp; 4. 取扱い説明書作成。</div>
<div>2015.12.16　Ver1.0　　信用取引 Ver1.0 作成</div>
<div>　　1. 信用建注文の管理機能の作成</div>
<div>　　2. 新規建注文時の保証金額と保証金率の表示</div>
<div>　　3. 評価損が保証金に加算され保証金率が低下するしくみを組込み&nbsp;</div>
<div>　　4. 株価設定によるシュミレーション機能作成</div>
<div></div>
<div></div>
</div>]]></content:encoded>
    <dc:subject>ダウンロード</dc:subject>
    <dc:date>2022-04-05T10:02:01+09:00</dc:date>
    <dc:creator>keizann</dc:creator>
    <dc:publisher>NINJA BLOG</dc:publisher>
    <dc:rights>keizann</dc:rights>
  </item>
  <item rdf:about="http://keizann.blog.shinobi.jp/-download-/%E6%A0%AA%E5%AF%8C%E5%A4%A2%E5%A3%AB-%E3%81%8B%E3%81%B6%E3%81%A8%E3%82%80%E3%81%97-%E3%80%80ver3.2">
    <link>http://keizann.blog.shinobi.jp/-download-/%E6%A0%AA%E5%AF%8C%E5%A4%A2%E5%A3%AB-%E3%81%8B%E3%81%B6%E3%81%A8%E3%82%80%E3%81%97-%E3%80%80ver3.2</link>
    <title>株富夢士(かぶとむし)　Ver3.2</title>
    <description>　本EXCELは、株取引を始めたばかりの初心者の方や、中長期で現物株取引を行うトレーダーを対象として作成しています。
ご自身が契約しているインターネット証券会社の取引結果を、このEXCEL表で管理す事を目的としています。
手数料を含めた平均取得単価の演算や売却益の演算、損益率、税引き残高などを表形式...</description>
    <content:encoded><![CDATA[<div>　本EXCELは、株取引を始めたばかりの初心者の方や、中長期で現物株取引を行うトレーダーを対象として作成しています。</div>
<div>ご自身が契約しているインターネット証券会社の取引結果を、このEXCEL表で管理す事を目的としています。</div>
<div>手数料を含めた平均取得単価の演算や売却益の演算、損益率、税引き残高などを表形式で管理する事ができます。</div>
<div>このEXCEL表からインターネット証券会社に接続して、直接株式の売買を行う事は対応していません。</div>
<div>デイトレーダー向きではありません。信用取引には対応していません。</div>
<div></div>
<div>　株価情報収集シートは、Yahooファイナンスからリアルタイムで変化する株価をEXCEL表に取り込む事ができます。</div>
<div>収集できる銘柄数に制限はありませんが、収集速度が90～100件/1分程度のためあまり多くすると実用的ではありません。</div>
<div>1000件を設定すると収集時間はおよそ10分ぐらいと考えてください。</div>
<div></div>
<div>　注意事項：yahooはスクレイピング(Program等を用いて機械的に掲載情報を取得)する事を禁止しました。</div>
<div></div>
<div>●使い方</div>
<div></div>
<div>　初期設定や手持ち株の登録・手持ち資金の登録などは、添付の株富夢士説明書を参照してください。</div>
<div>説明書は、手数料をそのつど支払う契約の場合と、定額手数料契約で異なりますので、証券会社との契約により、いずれかを選択してください。</div>
<div></div>
<div></div>
<div>　起動時に「マクロが使用できません。セキュリティレベルが高に設定されています」というエラーが発生する場合。</div>
<div>ご使用しているパソコンのEXCELのマクロのセキュリティレベルが、「最高」又は「高」に設定されていますので、下記の手順でセキュリティレベルを、「中」に設定変更してください。</div>
<div>&nbsp;EXCELのみを起動して、「ツール」&rarr;「オプション」を開く。</div>
<div>「セキュリティタブ」を選択して、「マクロセキュリティ」をクリックする。</div>
<div>「セキュリティレベル」タブの中の「中」を選択して「ＯＫ」を押し、</div>
<div>「オプション」も「ＯＫ」を押しEXCELを閉じる。</div>
<div>その後は、本EXCELのマクロ起動が可能になります。</div>
<div></div>
<div></div>
<div>　セキュリティ警告「コンテンツの有効化」が表示されたら、必ずクリックしてマクロが使用できる状態にしてください。</div>
<div>&nbsp;</div>
<div>　このソフトはマクロが無効だと動作しません。</div>
<div>本EXCELを起動したときに表示されるウインドウで、「マクロの使用を有効にする」を必ず選択してください。</div>
<div><br />
<br />
<br />
　株富夢士　Ver3.2<br />
　　&darr;<br />
&nbsp;<a title="" href="//keizann.blog.shinobi.jp/File/a119acce.zip" target="_blank"><img alt="" src="//keizann.blog.shinobi.jp/Img/1396676283/" /><br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
</a>
<div>－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－</div>
<div>
<div>&nbsp;2022.04.05 Ver3.2　　株富夢士(かぶとむし) Ver3.2 公開</div>
<div>　証券取引所の市場名称変更により市場名称修正。　</div>
&nbsp;2022.03.12 Ver3.1　　株富夢士(かぶとむし) Ver3.1 公開</div>
<div>　Yahooファイナンスの仕様変更により、銘柄名、市場、終値収集が出来なくなったので修正。　</div>
<div>2021.04.10&nbsp; Ver3.0　　株富夢士(かぶとむし) Ver3.0 公開</div>
<div>　Yahooファイナンスの仕様変更により、全情報収集が出来なくなったので修正。</div>
<div>　日経平均(998407)、TOPIX(998405)は、サポートされなくなったので収集できません。</div>
<div>2017.03.31&nbsp; Ver2.9　　株富夢士(かぶとむし)　Ver2.9 公開</div>
<div>1. Yahooの仕様変更により情報収集ができなくなったので更新。</div>
<div>&nbsp; &nbsp;接続先URL部分の修正</div>
<div>2016.05.13&nbsp; Ver2.8　　株富夢士(かぶとむし)　Ver2.8 公開</div>
<div>1. 収集株価表示にシュミレーション欄を追加</div>
<div>2. 設定欄に損切値欄を追加</div>
<div>3. 警告メッセージを追加(売却・損切・買入)</div>
<div>4. セル表示部を必要最低限にした。手数料欄などは非表示とした。</div>
<div>5. 新VBAコマンドを使用したので、必須ソフトは EXCEL 2007以上のバージョンとした。</div>
<div>2016.04.12&nbsp; ver2.7　　株富夢士(かぶとむし)　Ver2.7 公開</div>
<div>1. Yahooファイナンスの仕様変更時に、銘柄名・市場欄に大量データが入る事を防止。</div>
<div>2. 従来の設定値は、持株が無いと設定できなかったが、新規に買いたい銘柄でも買入値を設定して監視できる様にした。</div>
<div>3. 株価検索シートでストップ高・ストップ安の出た銘柄は高値/安値が表示されない不具合を修正。　&nbsp;</div>
<div>4. 株価検索シートの売買サイン欄がEXCEL2010から誤表示する様になった事を修正。</div>
<div>5. 定額手数料処理を、バッチレス処理に統一。</div>
<div>6. NISA対応の説明書を記入。</div>
<div>7. 取引一覧表の証券コードの記入もれ防止機能を追加。</div>
<div>8. 株価の小数点１桁までの対応を行う。</div>
<div>2014.06.11&nbsp; Ver2.6　　株富夢士(かぶとむし)　Ver2.6 公開</div>
<div>1. Yahooファイナンスの仕様変更により、全部の情報収集ができなく</div>
<div>　 なったための修正。</div>
<div>2014.05.21&nbsp; Ver2.5　　株富夢士(かぶとむし) Ver2.5 公開&nbsp;</div>
<div>1. Yahooファイナンスの仕様変更により、「市場」情報が収集できなく</div>
<div>　 なったため修正。</div>
<div>2014.04.25&nbsp; &nbsp;Ver2.4　　株富夢士(かぶとむし) Ver2.4 公開&nbsp;</div>
<div>1. Yahooファイナンスの仕様変更により、1株利益(EPS)、1株資産(BPS)が</div>
<div>　 収集できなくなったため更新。</div>
<div>2. 株価情報収集シートの、年初来安値・年初来高値のデータが</div>
<div>　 安値更新・高値更新時に０になる不具合を修正。</div>
<div>3. 株富夢士のプログラムを、株価情報収集シートの記述と合わせる。</div>
<div>2014.03.15　　Ver2.3　　株富夢士(かぶとむし) Ver2.3 公開&nbsp;</div>
<div>1. 株価情報収集シートに、株価収益率(PER)、資産倍率(PBR)、1株利益(EPS)、<br />
1株資産(BPS)、１株配当の収集機能を追加。</div>
<div>2. 収集時間が長くなったので、キャンセルボタンを追加。</div>
<div>3. 株価収集件数の最大を上場株式全件(9000件)に変更。</div>
<div>2012.08.03&nbsp; &nbsp;Ver2.2　　株富夢士(かぶとむし) Ver2.2 公開</div>
<div>1. Yahoo ファイナンスがリアルタイム株価に更新になった。</div>
<div>　 これにより、Home-pageが変更となったため、以前のバージョンでは、</div>
<div>　 情報収集ができなくなった。</div>
<div>2012.02.27&nbsp; Ver2.1　　株富夢士(かぶとむし) Ver2.1 公開</div>
<div>1. 株価収集ボタンで取引一覧表の銘柄名・市場をYahooから取得する様に変更。</div>
<div>2. 買入れ時の資産一覧表への追加処理の変更。</div>
<div>2011.10.10&nbsp; Ver2.0　　株富夢士(かぶとむし) Ver2.0 公開&nbsp; &nbsp;&nbsp;</div>
<div>1. Yahoo ファイナンスより、株価情報の収集機能を追加。</div>
<div>2. 手数料をそのつど支払い方式と定額手数料の２種類に分割して、</div>
<div>　 定額手数料処理マクロを新規作成。</div>
<div>&nbsp; &nbsp;定額手数料処理に、証券会社バッチ処理とバッチレス処理を作成。</div>
<div>3. 定額手数料契約のために、バッチ処理ボタンを追加。</div>
<div>4. 初期設定時の持ち株登録時に、取引一覧表から資産一覧表へ書き込む処理を追加。</div>
<div>5. 株価収集ボタンで資産一覧表の銘柄名を取引一覧表にコピーする機能を追加。</div>
<div>6. 行クリア処理を追加。</div>
<div>7. 株価検索シートのマクロの銘柄登録上限値を600件に変更。</div>
<div>2007.03.30　Ver1.0　　株富夢士(かぶとむし) Ver1.0 公開</div>
<div></div>
</div>]]></content:encoded>
    <dc:subject>ダウンロード</dc:subject>
    <dc:date>2022-04-05T09:56:00+09:00</dc:date>
    <dc:creator>keizann</dc:creator>
    <dc:publisher>NINJA BLOG</dc:publisher>
    <dc:rights>keizann</dc:rights>
  </item>
  <item rdf:about="http://keizann.blog.shinobi.jp/-download-/%E6%A0%AA%E4%BE%A1%E5%8F%8E%E9%9B%86%20ver1.8">
    <link>http://keizann.blog.shinobi.jp/-download-/%E6%A0%AA%E4%BE%A1%E5%8F%8E%E9%9B%86%20ver1.8</link>
    <title>株価収集 Ver1.8</title>
    <description>Yahooファイナンスに接続して、株価情報をEXCEL表に取り込む事ができます。
銘柄毎に、銘柄名・市場・単元株・始値・高値・安値・終値・前日比・出来高
・年初来安値・年初来高値・株価収益率(PER)・純資産倍率(PBR)・１株利益(EPS)
・１株株主資産(BPS)・１株配当・最低購入金額などのデ...</description>
    <content:encoded><![CDATA[Yahooファイナンスに接続して、株価情報をEXCEL表に取り込む事ができます。<br />
銘柄毎に、銘柄名・市場・単元株・始値・高値・安値・終値・前日比・出来高<br />
・年初来安値・年初来高値・株価収益率(PER)・純資産倍率(PBR)・１株利益(EPS)<br />
・１株株主資産(BPS)・１株配当・最低購入金額などのデータを収集します。<br />
収集したい銘柄の証券コードを記入して、株価収集ボタンを押せば、<br />
Yahooファイナンスから情報を収集してくれます。<br />
証券コードの登録件数に制限は設けていませんが、１件あたりの収集に<br />
約0.5秒から1.0秒かかるので、あまり多すぎると実用的ではありません。<br />
おおよその目安として、100件/1分程度で考えてください。<br />
<br />
　注意事項：yahooはスクレイピング(Program等を用いて機械的に掲載情報を取得)する事を禁止しました。<br />
<br />
<br />
<br />
株価情報収集 Ver1.8<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &darr;　　<br />
&nbsp; <a title="" href="//keizann.blog.shinobi.jp/File/7b0f57ac.zip" target="_blank"><img alt="" src="//keizann.blog.shinobi.jp/Img/1396676283/" /></a><br />
<br />
<br />
2022.04.05 Ver1.8公開<br />
　証券取引所の市場名称変更により、市場名称修正。<br />
2022.03.12 Ver1.7公開<br />
　yahooファイナンスの仕様変更により終値の収集が出来なくなったので修正。<br />
2021.04.25&nbsp; Ver1.6公開<br />
　Yahooファイナンスの仕様変更により情報収集ができなくなったので修正。<br />
2017.4.01　Ver1.5公開<br />
　Yahooファイナンスの仕様変更により情報収集ができなくなったので修正。<br />
　接続先URLの変更。<br />
2016.4.12 Ver1.4公開<br />
　Office2013より売買サインの表示が誤表示する様になったので修正。<br />
　ストップ高/ストップ安が出た銘柄の高値/安値がゼロになる不具合を修正。<br />
2014.6.12&nbsp;Ver1.3公開<br />
　Yahooファイナンスの仕様変更により、全情報が収集できなくなったので修正<br />
2014.5.21&nbsp;&nbsp; Ver1.2公開<br />
　Yahooファイナンスの仕様変更により「市場」が取得できなくなったので修正。<br />
2014.4.25　Ver1.1公開<br />
　Yahooファイナンスの仕様変更により、１株利益(EPS)、１株株主資産(BPS)が<br />
　収集できなくなったので修正。<br />
2014.4.05　Ver1.0公開]]></content:encoded>
    <dc:subject>ダウンロード</dc:subject>
    <dc:date>2022-04-05T09:45:58+09:00</dc:date>
    <dc:creator>keizann</dc:creator>
    <dc:publisher>NINJA BLOG</dc:publisher>
    <dc:rights>keizann</dc:rights>
  </item>
  <item rdf:about="http://keizann.blog.shinobi.jp/-yahoovba-/yahoo%E3%83%95%E3%82%A1%E3%82%A4%E3%83%8A%E3%83%B3%E3%82%B9%E3%81%8B%E3%82%89%E6%99%82%E7%B3%BB%E5%88%97%E3%83%87%E3%83%BC%E3%82%BF%E3%81%AE%E5%8F%96%E5%BE%97">
    <link>http://keizann.blog.shinobi.jp/-yahoovba-/yahoo%E3%83%95%E3%82%A1%E3%82%A4%E3%83%8A%E3%83%B3%E3%82%B9%E3%81%8B%E3%82%89%E6%99%82%E7%B3%BB%E5%88%97%E3%83%87%E3%83%BC%E3%82%BF%E3%81%AE%E5%8F%96%E5%BE%97</link>
    <title>Yahooファイナンスから時系列データの各項目取得</title>
    <description>Yahooファイナンスの時系列データページ
赤で囲んだ部分が収集情報の各項目

Yahooファイナンスから時系列情報を受け取って比較用のcmpTextを作成
した後、個々の数値情報を抜き取る処理です。
ここでは、各銘柄の時系列情報のページから４日分を抜き取っています。
Yahooファイナンスの時系列...</description>
    <content:encoded><![CDATA[<p>Yahooファイナンスの時系列データページ<br />
赤で囲んだ部分が収集情報の各項目<br />
<a title="" href="//keizann.blog.shinobi.jp/File/toyota_12.jpg" target="_blank"><img width="392" height="298" alt="" src="//keizann.blog.shinobi.jp/Img/1396659305/" /></a><br />
Yahooファイナンスから時系列情報を受け取って比較用のcmpTextを作成<br />
した後、個々の数値情報を抜き取る処理です。<br />
ここでは、各銘柄の時系列情報のページから４日分を抜き取っています。<br />
Yahooファイナンスの時系列情報ページは、PM7:00以降になると、<br />
本日分の情報が、最新情報として反映されます。<br />
このため、本日＋過去３日分＝４日分を収集しています。</p>
<p>－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－<br />
Dim syCode&nbsp;&nbsp;&nbsp;&nbsp; As Integer<br />
Dim strText&nbsp;&nbsp;&nbsp; As String<br />
Dim wRow&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; As Integer<br />
Dim cKAZU&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; As Integer<br />
Dim dKAZU&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; As Integer<br />
Dim jData&nbsp;&nbsp;&nbsp; As Variant<br />
Dim kData&nbsp;&nbsp;&nbsp; As Variant<br />
Dim kabD&nbsp;&nbsp;&nbsp;&nbsp; As Variant<br />
Dim kabNx&nbsp;&nbsp;&nbsp; As Variant<br />
Dim clmU&nbsp;&nbsp;&nbsp;&nbsp; As Integer</p>
<p>&nbsp;If syCode = Cells(wRow,4) Then<br />
&nbsp;&nbsp;&nbsp; Cells(wRow, 4).Select<br />
&nbsp; '【銘柄名】　取得<br />
&nbsp; &nbsp; &nbsp;strText = GetText(cmpText, "&lt;meta charset", "&lt;/head&gt;")<br />
&nbsp; &nbsp; &nbsp;strText = GetText(strText, "&lt;title&gt;", "【")<br />
&nbsp; &nbsp; &nbsp;strText = Left(strText, 16)&nbsp; &nbsp; '先頭より16文字を抜き取り<br />
&nbsp; &nbsp; &nbsp;Cells(wRow,3) = strText</p>
<p>&nbsp; '【市場】　取得<br />
&nbsp; &nbsp; &nbsp;strText = GetText(cmpText, "&lt;main class", "&lt;/main")<br />
&nbsp; &nbsp; &nbsp;strText = GetText(strText, "&lt;section class", "&lt;/header&gt;")<br />
&nbsp; &nbsp; &nbsp;strText = GetText(strText, "&lt;div class=", "&lt;header class")<br />
&nbsp; &nbsp; &nbsp;If InStr(1, strText, "button type") &gt; 0 Then<br />
&nbsp; &nbsp; &nbsp; &nbsp; If InStr(1, strText, "東証1部") &gt; 0 Then<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; strText = "東証1部"<br />
&nbsp; &nbsp; &nbsp; &nbsp; ElseIf InStr(1, strText, "東証2部") &gt; 0 Then<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; strText = "東証2部"<br />
&nbsp; &nbsp; &nbsp; &nbsp; ElseIf InStr(1, strText, "東証JQS") &gt; 0 Then<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; strText = "東証JQS"<br />
&nbsp; &nbsp; &nbsp; &nbsp; ElseIf InStr(1, strText, "東証JQG") &gt; 0 Then<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; strText = "東証JQG"<br />
&nbsp; &nbsp; &nbsp; &nbsp; End If<br />
&nbsp; &nbsp; Else<br />
&nbsp; &nbsp; &nbsp; &nbsp; strText = GetText(strText, "&lt;span class", "&lt;div id=")<br />
&nbsp; &nbsp; &nbsp; &nbsp; strText = GetText(strText, "&gt;", "&lt;/span&gt;")<br />
&nbsp; &nbsp; End If<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Cells(wRow,5) = strText</p>
<p>'&nbsp; &nbsp;If Cells(wRow,4) = 998407 Or Cells(wRow,4) = 998405 Then<br />
'&nbsp; &nbsp; &nbsp; strText = GetText(cmpText, "&gt;終値&lt;/th&gt;" &amp; Chr(10) &amp; "&lt;/tr&gt;", "&lt;/table&gt;")<br />
'&nbsp; &nbsp;Else<br />
'&nbsp; &nbsp; &nbsp; strText = GetText(cmpText, "調整後終値*&lt;/th&gt;" &amp; Chr(10) &amp; "&lt;/tr&gt;", "&lt;/table&gt;")<br />
'&nbsp; &nbsp;End If<br />
'&nbsp; &nbsp; &nbsp; &nbsp;strText = WorksheetFunction.Clean(strText)<br />
'&nbsp; &nbsp; &nbsp; &nbsp;strText = Replace(strText, "&lt;tr&gt;", "", 1)<br />
'&nbsp; &nbsp; &nbsp; &nbsp;strText = Replace(strText, "&lt;td&gt;", "", 1)<br />
'&nbsp; &nbsp; &nbsp; &nbsp;jData = Split(strText, "&lt;/tr&gt;", , vbTextCompare)<br />
'&nbsp; &nbsp;For cKAZU = LBound(jData) To 3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 　　　　　&nbsp;&nbsp; '4日分のデータを取得<br />
'&nbsp; &nbsp; &nbsp; &nbsp;kData = jData(cKAZU)<br />
'&nbsp; &nbsp; &nbsp; &nbsp;kabD = Split(kData, "&lt;/td&gt;", , vbTextCompare)<br />
'&nbsp; &nbsp; &nbsp;For dKAZU = 1 To 6&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '日付を除いた６項目データを取得<br />
'&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;kabNx = kabD(dKAZU)<br />
'&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;clmU = 5 + (cKAZU * 6) + dKAZU<br />
'&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Cells(wRow, clmU) = kabNx <br />
'&nbsp; &nbsp; &nbsp;Next<br />
'&nbsp; &nbsp;Next<br />
' Else<br />
'&nbsp; &nbsp; &nbsp;For cKAZU = 5 To 29<br />
'&nbsp; &nbsp; &nbsp; &nbsp; Cells(wRow, cKAZU).ClearContents<br />
'&nbsp; &nbsp; &nbsp;Next<br />
'&nbsp; &nbsp; &nbsp; &nbsp; Cells(wRow, 3).ClearContents<br />
' End If<br />
End Sub<br />
－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－<br />
&nbsp;Public Function GetText(prmAllText As String, prmStrText, prmEndText)<br />
&nbsp;&nbsp;&nbsp; Dim wStrNo&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; As Long<br />
&nbsp;&nbsp;&nbsp; Dim wEndNo&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; As Long<br />
&nbsp;&nbsp;&nbsp; wStrNo = InStr(1, prmAllText, prmStrText) + Len(prmStrText)<br />
&nbsp;&nbsp;&nbsp; wEndNo = InStr(wStrNo, prmAllText, prmEndText)<br />
&nbsp;&nbsp;&nbsp; GetText = Mid$(prmAllText, wStrNo, wEndNo - wStrNo)<br />
&nbsp;End Function<br />
－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－<br />
</p>
<p>2022.03.12<br />
　Yahooファイナンスの仕様変更により銘柄名・市場が収集出来なくなったので修正。<br />
2021.04.25<br />
　Yahooファイナンスの仕様変更により修正。<br />
　日経平均；998407、TOPIX；998405はサービスされなくなりましたので表示できません。<br />
2014.5.21<br />
　Yahooファイナンスの仕様変更により、「市場」情報が収集できなくなったので修正。<br />
<br />
&nbsp;</p>]]></content:encoded>
    <dc:subject>Yahoo VBA接続</dc:subject>
    <dc:date>2022-03-13T17:00:00+09:00</dc:date>
    <dc:creator>keizann</dc:creator>
    <dc:publisher>NINJA BLOG</dc:publisher>
    <dc:rights>keizann</dc:rights>
  </item>
  <item rdf:about="http://keizann.blog.shinobi.jp/-yahoovba-/%E6%8E%A5%E7%B6%9A%E6%99%82%E9%96%93%E6%B8%AC%E5%AE%9A">
    <link>http://keizann.blog.shinobi.jp/-yahoovba-/%E6%8E%A5%E7%B6%9A%E6%99%82%E9%96%93%E6%B8%AC%E5%AE%9A</link>
    <title>接続時間測定</title>
    <description>Yahooファイナンスからデータを取得する時の応答時間を計測してみました。
時間計測には、Timer関数を使用します。
Timer関数は、午前０時から経過した秒数を表す単精度浮動小数点数型の
値を返しますので、Yahooファイナンスの接続前と応答テキストの受信後に
入れて掛かった時間を計測します。
...</description>
    <content:encoded><![CDATA[<p>Yahooファイナンスからデータを取得する時の応答時間を計測してみました。<br />
時間計測には、Timer関数を使用します。<br />
Timer関数は、午前０時から経過した秒数を表す単精度浮動小数点数型の<br />
値を返しますので、Yahooファイナンスの接続前と応答テキストの受信後に<br />
入れて掛かった時間を計測します。</p>
<p>Private Sub Sample ()<br />
Dim oHttp&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; As Object<br />
Dim strURI&nbsp;&nbsp;&nbsp;&nbsp; As String<br />
Dim syCode&nbsp;&nbsp;&nbsp;&nbsp; As String<br />
Dim cmpText&nbsp;&nbsp;&nbsp; As String<br />
Dim StTim&nbsp; As&nbsp; String<br />
Dim EdTim&nbsp; As&nbsp; String<br />
<br />
&nbsp;Set oHttp = CreateObject("MSXML2.XMLHTTP")<br />
&nbsp; StTim = Timer<br />
'－－－－－－－－－－－－－－－－－株価情報検索－－－－－－－－－－－－－<br />
&nbsp;&nbsp; With oHttp<br />
&nbsp;&nbsp;&nbsp;&nbsp; strURI = "<a href="http://stocks.finance.yahoo.co.jp/stocks/detail/?code">https://finance.yahoo.co.jp/quote</a>/" &amp; Cells(wRow,4)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .Open "GET", strURI, False<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .setRequestHeader "If-Modified-Since", "Thu, 01 Jun 1970 00:00:00 GMT"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .send<br />
&nbsp;&nbsp;&nbsp; syCode = GetText(.responsetext, "【", "】")<br />
&nbsp;&nbsp; cmpText = GetText(.responsetext, "&lt;head&gt;", "&lt;footer&gt;")<br />
&nbsp; End With<br />
'－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－&nbsp;<br />
&nbsp;&nbsp; EdTim = Timer<br />
&nbsp; Msgbox "処理時間は、" &amp; EdTim - StTim &amp; "秒です。"<br />
End Sub<br />
<br />
自宅の回線はＢフレッツ光で、屋内はBUFFALOの無線LAN(Air Station<br />
WZR-450HP-C) が付いています。無線LAN親機は1階で子機は2階に<br />
ありますが、転送速度は 20MB以上が出ており、回線関係の遅延は<br />
無視できる範囲とします。<br />
測定は平日のYahooのアクセスが少ない朝の7:00過ぎに行いました。<br />
測定結果<br />
　　1回目：0.4099秒<br />
　　2回目：0.4900秒<br />
　　3回目：0.5199秒<br />
　　4回目：3.3400秒<br />
　　5回目：0.4500秒</p>
<p>計測してみると、0.4秒代が多く途中で3.34秒が１回入っています。<br />
この結果からみると、1件あたりの平均情報収集時間は、0.5秒程度と<br />
みた方が無難でしょう。<br />
実際に1000件のデータを収集してみると、約９分かかっています。<br />
ではインターネットの混雑状況は、時間帯により違うため計測時間が<br />
変わるのではないかと予測して時間帯を変えて測定してみました。</p>
<p>時間帯別測定結果<br />
1.　 &nbsp; 7:00～　：8分50秒<br />
2.&nbsp;&nbsp;&nbsp; &nbsp;14:30～　：9分27秒<br />
3.　 19:30～　：8分45秒　　　 <br />
4.　 21:00～　：8分40秒</p>
<p>結果からみると、インターネットの混雑状況による測定時間の<br />
変化はほとんどないとみてよいでしょう。<br />
<br />
<br />
<br />
2021.04.25&nbsp; Yahooの仕様変更により情報収集ができなくなったので修正。</p>
<p>2017.04.01　Yahooの仕様変更により情報収集ができなくなったので修正。<br />
　　　　　　接続先URLの変更。<br />
</p>]]></content:encoded>
    <dc:subject>Yahoo VBA接続</dc:subject>
    <dc:date>2022-03-13T17:00:00+09:00</dc:date>
    <dc:creator>keizann</dc:creator>
    <dc:publisher>NINJA BLOG</dc:publisher>
    <dc:rights>keizann</dc:rights>
  </item>
  <item rdf:about="http://keizann.blog.shinobi.jp/-yahoovba-/yahoo%E3%83%95%E3%82%A1%E3%82%A4%E3%83%8A%E3%83%B3%E3%82%B9%E3%81%8B%E3%82%89%E6%A0%AA%E4%BE%A1%E6%83%85%E5%A0%B1%E3%81%AE%E5%8F%96%E5%BE%97">
    <link>http://keizann.blog.shinobi.jp/-yahoovba-/yahoo%E3%83%95%E3%82%A1%E3%82%A4%E3%83%8A%E3%83%B3%E3%82%B9%E3%81%8B%E3%82%89%E6%A0%AA%E4%BE%A1%E6%83%85%E5%A0%B1%E3%81%AE%E5%8F%96%E5%BE%97</link>
    <title>Yahooファイナンスから株価詳細情報の各項目取得</title>
    <description>Yahooファイナンスのトヨタ自動車のページ
赤で囲んだ部分が収集する情報詳細の各項目部分。


Yahooファイナンスに接続して、各銘柄毎の株価情報を受け取って、比較用の
cmpTextを作成後に、個々の数値情報を抜き取る処理です。
Yahooファイナンスのページからリアルタイムに更新されている株...</description>
    <content:encoded><![CDATA[<p>Yahooファイナンスのトヨタ自動車のページ<br />
赤で囲んだ部分が収集する情報詳細の各項目部分。<br />
<a title="" href="//keizann.blog.shinobi.jp/File/toyota_1.jpg" target="_blank"><img alt="" src="//keizann.blog.shinobi.jp/Img/1396609873/" /></a><br />
<br />
Yahooファイナンスに接続して、各銘柄毎の株価情報を受け取って、比較用の<br />
cmpTextを作成後に、個々の数値情報を抜き取る処理です。<br />
Yahooファイナンスのページからリアルタイムに更新されている株価詳細情報と<br />
参考指標(１株配当・PER・PBR・EPS・BPS)を収集します。<br />
この部分はYahooファイナンスのページデザインの変更が行われた場合には<br />
その日から収集ができなくなってしまいます。<br />
<br />
&nbsp;&nbsp;If syCode = Cells(wRow,4) Then<br />
&nbsp;&nbsp;&nbsp; Cells(wRow, 4).Select<br />
&nbsp;&nbsp;&nbsp; '【銘柄名】取得<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;strText = GetText(cmpText, "&lt;meta charset=", "&lt;/head&gt;")<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;strText = GetText(strText, "&lt;title&gt;", "【")<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;strText = Left(strText, 16)&nbsp; &nbsp; '先頭より16文字を抜き取り<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Cells(wRow,3) = strText<br />
&nbsp; &nbsp; '【市場】取得<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;strText = GetText(cmpText, "&lt;main class", "&lt;/main")<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;strText = GetText(strText, "&lt;section class", "&lt;/header&gt;")<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;strText = GetText(strText, "&lt;div class=","&lt;hearder class")<br />
&nbsp; &nbsp; If InStr(1, strText, "button type") &gt; 0 Then<br />
&nbsp; &nbsp; &nbsp; &nbsp; If InStr(1, strText, "東証1部") &gt; 0 Then<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; strText = "東証1部"<br />
&nbsp; &nbsp; &nbsp; &nbsp; ElseIf InStr(1, strText, "東証2部") &gt; 0 Then<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; strText = "東証2部"<br />
&nbsp; &nbsp; &nbsp; &nbsp; ElseIf InStr(1, strText, "東証JQS") &gt; 0 Then<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; strText = "東証JQS"<br />
&nbsp; &nbsp; &nbsp; &nbsp; ElseIf InStr(1, strText, "東証JQG") &gt; 0 Then<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; strText = "東証JQG"<br />
&nbsp; &nbsp; &nbsp; &nbsp; End If<br />
&nbsp; &nbsp; Else<br />
&nbsp; &nbsp; &nbsp; &nbsp; strText = GetText(strText, "&lt;span class","&lt;div id=")<br />
&nbsp; &nbsp; &nbsp; &nbsp; strText = GetText(strText, "&gt;","&lt;/span&gt;")<br />
&nbsp; &nbsp; End If<br />
&nbsp; &nbsp; &nbsp;Cells(wRow,5) = strText<br />
<br />
' 【単元株数】取得<br />
&nbsp; &nbsp; &nbsp;<br />
&nbsp; &nbsp; strText = GetText(cmpText, "&gt;単元株数&lt;", "&lt;/dl&gt;&lt;/li&gt;")<br />
&nbsp; &nbsp; strText = GetText(strText, "_11kV6f2G""&gt;", "&lt;/span&gt;")</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;If IsNumeric(strText) = False Then<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;strText = ""<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;End If<br />
&nbsp; &nbsp; &nbsp;Cells(wRow,7) = strText</p>
<p>' 【始値】取得<br />
&nbsp; &nbsp; &nbsp;strText = GetText(cmpText, "&gt;始値&lt;", "&lt;/dl&gt;&lt;/li&gt;")<br />
&nbsp; &nbsp; &nbsp;strText = GetText(strText, "_11kV6f2G""&gt;", "&lt;/span&gt;")<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; If IsNumeric(strText) = False Then<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; strText = "　　 -"<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; End If<br />
&nbsp; &nbsp; &nbsp;Cells(wRow,8) = strText<br />
<br />
' 【高値】取得</p>
<p>&nbsp; &nbsp; &nbsp;strText = GetText(cmpText, "&gt;高値&lt;", "&lt;/dl&gt;&lt;/li&gt;")<br />
&nbsp; &nbsp; &nbsp;strText = GetText(strText, "_11kV6f2G""&gt;", "&lt;/span&gt;")<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; If IsNumeric(strText) = False Then<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; strText = "　　 -"<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; End If<br />
&nbsp; &nbsp; &nbsp;Cells(wRow,9) = strText</p>
<p>' 【安値】取得<br />
<br />
&nbsp; &nbsp; &nbsp;strText = GetText(cmpText, "&gt;安値&lt;", "&lt;/dl&gt;&lt;/li&gt;")<br />
&nbsp; &nbsp; &nbsp;strText = GetText(strText, "_11kV6f2G""&gt;", "&lt;/span&gt;")<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; If IsNumeric(strText) = False Then<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; strText = "　　 -"<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; End If<br />
&nbsp; &nbsp; &nbsp;Cells(wRow,10) = strText<br />
<br />
' 【終値】取得<br />
&nbsp; &nbsp; &nbsp; strText = GetText(cmpText, "&lt;main class", "&lt;/main&gt;")<br />
&nbsp; &nbsp; &nbsp; strText = GetText(strText, "&lt;header class", "&lt;/header&gt;")<br />
&nbsp; &nbsp; &nbsp; strText = GetText(strText, "_3rXWJKZF", "&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;")<br />
&nbsp; &nbsp; &nbsp; strText = GetText(strtxt, "&gt;","&lt;/span&gt;")&nbsp; &nbsp;<br />
&nbsp; &nbsp; &nbsp; If IsNumeric(strText) = False Then<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; strText = 0<br />
&nbsp; &nbsp; &nbsp; &nbsp;Else<br />
&nbsp; &nbsp; &nbsp; Cells(wRow,11) = strText<br />
&nbsp; &nbsp; &nbsp; &nbsp;End if<br />
' 【前日比】取得<br />
&nbsp; &nbsp; &nbsp; &nbsp;strText = GetText(cmpText, "&gt;前日比&lt;", "&lt;/dd&gt;&lt;/dl&gt;")<br />
&nbsp; &nbsp; &nbsp; &nbsp;strText = GetText(strText, "_3rXWJKZF""&gt;", "&lt;/span&gt;")<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;If IsNumeric(strText) = False Then<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;strText = 0<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;End If<br />
&nbsp; &nbsp; &nbsp; &nbsp;Cells(wRow,12) = strText<br />
<br />
' 【出来高】取得<br />
&nbsp; &nbsp; &nbsp; &nbsp; strText = GetText(cmpText, "&gt;出来高&lt;", "&lt;/dl&gt;&lt;/li&gt;")<br />
&nbsp; &nbsp; &nbsp; &nbsp; strText = GetText(strText, "_11kV6f2G""&gt;", "&lt;/span&gt;")<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; If IsNumeric(strText) = False Then<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; strText = 0<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; End If<br />
&nbsp; &nbsp; &nbsp; &nbsp; Cells(wRow,13) = strText<br />
<br />
' 【年初来安値】取得<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;strText = GetText(cmpText, "&gt;年初来安値&lt;", "&lt;/dl&gt;&lt;/li&gt;")<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;strText = Replace(strText, "&gt;更新&lt;/span&gt;", "", 1)&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; '更新の文字削除<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;strText = GetText(strText, "_11kV6f2G""&gt;", "&lt;/span&gt;")<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;If IsNumeric(strText) = False Then<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;strText = "　　！"<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;End If<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Cells(wRow,14) = strText<br />
<br />
' 【年初来高値】取得<br />
　&nbsp; &nbsp; &nbsp; strText = GetText(cmpText, "&gt;年初来高値&lt;", "&lt;/dl&gt;&lt;/li&gt;")<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; strText = Replace(strText, "&gt;更新&lt;/span&gt;", "", 1)&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; '更新の文字削除<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; strText = GetText(strText, "_11kV6f2G""&gt;", "&lt;/span&gt;")<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; If IsNumeric(strText) = False Then<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; strText = "　　！"<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; End If<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Cells(wRow,15) = strText<br />
'【EPS】取得<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;strText = GetText(cmpText, "&gt;EPS&lt;", "&lt;/dl&gt;&lt;/li&gt;")<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;strText = GetText(strText, "&lt;dd class", "&lt;/span&gt;&lt;/dd&gt;")<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;strText = GetText(strText, "_11kV6f2G""&gt;", "&lt;/span&gt;")<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;If IsNumeric(strText) = False Then<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;strText = "　　 -"<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;End If<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Cells(wRow,18) = strText<br />
' 【PER】取得<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; strText = GetText(cmpText, "&gt;PER&lt;", "&lt;/dl&gt;&lt;/li&gt;")<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; strText = GetText(strText, "&lt;dd class", "&lt;/span&gt;&lt;/dd&gt;")<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; strText = GetText(strText, "_11kV6f2G""&gt;", "&lt;/span&gt;")<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; '取得したセル内に"---"があった場合でかつ1株利益(EPS)が開示されており値が正の場合<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; If IsNumeric(strText) = False Then<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;If wCellB(18) = "　　 -" Or wCellB(18) &lt; 0 Then<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; strText = "　　 -"<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Else<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; strText = wCellB(11) / wCellB(18)&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;'PER = 株価&divide;(EPS) を演算<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;End If<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; End If<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Cells(wRow,16) = strText<br />
' 【BPS】取得<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; strText = GetText(cmpText, "&gt;BPS&lt;", "&lt;/dl&gt;&lt;/li&gt;")<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; strText = GetText(strText, "&lt;dd class", "&lt;/span&gt;&lt;/dd&gt;")<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; strText = GetText(strText, "_11kV6f2G""&gt;", "&lt;/span&gt;")<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; If IsNumeric(strText) = False Then<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; strText = "　　 -"<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; End If<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Cells(wRow,19) = strText<br />
' 【PBR】取得<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;strText = GetText(cmpText, "&gt;PBR&lt;", "&lt;/dl&gt;&lt;/li&gt;")<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;strText = GetText(strText, "&lt;dd class", "&lt;/span&gt;&lt;/dd&gt;")<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;strText = GetText(strText, "_11kV6f2G""&gt;", "&lt;/span&gt;")<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;'取得したセル内に"---"があった場合でかつ1株資産(BPS)が開示されており値が正の場合<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;If IsNumeric(strText) = False Then<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;If wCellB(19) = "　　 -" Or wCellB(19) &lt; 0 Then<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; strText = "　　 -"<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Else<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; strText = wCellB(11) / wCellB(19)&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 'PBR = 株価&divide;(BPS) を演算<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;End If<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; End If<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Cells(wRow,17) = strText<br />
' 【1株配当】取得<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;strText = GetText(cmpText, "&gt;1株配当&lt;", "&lt;/dl&gt;&lt;/li&gt;")<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;strText = GetText(strText, "&lt;dd class", "&lt;/span&gt;&lt;/dd&gt;")<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;strText = GetText(strText, "_11kV6f2G""&gt;", "&lt;/span&gt;")<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;If IsNumeric(strText) = False Then<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;strText = "　　 -"<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;End If<br />
&nbsp; &nbsp; &nbsp; &nbsp; Cells(wRow,20) = strText<br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp;Cells(wRow,21) = Cells(wRow,7) * Cells(wRow,11)</p>
<p>&nbsp;Else <br />
&nbsp;&nbsp;&nbsp;&nbsp; For cKAZU = 5 To 21<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Cells(wRow, cKAZU).ClearContents<br />
&nbsp;&nbsp;&nbsp;&nbsp; Next<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Cells(wRow, 3).ClearContents<br />
&nbsp;End If<br />
－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－<br />
&nbsp;Public Function GetText(prmAllText As String, prmStrText, prmEndText)<br />
&nbsp;&nbsp;&nbsp; Dim wStrNo&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; As Long<br />
&nbsp;&nbsp;&nbsp; Dim wEndNo&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; As Long<br />
&nbsp;&nbsp;&nbsp; wStrNo = InStr(1, prmAllText, prmStrText) + Len(prmStrText)<br />
&nbsp;&nbsp;&nbsp; wEndNo = InStr(wStrNo, prmAllText, prmEndText)<br />
&nbsp;&nbsp;&nbsp; GetText = Mid$(prmAllText, wStrNo, wEndNo - wStrNo)<br />
End Function<br />
－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－<br />
Public Function GetValue(prmAllText As String, prmName)<br />
&nbsp;&nbsp;&nbsp; Dim wIdx1&nbsp;&nbsp; As Long<br />
&nbsp;&nbsp;&nbsp; Dim wArray()&nbsp;&nbsp;&nbsp; As String<br />
&nbsp;&nbsp;&nbsp; GetValue = ""<br />
&nbsp;&nbsp;&nbsp; wArray = Split(prmAllText, "&lt;/div&gt;", , vbTextCompare)<br />
&nbsp;&nbsp;&nbsp; For wIdx1 = LBound(wArray) To UBound(wArray)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; If InStr(1, wArray(wIdx1), prmName, vbTextCompare) &gt; 0 Then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; GetValue = GetText(wArray(wIdx1), "&lt;strong&gt;", "&lt;/strong&gt;")<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; End If<br />
&nbsp;&nbsp;&nbsp; Next<br />
End Function<br />
－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－</p>
<p>&nbsp;市場選択は４桁部分に同一証券コードがあるため、市場選択のページがある事を<br />
考慮して います。年初来安値と年初来高値は、安値・高値を更新をした場合に、<br />
数値の前に"更新"の文字が入る事を考慮しています。<br />
１株利益(EPS)を開示しているのに、株価収益率(PER)を開示していない銘柄が<br />
ありますが、これは1株利益(EPS)が開示されており、かつ値が正の場合は<br />
株価から演算できますので、 PER = 株価 &divide; EPS で演算しています。<br />
１株株主資産(BPS)を開示しているのに、純資産倍率(PBR)を開示していない<br />
銘柄がありますが、これは１株株主資産(BPS)が開示されており、かつ値が正の<br />
場合は株価から演算できますので、 PBR = 株価 &divide; BPS で演算しています。</p>
<p><br />
2022.03.12<br />
　yahooファイナンスの仕様変更により銘柄名・市場が収集できなくなったので修正。<br />
2021.04.25<br />
　Yahooファイナンスの仕様変更により情報収集が出来なくなったので修正。<br />
2014.5.21<br />
　Yahooファイナンスの仕様変更により、「市場」情報が収集できなくなったので修正。&nbsp;<br />
2014.4.25<br />
　Yahooファイナンスの仕様変更により、１株利益(EPS)、１株株主資産(BPS)が<br />
　収集できなくなったので修正。<br />
<br />
</p>]]></content:encoded>
    <dc:subject>Yahoo VBA接続</dc:subject>
    <dc:date>2022-03-13T17:00:00+09:00</dc:date>
    <dc:creator>keizann</dc:creator>
    <dc:publisher>NINJA BLOG</dc:publisher>
    <dc:rights>keizann</dc:rights>
  </item>
  <item rdf:about="http://keizann.blog.shinobi.jp/-yahoovba-/yahoo%E3%83%95%E3%82%A1%E3%82%A4%E3%83%8A%E3%83%B3%E3%82%B9%E3%81%8B%E3%82%89%E6%99%82%E7%B3%BB%E5%88%97%E6%83%85%E5%A0%B1%E3%81%AE%E5%8F%96%E5%BE%97">
    <link>http://keizann.blog.shinobi.jp/-yahoovba-/yahoo%E3%83%95%E3%82%A1%E3%82%A4%E3%83%8A%E3%83%B3%E3%82%B9%E3%81%8B%E3%82%89%E6%99%82%E7%B3%BB%E5%88%97%E6%83%85%E5%A0%B1%E3%81%AE%E5%8F%96%E5%BE%97</link>
    <title>Yahooファイナンスから時系列情報の取得</title>
    <description>Yahooファイナンスは、リアルタイムで株価情報を更新しており、
この情報を外部に無料で配信するサービスを行っています。
リアルタイム情報を表示する「詳細情報」のページと、
前日までの情報を表示する「時系列」情報ページがあります。
時系列情報のページからEXCEL VBAで情報を取得するための
記述...</description>
    <content:encoded><![CDATA[<p>Yahooファイナンスは、リアルタイムで株価情報を更新しており、<br />
この情報を外部に無料で配信するサービスを行っています。<br />
リアルタイム情報を表示する「詳細情報」のページと、<br />
前日までの情報を表示する「時系列」情報ページがあります。<br />
時系列情報のページからEXCEL VBAで情報を取得するための<br />
記述を下記に示します。<br />
&nbsp;<br />
&nbsp;<a title="" href="//keizann.blog.shinobi.jp/File/jikeiretu_1.jpg" target="_blank"><img alt="" src="//keizann.blog.shinobi.jp/Img/1396342798/" /></a> <a title="" href="//keizann.blog.shinobi.jp/File/d8384952.jpeg" target="_blank"></a>&nbsp;<br />
&nbsp;<br />
Private Sub CommandButton1_Click()<br />
On Error GoTo ErrorTrap<br />
Dim oHttp&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; As Object<br />
Dim strURI&nbsp;&nbsp;&nbsp;&nbsp; As String<br />
Dim strText&nbsp;&nbsp;&nbsp; As String<br />
Dim cmpText&nbsp;&nbsp;&nbsp; As String<br />
Dim syCode&nbsp;&nbsp;&nbsp;&nbsp; As String<br />
Dim wRow&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; As Integer<br />
Dim matubi&nbsp;&nbsp;&nbsp;&nbsp; As Integer</p>
<p>Application.Cursor = xlWait<br />
Set oHttp = CreateObject("MSXML2.XMLHTTP")<br />
matubi = Cells(Rows.Count, 4).End(xlUp).Row&nbsp;<br />
&nbsp;&nbsp; wRow = 6<br />
Do Until wRow &gt; matubi<br />
&nbsp;&nbsp;If (Cells(wRow, 4) &gt;= 1000 And Cells(wRow, 4) &lt;= 9999)&nbsp; Then<br />
&nbsp; With oHttp<br />
&nbsp;&nbsp;&nbsp;&nbsp; strURI = "<a href="http://stocks.finance.yahoo.co.jp/stocks/history/?code">https://finance.yahoo.co.jp/quote/</a>" &amp; Cells(wRow,4)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .Open "GET", strURI, False<br />
&nbsp; '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.setRequestHeader "If-Modified-Since", "Thu, 01 Jun 1970 00:00:00 GMT"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .send&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp; syCode = GetText(.responsetext, "【", "】")<br />
&nbsp;&nbsp;&nbsp;&nbsp; cmpText = GetText(.responsetext, "&lt;head&gt;", "&lt;footer&gt;")<br />
&nbsp; End With<br />
&nbsp; &nbsp;<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp; －－－cmpTextから時系列データ抜取り処理－－－</p>
<p>&nbsp;End If<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; wRow = wRow + 1<br />
Loop<br />
&nbsp;&nbsp;&nbsp; Application.Cursor = xlDefault<br />
&nbsp;&nbsp;&nbsp; Set oHttp = Nothing&nbsp;&nbsp;&nbsp;<br />
End Sub<br />
－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－<br />
Public Function GetText(prmAllText As String, prmStrText, prmEndText)<br />
&nbsp;&nbsp;&nbsp; Dim wStrNo&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; As Long<br />
&nbsp;&nbsp;&nbsp; Dim wEndNo&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; As Long&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp; wStrNo = InStr(1, prmAllText, prmStrText) + Len(prmStrText)&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp; wEndNo = InStr(wStrNo, prmAllText, prmEndText)&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp; GetText = Mid$(prmAllText, wStrNo, wEndNo - wStrNo)<br />
End Function<br />
－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－<br />
時系列データの場合は、YahooファイナンスのURLが、"/quote/"<br />
になっている事に気づいてください。<br />
ここでは、EXCEL表の6行目から証券コードの記入が始まっています。<br />
Cells(wRow, 4)は、EXCEL表の４列目に、証券コードを記載している事を示しています。<br />
<br />
GetText Fanctionで、Yahooから受取った該当証券コード情報の内、<br />
.responsetext内の&lt;Title&gt;～&lt;/title&gt;行にある【】に挟まれた証券コードを<br />
抜き取っています。<br />
Yahooファイナンスの各銘柄データは、１銘柄毎の全体量が100Kbぐらい<br />
ありますので、非力なEXcelの関数で100Kbを１バイト単位に比較して株価<br />
データを抜き取るには、銘柄数が1000件のもなれば処理時間が長くなって<br />
きます。 ここでは、受取ったHTMLデータの個別銘柄情報のすぐ前にある<br />
&lt;head&gt;のタグから、信用取引情報の後ろの&lt;footer&gt;タグ<br />
までの間を切り取って、比較用の cmpTextを作成しています。<br />
抜き取り後のデータ量は、3Kb程度になりました。<br />
Yahooファイナンスからリアルタイム情報を取得する場合は、下記の1行を指定<br />
しないと、最新情報が得られません。この.setRequestHeaderの1行を指定しない<br />
とサーバーに蓄積された古い情報をもってくる様です。<br />
&nbsp;<br />
しかし、時系列データの場合は、そもそもが蓄積データのため、この1行は<br />
コメントアウトしました。これをコメントアウトすると約15％程度収集速度が、<br />
&nbsp;向上します。これは、負荷のかかっているリアルタイムサーバに最新データを<br />
要求して応答が返ってくるまでの処理時間が無くなったからだと 思います。</p>
<p>コメントアウトした1行<br />
&nbsp;.setRequestHeader "If-Modified-Since", "Thu, 01 Jun 1970 00:00:00 GMT"</p>
<p><br />
<br />
<br />
<br />
2021.04.25&nbsp; Yahooファイナンスの仕様変更により情報収集が出来なくなったので修正。<br />
　998407 ;日経平均株価、998405 ;TOPIXはサービスがなくなったので収集できません。<br />
2017.04.01　Yahooの仕様変更により情報収集ができなくなったので修正。<br />
　　　　　　接続先URLの変更。<br />
<br />
<br />
</p>]]></content:encoded>
    <dc:subject>Yahoo VBA接続</dc:subject>
    <dc:date>2022-03-13T17:00:00+09:00</dc:date>
    <dc:creator>keizann</dc:creator>
    <dc:publisher>NINJA BLOG</dc:publisher>
    <dc:rights>keizann</dc:rights>
  </item>
  <item rdf:about="http://keizann.blog.shinobi.jp/-yahoovba-/yahoo%E3%83%95%E3%82%A1%E3%82%A4%E3%83%8A%E3%83%B3%E3%82%B9%E3%81%8B%E3%82%89%E6%A0%AA%E4%BE%A1%E8%A9%B3%E7%B4%B0%E6%83%85%E5%A0%B1%E3%82%92%E5%8F%96%E5%BE%97">
    <link>http://keizann.blog.shinobi.jp/-yahoovba-/yahoo%E3%83%95%E3%82%A1%E3%82%A4%E3%83%8A%E3%83%B3%E3%82%B9%E3%81%8B%E3%82%89%E6%A0%AA%E4%BE%A1%E8%A9%B3%E7%B4%B0%E6%83%85%E5%A0%B1%E3%82%92%E5%8F%96%E5%BE%97</link>
    <title>Yahooファイナンスから株価詳細情報を取得</title>
    <description>&amp;amp;nbsp;Yahooファイナンスは、リアルタイムで株価情報を更新しており、
この情報を外部に無料で配信するサービスを行っています。
自分のパソコンからEXCELシートを開いて、EXCEL VBAを起動して
Yahooに接続すれば、リアルタイムの株価情報を取得する事ができます。
Yahooファイナン...</description>
    <content:encoded><![CDATA[<p>&nbsp;Yahooファイナンスは、リアルタイムで株価情報を更新しており、<br />
この情報を外部に無料で配信するサービスを行っています。<br />
自分のパソコンからEXCELシートを開いて、EXCEL VBAを起動して<br />
Yahooに接続すれば、リアルタイムの株価情報を取得する事ができます。<br />
Yahooファイナンスのページは、リアルタイム情報を表示する「詳細情報」の<br />
ページと、前日までの情報を表示する「時系列」情報ページがあります。<br />
「詳細情報」のページは、東証の株価情報を１分以内の遅れで表示しており<br />
このデータを元にして、PERやPBRなどのデータも変化しています。<br />
VBAでYahooファイナンスから情報を取得するための記述は、<br />
下記の様になります<br />
EXCELシートに追加したコマンドボタン１に、Yahooファイナンスから<br />
情報収集する処理を割り付けています。<br />
<br />
<a title="" href="//keizann.blog.shinobi.jp/File/d8384952.jpeg" target="_blank"><img alt="" src="//keizann.blog.shinobi.jp/Img/1396167409/" /></a><br />
<br />
Private Sub CommandButton1_Click()<br />
On Error GoTo ErrorTrap<br />
Dim oHttp&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; As Object<br />
Dim strURI&nbsp;&nbsp;&nbsp;&nbsp; As String<br />
Dim strText&nbsp;&nbsp;&nbsp; As String<br />
Dim cmpText&nbsp;&nbsp;&nbsp; As String<br />
Dim syCode&nbsp;&nbsp;&nbsp;&nbsp; As String<br />
Dim wRow&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; As Integer<br />
Dim matubi&nbsp;&nbsp;&nbsp;&nbsp; As Integer</p>
<p>Application.Cursor = xlWait&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
Set oHttp = CreateObject("MSXML2.XMLHTTP")&nbsp;&nbsp;&nbsp;&nbsp;<br />
matubi = Cells(Rows.Count, 4).End(xlUp).Row&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp; wRow = 6<br />
Do Until wRow &gt; matubi<br />
&nbsp;&nbsp;If (Cells(wRow, 4) &gt;= 1000 And Cells(wRow, 4) &lt;= 9999)&nbsp; Then<br />
&nbsp; With oHttp<br />
&nbsp;&nbsp;&nbsp; strURI = "<a href="http://stocks.finance.yahoo.co.jp/stocks/detail/?code">https://finance.yahoo.co.jp/quote/</a>" &amp; Cells(wRow, 4)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .Open "GET", strURI, False<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.setRequestHeader "If-Modified-Since", "Thu, 01 Jun 1970 00:00:00 GMT"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.send<br />
&nbsp;&nbsp;&nbsp;&nbsp; syCode = GetText(.responsetext, "【", "】")<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cmpText = GetText(.responsetext, "&lt;head&gt;", "&lt;footer&gt;")<br />
&nbsp; End With</p>
<p>　　---　cmpTextから株価データの抜き取り処理。---　</p>
<p>&nbsp;&nbsp;&nbsp;End If<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;wRow = wRow + 1<br />
Loop<br />
&nbsp;&nbsp;&nbsp; Application.Cursor = xlDefault<br />
&nbsp;&nbsp;&nbsp; Set oHttp = Nothing&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;End sub<br />
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー<br />
Public Function GetText(prmAllText As String, prmStrText, prmEndText)<br />
&nbsp;&nbsp;&nbsp; Dim wStrNo&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; As Long<br />
&nbsp;&nbsp;&nbsp; Dim wEndNo&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; As Long<br />
&nbsp;&nbsp;&nbsp; wStrNo = InStr(1, prmAllText, prmStrText) + Len(prmStrText)<br />
&nbsp;&nbsp;&nbsp; wEndNo = InStr(wStrNo, prmAllText, prmEndText)<br />
&nbsp;&nbsp;&nbsp; GetText = Mid$(prmAllText, wStrNo, wEndNo - wStrNo)<br />
End Function<br />
－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－</p>
<p>ここでは、EXCEL表の6行目から証券コードの記入が始まっています。<br />
Cells(wRow, 4)は、EXCEL表の４列目に、証券コードを記載している事を<br />
示しています。<br />
<br />
GetText Fanctionで、Yahooから受取った該当証券コード情報の内、<br />
.responsetext内の&lt;Title&gt;～&lt;/title&gt;行にある【】に挟まれた証券コードを<br />
抜き取っています。<br />
Yahooファイナンスの各銘柄データは、１銘柄毎の全体量が100Kbぐらい あり<br />
ますので、非力なEXcelの関数で100Kbを１バイト単位に比較して株価データを<br />
抜き取るには、銘柄数が1000件のもなれば処理時間が長くなってきます。<br />
ここでは、受取ったHTMLデータの個別銘柄情報のすぐ前にある<br />
&lt;head&gt;のタグから、信用取引情報の後ろの&lt;footer&gt;タグ<br />
までの間を切り取って、比較用の cmpTextを作成しています。<br />
抜き取り後のデータ量は、35Kb程度になりました。</p>
<p>&nbsp;Yahooファイナンスからリアルタイム情報を取得する場合は、下記の1行を指定<br />
&nbsp;しないと、最新情報が得られません。この.setRequestHeaderの1行を指定しな<br />
&nbsp;いとサーバーに蓄積された古い情報をもってくる様です。<br />
&nbsp; Yahooは、AM8:00～AM9:00の間は、株価データのサービスを行っていない<br />
&nbsp;ため、各項目の欄に"---"が入っておりデータがありません。<br />
&nbsp;銘柄によっては、AM8:00～AM9:00の間の データが、サーバに残っている場合<br />
&nbsp;があります。この時間帯のデータを持ってきた場合には、データに抜けがでる<br />
&nbsp;事になります。</p>
<p>&nbsp;.setRequestHeader "If-Modified-Since", "Thu, 01 Jun 1970 00:00:00 GMT"</p>
<p><br />
<br />
2021.04.25<br />
　Yahooファイナンスの仕様変更により情報収集ができなくなったので修正。<br />
　日経平均株価；998407、TOPIX；998405は、Yahooのサービスが無くなりましたので表示できません。<br />
2017.4.01<br />
　Yahooファイナンスの仕様変更により情報収集ができなくなったので修正。接続先URLの変更。<br />
2014.6.11<br />
　Yafooファイナンスの仕様変更により、全情報が収集できなくなったため修正。<br />
2014.5.21<br />
　Yahooファイナンスの仕様変更により、「市場」情報が収集できなくなったので<br />
　抜き取りタグの位置を変更。</p>]]></content:encoded>
    <dc:subject>Yahoo VBA接続</dc:subject>
    <dc:date>2022-03-13T17:00:00+09:00</dc:date>
    <dc:creator>keizann</dc:creator>
    <dc:publisher>NINJA BLOG</dc:publisher>
    <dc:rights>keizann</dc:rights>
  </item>
  <item rdf:about="http://keizann.blog.shinobi.jp/-kabutomushi-/%E6%A0%AA%E5%AF%8C%E5%A4%A2%E5%A3%AB%E4%BF%A1%E7%94%A8%E5%8F%96%E5%BC%95%E3%80%80%E3%82%B5%E3%83%9D%E3%83%BC%E3%83%88">
    <link>http://keizann.blog.shinobi.jp/-kabutomushi-/%E6%A0%AA%E5%AF%8C%E5%A4%A2%E5%A3%AB%E4%BF%A1%E7%94%A8%E5%8F%96%E5%BC%95%E3%80%80%E3%82%B5%E3%83%9D%E3%83%BC%E3%83%88</link>
    <title>株富夢士信用取引　サポート</title>
    <description>よくある質問　Q &amp;amp;amp; A 　【ver2.1】
　
Q1 &amp;amp;nbsp;信用建余力や現引余力が証券会社の画面より低い値がでます。
　　なぜでしょうか？
A: &amp;amp;nbsp;証券会社では、委託保証金率や持株信用保証評価などを、
　　リアルタイムで変化させています。このシートでは、
　　初期設定を行う...</description>
    <content:encoded><![CDATA[<div>よくある質問　Q &amp; A 　【ver2.1】</div>
<div>　</div>
<div>Q1 &nbsp;信用建余力や現引余力が証券会社の画面より低い値がでます。</div>
<div>　　なぜでしょうか？</div>
<div>A: &nbsp;証券会社では、委託保証金率や持株信用保証評価などを、</div>
<div>　　リアルタイムで変化させています。このシートでは、</div>
<div>　　初期設定を行うだけで、細かい変化対応ができませんので、</div>
<div>　　証券会社の画面とは違いがでます。</div>
<div>　</div>
<div>Q2 &nbsp;新規注文の信建種別を選択して建単価、株数を記入したのに、</div>
<div>　　信用建資金の新規建玉欄に表示が何もでません。</div>
<div>A: &nbsp;取引一覧表の証券コード欄の記入が漏れているからです。</div>
<div>　　記入した行が連続している場合は、一度注文実行ボタンを押せば</div>
<div>　　前の行の銘柄名、証券コード、市場をコピーしてくれます。</div>
<div>　</div>
<div>Q3 &nbsp;建注文時に誤って注文実行ボタンの「はい」を押してしまいました。</div>
<div>　　どこを修正すれば元にもどせますか？</div>
<div>A: &nbsp;注文日付欄に本日の日付が入っているので、これを削除する。</div>
<div>　　信建種別が「買残」又は「売残」になっているので元に戻す。</div>
<div>　　手数料演算エリアの注文手数料欄に、演算された手数料が入って</div>
<div>　　いるのでこれを削除する。</div>
<div>　　信用取引履歴表の1行目にに注文結果が入っているので、</div>
<div>　　該当する行を削除する。</div>
<div>　</div>
<div>Q4 &nbsp;返済注文時に誤って返済実行ボタンの「はい」を押してしまいました。</div>
<div>　　どこを修正すれば元にもどせますか？</div>
<div>A: &nbsp;注文日付欄に本日の日付が入っているので、これを削除する。</div>
<div>　　注文の信建種別が「-」になっている場合は元に戻す。</div>
<div>　　注文の株数が、減算されているので元の株数に戻す。</div>
<div>　　返済欄の信建種別が「-」になっているので元に戻す。</div>
<div>　　戻株数がクリアされているので元の値に戻す。</div>
<div>　　確定損益に誤って実行した注文の損益が加算されているので、</div>
<div>　　その分を減算する。</div>
<div>　　手数料演算エリアの注文時手数料がクリアされているので</div>
<div>　　元の値にに戻す。</div>
<div>　　信用取引履歴表の1行目にに返済注文結果が入っているので、</div>
<div>　　該当する行を削除する。</div>
<div>　</div>
<div>Q5 &nbsp;警告メッセージの一部だけ使用したい場合はどの様に</div>
<div>　　設定すればよいですか？</div>
<div>A: &nbsp;警告メッセージの保証金率欄を削除して空白にしてください。</div>
<div>　　例えば、40%、30%、20%、だけを使用したい時は、</div>
<div>&nbsp; &nbsp; 35%、25%、の部分を空白にします。</div>
<div>　　警告メッセージの文章欄はそのままにしておいてかまいません。</div>
<div>　</div>
<div>Q6 &nbsp;逆日歩の発生は、組入れられていますか？</div>
<div>A: &nbsp;本シートでは、逆日歩の発生した事もわかりません、</div>
<div>　　かつ情報収集する事もできませんので対応していません。</div>
<div>　　逆日歩があった場合は、手持ち資金に誤差が出てきますので、</div>
<div>　　投資現金欄を証券会社の画面に従って修正してください。</div>
<div></div>]]></content:encoded>
    <dc:subject>株富夢士</dc:subject>
    <dc:date>2016-05-27T08:47:31+09:00</dc:date>
    <dc:creator>keizann</dc:creator>
    <dc:publisher>NINJA BLOG</dc:publisher>
    <dc:rights>keizann</dc:rights>
  </item>
  <item rdf:about="http://keizann.blog.shinobi.jp/excel%20vba/%E9%87%8D%E8%A4%87%E3%81%99%E3%82%8B%E3%83%87%E3%83%BC%E3%82%BF%E3%81%AE%E5%89%8A%E9%99%A4">
    <link>http://keizann.blog.shinobi.jp/excel%20vba/%E9%87%8D%E8%A4%87%E3%81%99%E3%82%8B%E3%83%87%E3%83%BC%E3%82%BF%E3%81%AE%E5%89%8A%E9%99%A4</link>
    <title>重複するデータ行の削除</title>
    <description>EXCEL表にキーとなるコードを入力していくと、コードの重複に気づかない
場合があります。この処理はデータに重複がある場合は、重複行を見つけ削除
する処理です。
この処理では、重複行を見つけると無条件に削除してしまいますので、
株価情報検索処理の銘柄登録には向いていますが、データベースの様な
個々の...</description>
    <content:encoded><![CDATA[<p>EXCEL表にキーとなるコードを入力していくと、コードの重複に気づかない<br />
場合があります。この処理はデータに重複がある場合は、重複行を見つけ削除<br />
する処理です。<br />
この処理では、重複行を見つけると無条件に削除してしまいますので、<br />
株価情報検索処理の銘柄登録には向いていますが、データベースの様な<br />
個々のデータ行が重要な意味を持つ処理には向いていません。<br />
ここでは１列1行目から比較を開始して、2行目以降100行目までに、<br />
データの重複があった場合に、比較行より先にある行の削除を行います。<br />
重複する行が点在して複数回出現しても、連続したデータとなっていても<br />
かまいません。<br />
行削除には、.EntireRow.Deleteコマンドを使用します。<br />
途中に空白行があれば、その空白行以降の空白行は削除されます。<br />
<br />
Private Sub sample()<br />
Dim wRow&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; As Integer<br />
Dim cRow&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; As Integer<br />
Dim sRow&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; As Integer<br />
Dim cKazu&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; As Integer</p>
<p>&nbsp;&nbsp;&nbsp; wRow = 1<br />
&nbsp;&nbsp;&nbsp; sRow = 100<br />
&nbsp;For cKazu = 1 To sRow<br />
&nbsp;&nbsp;&nbsp;&nbsp; cRow = wRow + 1<br />
&nbsp;&nbsp; Do Until cRow &gt; sRow<br />
&nbsp;&nbsp;&nbsp;&nbsp; If Cells(wRow, 1) = Cells(cRow, 1) Then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Cells(cRow, 1).EntireRow.Delete<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cRow = cRow - 1<br />
&nbsp;&nbsp;&nbsp;&nbsp; End If<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cRow = cRow + 1<br />
&nbsp;&nbsp; Loop<br />
&nbsp;&nbsp;&nbsp; wRow = wRow + 1<br />
&nbsp;Next<br />
End Sub</p>
<p></p>
<p><br />
<br />
<br />
&nbsp;</p>]]></content:encoded>
    <dc:subject>EXCEL VBA</dc:subject>
    <dc:date>2014-04-15T10:33:40+09:00</dc:date>
    <dc:creator>keizann</dc:creator>
    <dc:publisher>NINJA BLOG</dc:publisher>
    <dc:rights>keizann</dc:rights>
  </item>
</rdf:RDF>
