エクセルで株価を自動取得するVBAコードを紹介します。(日本株・米国株・投信対応版)

スポンサーサイト
Excel

80 Comments

たむら  

質問

mochi様

非常に有益なマクロ情報ありがとうございました。

ただ、データを読み込む度にwindowsセキュリティ入力ボックスが出てしまい、いちいち入力しなくてはならないのですが・・・そういうものなのでしょうか

2014/12/06 (Sat) 14:48 | REPLY |   

mochi  

windowsセキュリティのダイアログ対策

こんにちは。たむらさん。

> ただ、データを読み込む度にwindowsセキュリティ入力ボックスが出てしまい、いちいち入力しなくてはならないのですが・・・そういうものなのでしょうか

僕はwindows7とIE11とexcel2010の組み合わせなのですが、
今年の春頃から同じ状態になって、
しばらくは都度キャンセルで対応していました。

IEとexcel2010を以下のように設定することで解消していますが、
セキュリティに関することなので、自己責任で行って下さい。


1.IEの設定
(1)[ツール]→[インターネットオプション]を選んで、
   [セキュリティ]タグをクリックして下さい。

(2)[信頼済みサイト]を選んで、[サイト[S]]ボタンをクリックして下さい。
(3) 上の入力ボックスに、http://stocks.finance.yahoo.co.jp/を入力して 
    [追加]ボタンをクリックして下さい。
(4)このゾーンのセキュリティレベルを低(一番下)に設定して下さい。

2.Excelの設定
  ※IEの設定を行ってからでないとできません。
(1)[開発]タグを選んで、[マクロのセキュリティ]をクリックして下さい。
(2)[外部コンテンツ]のデータ接続のセキュリティ設定で、
   [すべてのデータ接続を有効にする(推奨しません)]をチェックして下さい。
(3)[信頼できる場所]で選んで下さい。
(4)[プライベートネットワーク上にある・・・]をチェックして下さい。
(5)[新しい場所の追加]ボタンをクリックして下さい。
(6)パスにhttp://stocks.finance.yahoo.co.jp/を入力して、
    OKボタンで登録して下さい。
(7)再度EXCELを立ち上げ直して下さい。

(推奨しません)と書かれている所をチェックすることになるので、
あまりお勧めできる方法ではありませんが、
今のところ、僕が確認できている方法はコレだけです。

セキュリティの部分で不安があるのであれば、
国内株式とETFだけなら、うっどさんの株ポートフォリオもお勧めです。
コピーしてExcelに貼り付けすることもできますので。

少しでも参考になれば幸いです。


2014/12/06 (Sat) 19:18 | REPLY |   

ど素人  

教えて下さい

はじめまして。
エクセルで株を管理できないかと探していたところココに辿りつきました。

突然の質問で申し訳ないのですが、
株価だけでなく、PER・PBR・単元株数・年初来高値・年初来安値等も
自動取得したいのですがどうすればよいのでしょうか?

また、銘柄コードを入力すれば銘柄名が自動で反映されるようにしたいのですが…

VBAやマクロが全く分からない素人で申し訳ございませんが、
教えて頂けるとありがたいです。

追記)
色々調べても難しくて分からなかったので、無理を承知でお尋ねしてしまいました。
すみませんでした。

2015/02/17 (Tue) 17:52 | EDIT | REPLY |   

mochi  

それはね・・・

禁則事項です

2015/02/17 (Tue) 20:31 | REPLY |   

たに  

ありがとうございました。

かなり幅広く株価、基準価格を調べられるExcelのVBAを探して、ここにたどり着きました。使い勝手のよいものを教えていただき、ありがとうございました。色々な金融機関と取引していると、こういったものが大変役に立ちます。これからも色々と教えてください。

2016/02/21 (Sun) 16:31 | REPLY |   

mochi  

ご丁寧にありがとうございます。

こんにちは。たにさん。

お役に立てそうで良かったです。
ご丁寧なコメントありがとうございます。
ブログ運営の励みになります。

また時々遊びに来てもらえると嬉しいです。

2016/02/21 (Sun) 21:56 | REPLY |   

ゆゆゆ  

はじめまして、自動取得のVBA、大変便利に使わせていただいております。

ただ、一部の証券コードでエラーが出てしまうようですので、ご報告します。
また、エラー解消が自力ではなかなか難しいので、解決方法をご存知でしたらご教示いただきたく存じます。
<エラー内容>
・実行時エラー5
・「ed_point = InStr(st_point, http.responseText, "前日終値")」部分が黄色で表示
・証券コード1413で発生(その他、3384でも同様のエラーが発生)
・VBAコードの黄色部分は上記のとおりだが、エクセル上では当日終値が黄色で表示(金額はブランクのまま)

2016/07/03 (Sun) 19:18 | REPLY |   

mochi  

東証上場銘柄しか対応していません

はじめまして。ゆゆゆさん。

> ・証券コード1413で発生(その他、3384でも同様のエラーが発生)

【1413】桧家ホールディングス、【3384】アークコアは、
いずれも名古屋証券取引所に上場している銘柄ですね。

あのVBAコードではアクセスする際に
市場コードとしてURL末尾に".T"を付けているので、
東証上場銘柄(マザーズ、JASDAQ含む)しか対応しておりません。

ひとまず地方の証券取引所に対応するための変更点を下記に示します。

変更箇所1(URL設定のところを変更)
If Len(code) <> 8 Then 'コードが8桁以外の時(日本株式の時)
If IsNumeric(code) Then ' コードが数値の時
url = "http://stocks.finance.yahoo.co.jp/stocks/detail/?code=" & code & ".T"
' ヤフーファイナンスの株価情報を読み込み開始
Else ' コードが数値でない時(米国株式の時)

   ↓ 上記コードを下のように変更

 If Len(code) <> 8 Then 'コードが8桁以外の時(日本株式の時)
 If IsNumeric(Left(code, 4)) Then ' コード左4桁が数値の時
 If IsNumeric(code) Then ' コードが数値のみ
 url = "http://stocks.finance.yahoo.co.jp/stocks/detail/?code=" & code & ".T"
' ヤフーファイナンスの株価情報を読み込み開始
Else ' コードに市場コードが付与されている時
url = "http://stocks.finance.yahoo.co.jp/stocks/detail/?code=" & code
   ' ヤフーファイナンスの株価情報を読み込み開始
End If
Else ' コードが数値でない時(米国株式の時)


変更箇所2(株価取得のところを変更)
 If Len(code) <> 8 Then 'コードが8桁以外の時(株式の時)
 If IsNumeric(code) Then ' コードが数値の時

   ↓ 上記コードを下のように変更

If Len(code) <> 8 Then 'コードが8桁以外の時(株式の時)
 If IsNumeric(Left(code, 4)) Then ' コード左4桁が数値の時


以上の変更を行った上で、エクセル表のコードのところに、
【1413】桧家ホールディングスなら 1413.N
【3384】アークコアなら 3384.N
というように銘柄コードに.Nを追加して入力して下さい。

名古屋証券取引所(セントレックス含む)は.N
札幌証券取引所(アンビシャス含む)は.S
福岡証券取引所(Q-Board含む)は.F
を銘柄コード末尾に追加すれば株価取得できます。

いずれ記事中のVBAコードを変更するようにしますが、
取り急ぎ、変更点のみ紹介しました。


2016/07/03 (Sun) 20:57 | REPLY |   

ゆゆゆ  

さっそくのご返信ありがとうございます。

HTMLソースのほうにばかり気を取られていて、URLの「T」はすっかり見逃してしまっていました。

お示しいただいたコードに変更したところうまくいきました。
これで保有銘柄の管理が効率よく行えます、ありがとうございました。

2016/07/04 (Mon) 22:33 | REPLY |   

mochi  

お役にたてたようでなによりです。 ^^

こんにちは。ゆゆゆさん。

> HTMLソースのほうにばかり気を取られていて、URLの「T」はすっかり見逃してしまっていました。
> お示しいただいたコードに変更したところうまくいきました。
> これで保有銘柄の管理が効率よく行えます、ありがとうございました。

 早速試していただけたみたいで、動作報告ありがとうございます。
 一応動作確認したコードではありますが、
 うまく伝えられたか心配だったので、安心しました。

 地方の取引所については、今まで特にそのような要望がなかったので、
 ほったらかしにしたままでいました。 ^^;

 せっかくなので、近いうちに記事中のVBAコードと
 ダウンロードファイルを更新しておこうと思います。
 
 コメントありがとうございました。


2016/07/05 (Tue) 21:34 | REPLY |   

Kiki  

ドル円レートを知るには

こんなすごいことができるとはびっくりしてます。
初歩的な質問で恐縮ですが、ドル円レートを出すには、どうしたらいいのでしょうか?

2016/12/12 (Mon) 21:34 | EDIT | REPLY |   

mochi  

Re: ドル円レートを知るには

Excelシートに取り込みたいってことですよね?

VBAではないですが、このサイトにWebクエリを使って、
為替レートを取得する方法が紹介されていますので、
参考にされてみてはいかがでしょうか?
http://www.hello-pc.net/howto-excel/exc_rate/


2016/12/12 (Mon) 23:37 | REPLY |   

カーバンクル  

エラーが出ます

おはようございます、はじめまして、よろしくお願いします。

実行時エラー '-2147024891(80070005)':

アクセスが拒否されました。

' ヤフーファイナンスをHTML形式で読み込む
http.Open "GET", URL, False
http.setRequestHeader "If-Modified-Since", "Thu, 01 Jun 1970 00:00:00 GMT"
http.Send

のhttp.Sendでエラーになっています。

一昨日までは動いていたのですが…(´;ω;`)ウゥゥ

windows10です。

2017/03/30 (Thu) 10:40 | REPLY |   

チー  

出来高の取得方法

初めまして。
こちらのVBA、ぜひ利用させていただきたいと思います。
一点、ご教授お願いいたします。
東証一部の出来高と個別銘柄の出来高を取得するには、どうしたらいいのでしょうか?
VBAは全く分からないので、申し訳ございませんがよろしくお願いいたします。

2017/03/30 (Thu) 12:07 | REPLY |   

mochi  

Re: エラーが出ます

はじめまして。カーバンクルさん。

> 実行時エラー '-2147024891(80070005)':
> アクセスが拒否されました。
> のhttp.Sendでエラーになっています。
> 一昨日までは動いていたのですが…(´;ω;`)ウゥゥ
> windows10です。

僕の環境(windows7ですが)では今日も正常動作してますね。

この前windows updateの更新プログラムをダウンロードしている最中に
株価取得VBAを実行したらエラーで止まってしまうことがありました。
プログラムダウンロードが優先されて、
VBAでのWebアクセスが中断されてしまうことがあるようです。

あとはヤフーファイナンスのサイト自体が応答していないとか・・・?

お役に立てないかもしれませんが、
僕の経験ではこれぐらいしか思い浮かびません。


2017/03/30 (Thu) 20:52 | REPLY |   

mochi  

Re: 出来高の取得方法

はじめまして。チーさん。

> 東証一部の出来高と個別銘柄の出来高を取得するには、どうしたらいいのでしょうか?
> VBAは全く分からないので、申し訳ございませんがよろしくお願いいたします。

東証一部はとりあえずとして、個別銘柄の出来高取得のコードを下記に示します。

If Len(code) <> 8 Then 'コードが8桁以外の時(株式の時)
If IsNumeric(Left(code, 4)) Then ' コード左4桁が数値の時
' 目印の"stoksPrice"">"の位置から現在株価を取得
check_txt = "stoksPrice"">"
st_point = InStr(1, http.responseText, check_txt) + Len(check_txt)
ed_point = InStr(st_point, http.responseText, "</td>")
price_txt = Mid(http.responseText, st_point, ed_point - st_point)

' 目印の"innerDate"と"前日終値"の位置から前日株価を取得
st_point = InStr(1, http.responseText, "innerDate")
ed_point = InStr(st_point, http.responseText, "前日終値")
tmp_txt = Mid(http.responseText, st_point, ed_point - st_point)

check_txt = "<strong>"
st_point = InStr(1, tmp_txt, check_txt) + Len(check_txt)
ed_point = InStr(st_point, tmp_txt, "</")
old_price_txt = Mid(tmp_txt, st_point, ed_point - st_point)

' 目印の"<dt class="title">出来高"位置から出来高を取得
ed_point = InStr(1, http.responseText, "<dt class=""title"">出来高")
st_point = ed_point - 100
check_txt = "<strong>"
st_point = InStr(st_point, http.responseText, check_txt) + Len(check_txt)
ed_point = InStr(st_point, http.responseText, "</")
sosa_sh.Cells(check_row, 20) = CDbl(Mid(http.responseText, st_point, ed_point - st_point))

Else ' コードが数値でない時(米国株式の時)

 VBAコード中に上記青色部分のコードを追加して下さい。

 sosa_sh.Cells(check_row, 20)は値を書き込むセルを指定します。
 check_rowは株式コードが入力されているところと同じ行を示します。
 20は列位置を表していますが、自身のシートに応じて、
 出来高を書き込みたいセルの列番号を設定するようにして下さい。


 上で言っていることが理解不能であれば、諦めていただくか、
 もしくはまずはExcelVBAの勉強をしていただけるようお願いします。



 

2017/03/30 (Thu) 21:05 | REPLY |   

名無し  

To mochiさん

> 実行時エラー '-2147024891(80070005)':
> アクセスが拒否されました。
> のhttp.Sendでエラーになっています。
> 一昨日までは動いていたのですが…(´;ω;`)ウゥゥ
> windows10です。

私の環境でも昨日からエラーになりました。
なんか調べてみたところ、ヤフーファイナンスではそもそもこういうプログラムを使った株価の自動取得が禁止されているようで、
頻繁にする人からのアクセスを禁止することがあるみたいです。

なので、私は諦めて別のサイトから取得できるように書き換えてみました。

参考になれば。

2017/03/31 (Fri) 10:01 | EDIT | REPLY |   

チー  

To mochiさん

早速のご回答ありがとうございます。
無事、取得することができました。
実は今まで違うVBAを使って取得していたのですが2,3日前からアクセスが拒否されるようになってしまい、非常に困っていました。
深く感謝申し上げます。

2017/03/31 (Fri) 10:15 | REPLY |   

mochi  

Re: To mochiさん

名無しさん。情報提供ありがとうございます。

> 私の環境でも昨日からエラーになりました。
> なんか調べてみたところ、ヤフーファイナンスではそもそもこういうプログラムを使った株価の自動取得が禁止されているようで、
> 頻繁にする人からのアクセスを禁止することがあるみたいです。
> なので、私は諦めて別のサイトから取得できるように書き換えてみました。
> 参考になれば。

 とりあえず、データ取得間隔として0.5秒間のタイマーを設けるコードを追記してみました。
 僕のところではエラーが出ないので効果があるかわかりませんが。。。

 もし僕もヤフーファイナンスに拒否られることがあるようであれば、
 別サイトからの取得を考えなければなりませんが、
 手間もかかりそうですし、それまで今のままでいこうと思ってます。 ^^;



2017/03/31 (Fri) 20:59 | REPLY |   

mochi  

Re: To mochiさん

こんばんわ。チーさん。

> 早速のご回答ありがとうございます。
> 無事、取得することができました。
> 実は今まで違うVBAを使って取得していたのですが2,3日前からアクセスが拒否されるようになってしまい、非常に困っていました。
> 深く感謝申し上げます。

 ひとまずお役に立てたようで良かったです。
 こちらのVBAコードでもアクセス拒否報告があるので、
 同じようになってしまうかもしれません。

 VBAコード中にタイマーを設ける部分を追記してありますので、
 それをフォローしておいた方が良いかもしれません。
 気休めにしかならないかもしれませんが。

 コメントありがとうございました。


2017/03/31 (Fri) 21:03 | REPLY |   

カーバンクル  

逃げる事になりますが…。

こんにちは

逃げる事になりますが、対策は取れました。

新しいシートに、
With ActiveSheet.QueryTables.Add
で貼り付けて、そこから検索すると楽です。

stockweatherの個別銘柄のページだと、PER PBRが載っているので。

ご参考までにm(__)m

如何でしょうか?

2017/04/04 (Tue) 16:19 | REPLY |   

mochi  

Re: 逃げる事になりますが…。

こんにちは。カーバンクルさん。

クエリテーブルを使う方式ですね。
Yahooファイナンスのフォーマットがよく変わることがあるようなので、
今の方法でアクセスしてました。

stockweatherでは東証上場銘柄のみですが、
今のVBAの一部を下記青文字のように変更することで対応できます。

1.URLを設定しているところ
If Len(code) <> 8 Then 'コードが8桁以外の時(日本株式の時)
If IsNumeric(Left(code, 4)) Then ' コード左4桁が数値の時
If IsNumeric(code) Then ' コードが数値のみ
url = "http://www.stockweather.co.jp/sw2/detail.aspx?code=" & code ' ヤフーファイナンスの株価情報を読み込み開始
Else ' コードに市場コードが付与されている時


2.株価・前日株価を取得するところ
If Len(code) <> 8 Then 'コードが8桁以外の時(株式の時)
If IsNumeric(Left(code, 4)) Then ' コード左4桁が数値の時
' 目印の"現在値</th><td><span class="strong">"の位置から現在株価を取得
check_txt = "現在値</th><td><span class=""strong"">"
st_point = InStr(1, http.responseText, check_txt) + Len(check_txt)
ed_point = InStr(st_point, http.responseText, "</span>")
price_txt = Mid(http.responseText, st_point, ed_point - st_point)

' 目印の"前日終値</th><td>"と"</td>"の位置から前日株価を取得
check_txt = "前日終値</th><td>"
st_point = InStr(1, http.responseText, check_txt) + Len(check_txt)
ed_point = InStr(st_point, http.responseText, "</td>")
old_price_txt = Mid(http.responseText, st_point, ed_point - st_point)

Else ' コードが数値でない時(米国株式の時)


http.responseTextに格納されるソースコードから該当箇所を抜き出しているだけなので、
VBAの文字列処理関数InStrやMidをネット検索するなどして理解してもらえれば、
どんなサイトにでも応用できます。

僕の紹介しているVBAは投信や米国株式の取得もできるようになっているのが特徴なので、
自分の動作環境で支障がない限りは今のままで行こうと思ってます。

情報提供ありがとうございました。


2017/04/04 (Tue) 20:38 | REPLY |   

あぷてぃ  

No title

はじめまして
VBA活用させていただきたいと思います。
アメリカ株式のことなのですが、コードMSFTはOKなのですが、NYダウのコード^DJI、S&P500のコード^GSPCでの取得で「型が一致しません」というエラーにかかります。
原因わかりますでしょうか?
よろしくお願いいたします。

2017/04/23 (Sun) 10:13 | REPLY |   

mochi  

Re: No title

> アメリカ株式のことなのですが、コードMSFTはOKなのですが、NYダウのコード^DJI、S&P500のコード^GSPCでの取得で「型が一致しません」というエラーにかかります。
> 原因わかりますでしょうか?

原因というか…株価指数の場合はフォーマットが異なるため
取得には対応していないということだと思います。


2017/04/23 (Sun) 16:05 | REPLY |   

johnko  

米国株式について

はじめまして
いつも便利に使わせて頂いております。

4月後半あたりから米国株がエラーになってしまって株価取得ができません。
米国株の列を削除してから株価取得をすると国内株や投資信託は問題なく
取得できます。

VBAやマクロに関して見直してみたのですが、自分の知識では修正できません。
どのように修正すれば良いのか教えていただけると助かります。

よろしくお願いします。

2017/05/06 (Sat) 08:39 | REPLY |   

mochi  

Re: 米国株式について

はじめまして。johnkoさん。

情報提供ありがとうございます。

> 4月後半あたりから米国株がエラーになってしまって株価取得ができません。
> 米国株の列を削除してから株価取得をすると国内株や投資信託は問題なく
> 取得できます。

 米ヤフーファイナンスへアクセスしようとするとリダイレクトエラーが出るようになっていました。
 XMLHTTPバージョンやURLをいろいろ変えて試しましたが解消されませんでした。

 米ヤフーファイナンスのサイト構成が変わって、
 XMLHTTPによるリダイレクト要求との相性が合わなくなってしまったものと思われます。
 まぁ。僕自身も通信部分はよく分からないのですが・・・ 

 とりあえず米国株式をグーグルファイナンスから取得するように、
 記事中のコードを修正(40-41行目、78-94行目)してありますので、
 それを参考にコード変更もしくはExcelデータをダウンロードするようにしてください。



2017/05/06 (Sat) 14:36 | REPLY |   

johnko  

To mochiさん

早速の回答ありがとうございます。

早速ダウンロードして保有銘柄コードで試してみました。
今まで通り取得できるようになりました。

ありがとうございました。

2017/05/06 (Sat) 18:53 | REPLY |   

mochi  

Re: To mochiさん

こんばんわ。johnkoさん。

動作報告ありがとうございます。

ひとまず取得できるようになったみたいで良かったです。
グーグルファイナンスもサイト変更等によって、
いつ同様にアクセスできなくなるか分かりませんが・・・ ^^;

またエラーが出るようになったらご連絡下さい。







2017/05/06 (Sat) 19:42 | REPLY |   

-  

管理人のみ閲覧できます

このコメントは管理人のみ閲覧できます

2017/08/20 (Sun) 21:44 | REPLY |   

TH69  

参考にさせて頂きました

mochi様、始めまして。TH69と申します。

最近、米国株の投資を始めたのですが、投資情報をエクセルで管理しようと思い試行錯誤中でした。

それで、最新の株価情報などを自動で取得できないかと検索してみたところ、mochi様のページがヒットしました。

エクセルVBAはある程度いじれるので、コードを参考にして試してみたら、見事に取得できるようになりました。(米国の株価と年間配当率の部分です)ありがとうございました。

今後さらに改良を重ねて使いやすいエクセルファイルにしたいと思います。

2017/10/22 (Sun) 16:13 | EDIT | REPLY |   

mochi  

Re: 参考にさせて頂きました

こんばんは。はじめましてTH69さん。

株式管理の参考になったようでなによりです。
ウェブスクレイピングの応用性は高いと思いますので、
目的に応じていろいろ試してみてください。

ご丁寧なコメントをいただきありがとうございました。

2017/10/22 (Sun) 23:12 | REPLY |   

-  

管理人のみ閲覧できます

このコメントは管理人のみ閲覧できます

2017/12/13 (Wed) 15:02 | REPLY |   

mochi  

Re: 高値と安値の取得方法

こんばんは。鍵コメさん。

この記事の株価取得VBAのものはサイトから直接HTMLソースコードを読み込んで、
そこから文字列関数を用いて目的のデータを取得するようにしています。

普通の高値・安値が取得できる技量があれば、
ストップ高・ストップ安とかの影響はないのではないかと思いますが…?

例えば、普通の高値とストップ高の違いは、
strongタグ内でのclass宣言の有無になります。

普通の高値として、strongタグで挟まれた数値部分が取得できていれば、
別にストップ高だろうと関係なく取得できると思うのですけど。

申し訳ありませんが、ご質問いただいた文面だけでは、
これ以上なんとも回答のしようがありません。

あと、どのような理由で鍵コメントにしたのかは存じませんが、
公開コメントでも互いに不利益に繋がるような内容は含まれていないように見受けられます。
このような場合、僕もどのような形で回答すべきか悩んでしまいますので、
特に支障がなければ公開コメントで質問してくださるようお願いします。

2017/12/13 (Wed) 22:26 | REPLY |   

TH69  

グーグルファイナンスのURLが変更されたようです

お世話になります。

掲題の件ですが、

http://www.google.com/finance?q=」の部分が

https://finance.google.com/finance?q=」となったようです。

それから教えて頂いたコードを使って作成した米国株を管理するエクセルファイルを「TH69の亜米利株」としてベクターで公開しました。

http://www.vector.co.jp/soft/winnt/business/se517044.html

何しろ米国株を始めたのは今年の10月からという超初心者ですので、根本的に何か間違っていないかが心配です(汗)。お暇な時にでも試して頂いて感想などお聞かせ頂ければありがたく思います。

では、これからもよろしくお願いします。

2017/12/20 (Wed) 22:37 | EDIT | REPLY |   

mochi  

Re: グーグルファイナンスのURLが変更されたようです

 おはようございます。TH69さん。

 グーグルファイナンスのURL変更情報ありがとうございます。

 今のところはリダイレクト処理によって正規URLに誘導されていますが、
 将来的にはどうなるかわからりませんので、
 いただいた情報を元に株価取得ExcelVBAの記事にフォローさせていただきました。


> それから教えて頂いたコードを使って作成した米国株を管理するエクセルファイルを「TH69の亜米利株」としてベクターで公開しました。

 ダウンロードして拝見させていただきました。
 機能が充実していて素晴らしいですね。

 ただ残念ながら僕自身は米国株取引をしてないんで、
 仮に根本的な間違いがあったとしても、それに気付くことができません。(;^_^A アセアセ・・・
 お力になれずすみません。 m(_ _)m

 ダウンロードしたファイル内のReadMeには、
 TH69さんへの連絡メールアドレスも記載されておりますし、
 不具合などがあればユーザーさんから情報が寄せられてくると思いますよ。

 そういったことへの対応は大変だろうと思いますが、
 より良いツールに仕上がっていくように頑張ってください。

 コメントありがとうございました。

2017/12/21 (Thu) 08:32 | REPLY |   

Naomi  

To mochiさん

素晴らしいツールをありがとうございます。

こんな便利なものがあって大変助かっています。

以前のコメントから出来高や時価総額は取得することが可能なのですが、PERについてはうまく取得できません。

根本的にVBAを理解していないからだと思いますが、取得するヒントをいただけませんでしょうか。

2018/01/08 (Mon) 20:42 | REPLY |   

mochi  

Re: To mochiさん

 はじめましてNaomiさん。

 出来高や時価総額は取得できているということなので要点だけお伝えします。

 出来高などは<strong>タグに囲まれている部分は数値だけでしたが、
 PERやBPRは「(連) 9.14」といった感じで数値でない文字も含まれています。

 数値以外の文字が含まれたものをCDbl関数で変換しようとするとエラーになります。
 先頭位置をずらしながらIsNumeric関数で数値化できるかチェックしていき、
 最初に数値化できた位置からの文字列をCDbl関数で変換するようにしてください。

 それが面倒であれば、最初に「(連)」もしくは「(単)」があるものとして、
 その文字数分だけ先頭位置をずらしてCDbl関数で数値化すれば良いと思います。

 CDblやIsNumeric関数の説明についてはググってみてください。

2018/01/08 (Mon) 21:57 | REPLY |   

三毛猫  

株価取得EXCEL、大変重宝に使わせていただいています。あたらめてありがとうございます。

ところで、ETFの<1553>を指定すると、「実行時エラー'5':プロシージャの呼び出しまたは引数が無効です」となり、最新株価が表示されません。修正することは可能でしょうか。

2018/01/18 (Thu) 19:12 | REPLY |   

mochi  

地方証券取引所の銘柄はコード末尾に「ドットと記号」を付けてくださいね。

こんばんは。三毛猫さん。

> 株価取得EXCEL、大変重宝に使わせていただいています。あたらめてありがとうございます。

 趣味で作ったものですが、少しでもお役に立てているのであれば僕もうれしいです。
 ありがとうございます。

> ところで、ETFの<1553>を指定すると、「実行時エラー'5':プロシージャの呼び出しまたは引数が無効です」となり、最新株価が表示されません。修正することは可能でしょうか。

【1553】MAXIS S&P東海上場投信は、名古屋証券取引所でしか取り扱っていない銘柄ですね。
 こんなETFもあるんですねぇ~
 ですので、記事中にも記載してあるように、
 銘柄コードには末尾に".N"をつけて、"1553.N"と入力してください。

2018/01/18 (Thu) 20:34 | REPLY |   

三枝  

大変有益なVBAコード!

数年前から利用させてもらっていますが、あらためて非常に有益なコードだと感謝しております。

私は中学生のころBasicでプログラミングしていたのですが、これからVBAを勉強してみるきっかけになりそうです。

2018/02/22 (Thu) 12:59 | REPLY |   
mochi

mochi  

高評価ありがとうございます!!

はじめまして三枝さん。

> 数年前から利用させてもらっていますが、あらためて非常に有益なコードだと感謝しております。

既にご利用されている方からの高評価、とても嬉しく思います。 <(_ _*)> アリガトォ 

> 私は中学生のころBasicでプログラミングしていたのですが、これからVBAを勉強してみるきっかけになりそうです。

インターネット環境のおかげもあって、VBAに関するプログラミング資料は豊富にありますし、
またExcelはパソコンにプリイントールされている場合も多いので、
VBAは手軽にプログラミングが楽しめるできる言語だろうと思っています。
是非、挑戦してみてください。 (*'-')b

励みになるコメントありがとうございました。 (^-^*)/

2018/02/22 (Thu) 17:34 | REPLY |   

いつも拝見  

質問

今ダウンロードできるものは地方証券対応でしょうか❓
あとダウンロードしたもので管理銘柄数を増やしたければ表もチャートも単純に行まるごとコピーで最下段に挿入でもよいのでしょうか❓

2018/03/04 (Sun) 12:09 | REPLY |   
mochi

mochi  

Re: 質問

> 今ダウンロードできるものは地方証券対応でしょうか❓
> あとダウンロードしたもので管理銘柄数を増やしたければ表もチャートも単純に行まるごとコピーで最下段に挿入でもよいのでしょうか❓

地方証券取引所の銘柄の場合は、銘柄コード末尾に下記2文字を付け足してください。
名古屋証券取引所(セントレックス含む):.N
札幌証券取引所(アンビシャス含む):.S
福岡証券取引所(Q-Board含む):.F
(例)名証の【1413】桧家ホールディングスなら 1413.N

チャート?が何を指しているかは分かりませんが、
表は行ごとコピー挿入でOKです。

2018/03/04 (Sun) 14:42 | REPLY |   

tenbo  

使わせていただきます。

株価の変化を確認するため年に数回全株価をダウンロードできるサイトで利用してきましたが、四季報も発売されたこともありサイトを見てみると有料になっており、頻繁に利用する訳では無いのでどうしたものかと考えていたところにこちらを発見いたしました。
テスト的に使ってみると良好に動作いたしました。
以前自分でも株探からの取得をVBAで作成したこともありましたが、動作が遅かったです(笑)
ありがとうございました。

2018/03/17 (Sat) 22:07 | REPLY |   
mochi

mochi  

ご丁寧にありがとうございます。

はじめまして。tenboさん。

お役に立てそうで良かったです。

ヤフーファイナンスに頻繁に連続アクセスすると拒否られることがあるという話もあったので、
これでも0.5秒間のタイマーを設けてあります。
そのタイマーがなければ処理時間は半分程度で済んでいるだろうと思われます。

VBAからWebスクレイピングする手法はいくつかありますが、
僕が知っている中では紹介したコードで用いている手法が一番早いと認識しています。

保有銘柄の運用管理にあたり、株式分割や株式統合が行われた際には、
株数や購入株価を入力し直す必要がありますので、そこだけ気を付けてください。

日本株の運用管理だけであれば、下記記事で紹介している株ポートフォリオもお勧めです。
https://mochi1999.blog.fc2.com/blog-entry-257.html
こちらは株式分割や株式統合に対して、株数や購入株価を自動で修正してくれます。

コメントありがとうございました。

2018/03/18 (Sun) 15:00 | REPLY |   

senhapi  

米国株の取得ができなくなってしまいました

はじめまして。いつも素晴らしいツールを使わせて頂き、感謝しております。
googleファイナンスの仕様が変更になったのか、米国株のティッカーで株価取得ができなくなってしまいました。
マクロを変更しようとチャレンジしましたが、断念です
お忙しい事とは思いますが、修正対応をお願いできませんでしょうか
よろしくお願い申し上げます

2018/03/22 (Thu) 21:06 | REPLY |   
mochi

mochi  

Re: 米国株の取得ができなくなってしまいました

はじめまして。senhapiさん。

グーグルファイナンスの仕様変更によって、
URL指定でダイレクトにアクセスできなくなってしまいました。

以前使えなくなっていた米国ヤフーファイナンスURL指定が
ちゃんとできるようになっていたので、
再び米国ヤフーファイナンスから取得するようにします。

取り急ぎ変更箇所を下記に示します。

41行目
url = "https://finance.google.com/finance?q=" & code
  
url = "https://finance.yahoo.com/quote/" & code

81~97行目
'---- グーグルファイナンス取得対応 20170506変更start ----
   :
'---- グーグルファイナンス取得対応 20170506変更end ----
  
'---- ヤフーファイナンス対応 20180322変更start ----
' 目印の<!-- react-text: 36 -->の位置から現在株価を取得
check_txt = "<!-- react-text: 36 -->"
st_point = InStr(1, http.responseText, check_txt) + Len(check_txt)
ed_point = InStr(st_point, http.responseText, "<!-- /react-text -->")
price_txt = Mid(http.responseText, st_point, ed_point - st_point)

' 目印のPrevious Closeの位置から前日株価を取得
check_txt = "Previous Close"
st_point = InStr(1, http.responseText, check_txt) + Len(check_txt)
check_txt = "<!-- react-text: 42 -->"
st_point = InStr(st_point, http.responseText, check_txt) + Len(check_txt)
ed_point = InStr(st_point, http.responseText, "<!-- /react-text -->")
old_price_txt = Mid(http.responseText, st_point, ed_point - st_point)
'---- ヤフーファイナンス対応 20180322変更end ----

2018/03/22 (Thu) 23:55 | REPLY |   

senhapi  

ありがとうございます

この度はご面倒を言い、申し訳ないです。
素晴らしく早いご対応と改善策を提示頂き、感謝致します。
いますぐ、試みる事は出来ませんが、頂いた改善策でやってみます。
ありがとうございます!

2018/03/24 (Sat) 00:40 | REPLY |   
mochi

mochi  

どういたしまして

こんにちは。senhapiさん。

今回は次の日午前中休みだったことから、たまたま時間が取れただけです。

当該記事にあるVBAコードならびにサンプルシートは修正してあります。

ちなみに今回の変更によりコード欄にJPY=Xを記入した場合、
ドル円レートが取得できるようになっています。
評価額の円換算などに利用していただければと思います。

情報提供ありがとうございました。

2018/03/25 (Sun) 23:53 | REPLY |   

yoshi  

米国株、ETF価格が取得できません

こんにちわ。
株価ETF価格取得ツールを提供していただきありがとうございます。

先ほど確認したのですが、「実行時エラー’13’: 型が一致しません」となり取得できません。
デバッグより、103行目sosa_sh.Cells(check_row, old_price_column) = CDbl(old_price_txt)
でエラーとなっています。

素晴らしいツールで今後も利用したいと考えていますので、確認をお願いしたいと思います。よろしくお願い申し上げます。

2018/04/25 (Wed) 12:12 | REPLY |   

yoshi  

先ほどの件について

先ほどの米株、ETFの価格が取得できない件ですが、あらためてV3.06をダウンロード後展開&移植したら取得できました。それまでは、貴HPに展開してあったVBAをコピー、私自身の管理ファイルにペーストしたら取得できませんでした。お騒がせしまし申し訳ありませんでした。

2018/04/25 (Wed) 13:30 | REPLY |   
mochi

mochi  

Re: 先ほどの件について

はじめまして。yoshiさん。

大変失礼しました。 <(_ _)> スンマセン

記事中に記載されているVBAコードの方で、変更フォローされていない箇所が2つありました。
先程、記事中VBAコードを修正しておきました。

ご指摘くださいましてありがとうございました。ヾ(^-^;)

2018/04/25 (Wed) 23:46 | REPLY |   

shin  

No title

はじめてコメントさせていただきます。

有益なツールを適用頂き有難うございます。
先月末より利用させていただいているのですが、本日利用したところ、上段のyoshiさん同様
「実行時エラー’13’: 型が一致しません」となり取得できなくなっておりました。

HPよりツールをダウンロードしているため、Verは3.06です。

ご確認頂ければ大変助かります。よろしくお願い致します。

2018/05/12 (Sat) 17:57 | REPLY |   
mochi

mochi  

米ヤフーファイナンスのデータフォーマットが仕様変更されていました。

はじめてshinさん。

米ヤフーファイナンスのデータフォーマットが仕様変更されたことにより、株価取得位置の目印となるキーワード自体が無くなってしまっていました。
現在のフォーマット仕様に対応させるように、VBAコードならびにエクセルファイル(V3.07)をフォローしましたのでご確認ください。

基本的にこの株価取得プログラムはサイトの表示フォーマットに大きく影響されます。
今回のデータフォーマットもいつまで続けてくれるか分かりません。
年に2~3回などの高い頻度で発生するようであれば、私も対応しきれませんので、その際は米国株式を株価取得の対象から外すことも考えております。
そのことをご承知の上で利用してくださるようお願いします。

2018/05/13 (Sun) 11:14 | REPLY |   

shin  

To mochiさん

この度は迅速な対応頂き、有難うございました。
改めてツールダウンロードさせて頂き、反映したところ、無事株価取得ができるように
なりました。

今後とも利用させて頂きたいと思っておりますので、よろしくお願い致します。

2018/05/13 (Sun) 15:45 | REPLY |   

あれあれ  

これどうでしょうか?

はじめまして

検索しておりましたら
https://iextrading.com/developer/
というサイトに 無料のAPIらしきものを 発見しました

英語に弱いので 詳細は 私には わかりませんが…

お役に立てれば 幸いです

2018/08/10 (Fri) 00:28 | REPLY |   

-  

管理人のみ閲覧できます

このコメントは管理人のみ閲覧できます

2018/08/10 (Fri) 01:22 | REPLY |   
mochi

mochi  

Re: これどうでしょうか?

はじめまして。あれあれさん。

> 検索しておりましたら
> https://iextrading.com/developer/
> というサイトに 無料のAPIらしきものを 発見しました


 僕もブラウザの自動翻訳頼みなので、このサイトだけでは分かりませんが、
 後から連絡いただいたフォーラムにこのAPIを使った事例が記載されていたので、
 YahooFinanceでのアクセスがダメにあった時に検討してみたいと思います。

 貴重な情報ありがとうございました。 <(_ _*)> アリガトォ

2018/08/10 (Fri) 22:11 | REPLY |   

たこ焼き  

MacBookのExcel2016macでの操作

MacのExcelでこのVBAを立ち上げると、対応していない旨のエラーが表示されます。どのようにしたらよいでしょうか。
当方Excel作業は全くの初心者の為、お手柔らかに御教授願います。

2018/08/11 (Sat) 23:19 | REPLY |   
mochi

mochi  

Re: MacBookのExcel2016macでの操作

はじめまして。たこ焼きさん。

> MacのExcelでこのVBAを立ち上げると、対応していない旨のエラーが表示されます。どのようにしたらよいでしょうか。
> 当方Excel作業は全くの初心者の為、お手柔らかに御教授願います。


残念ながら僕はMacを保有しておりませんので、どのようにすれば良いのか分かりません。
MSXML2などのAPIがMacでは使えないのかもしれませんね。

2018/08/12 (Sun) 00:13 | REPLY |   

琢磨  

VBA 400エラー

初めまして。いつも便利に使わせていただいてます。

ここ数日、マクロを動かしたところVBAエラーが表示され、エラーコードは400と表示されます。
それまで順調に動作していたのですが、私の設定ミスか、それともYahoo!ファイナンスの方で仕様の変更などがあったせいなのか分かりません。

他にも同様の症状が出る方がいらっしゃいましたら原因の究明お願いいたします。

2018/09/14 (Fri) 00:38 | EDIT | REPLY |   
mochi

mochi  

原因の究明って・・・ (^▽^;)

初めまして。琢磨さん。

エラーコード400がどこの箇所で出ているのかわからないので、なんとも言えませんが。
昨日僕が経験した事例を紹介しておきます。

昨日9/13にWindowsアップデートが行われました。
その後、株価取得VBAを実行したらウィルスチェッカーが働き、ほにゃらら(もう記憶にない言葉)の実行を許可しますか?と聞いてきたのでブロックしたら、http.Sendの行でエラーコード400(だったような気がします。)が出るようになりました。
ウィルスチェッカーに登録されてしまった株価取得VBAに対するブロック指定を一旦削除しました。
再び株価取得VBAを実行すると、またウィルスチェッカーが実行許可の確認してきたので、常時許可を選択しました。
その後は問題なく動作しています。

思い当たるところがないのであれば、これ以上は僕には分かりません。
個人が趣味でやっているブログに無料で公開しているVBAコードについて、上手く動かないからといって「原因の究明」なるような事を求められても、仕事でもあるまいし、そんなことに僕は対応することはできません。
貴殿にとって日々の株価を管理することが「原因の究明」を必要とするほど大事な事項であるのであれば、ちゃんとした有料のツールを利用することをおススメします。

2018/09/14 (Fri) 21:09 | REPLY |   

とら  

ダウンロードするとrdfフィルのメモ帳が表示される

はじめまして!
丁度探していたプログラム(WEBから株価データをエクセルに取り込むこと)に出会えて喜んでいます。
ところが,そこから先がうまく行きません。

エクセルにコードを貼り付けて,ボタン1をクリックしたのですが,何の応答もないので,サンプルの「ダウンロード」ボタンをクリックしてみました。
しかし<手順1>のような画面が出ません。
下欄に表示される「ファイルを開く」をクリックすると,rdfファイルのメモ帳が表示されます。
どこがおかしいのでしょうか?
原因を教えていただけると,ありがたいです。
使用OS:windows10
EXCEL:2010

2018/10/01 (Mon) 06:54 | REPLY |   
mochi

mochi  

Re: ダウンロードするとrdfフィルのメモ帳が表示される

当方では正常にダウンロードできるので、どこがおかしいか?原因は?なんて聞かれても分かりかねます。
アナタのパソコンのブラウザなりファイルエクスプローラーの設定がおかしいんじゃないでしょうか?
ご自分で調べて対処してください。

2018/10/01 (Mon) 21:06 | REPLY |   

あれあれ  

参考になりますかどうか……

とらさんの場合
ダウンロードしたファイルの拡張子を 【.rdf】から 【.xlsm】に変更すると
うまくいくかもしれませんね

また、私の環境では (Win7 64bit Excel2010)では
拡張子変更後に コンパイルエラーが出たので

Module2の先頭部を

Public Declare Function mciSendString Lib "winmm.dll" Alias "mciSendStringA" _
(ByVal lpstrCommand As String, ByVal lpstrReturnString As String, _
ByVal uReturnLength As Long, ByVal hwndCallback As Long) As Long

から

#If VBA7 Then
Declare PtrSafe Function mciSendString Lib "winmm.dll" Alias "mciSendStringA" _
(ByVal lpstrCommand As String, ByVal lpstrReturnString As String, _
ByVal uReturnLength As Long, ByVal hwndCallback As LongPtr) As Long
#Else
Public Declare Function mciSendString Lib "winmm.dll" Alias "mciSendStringA" _
(ByVal lpstrCommand As String, ByVal lpstrReturnString As String, _
ByVal uReturnLength As Long, ByVal hwndCallback As Long) As Long
#End If

に修正して
デバッグメニューから VBAProject のコンパイルすることで
起動するようになりましたよ

では

2018/10/03 (Wed) 19:41 | REPLY |   
mochi

mochi  

Re: 参考になりますかどうか……

あれあれさん。アドバイスありがとうございます。

とらさんはそもそもファイルをダウンロード保存できずに、直接メモ帳でrdfファイルとして開かれてしまうようです。
僕もダウンロードしたrdfファイルを一旦メモ帳で開き、拡張子xlsmで保存しなおしてみましたが、その場合エクセル起動時にエクセルファイルではないとして弾かれてしまいました。

FC2無料ブログではjpg/bmp/pngなどの一般画像形式もしくはrdfファイルしかアップロードできない仕様になっています。
そこで苦肉の策としてエクセルファイルの拡張子をrdfに変えて、無理矢理アップロードするようにしています。
手順2でダウンロード時に拡張子をxlsmに変更しているのはそのためです。

ですのでブラウザの設定などで、ダウンロードファイルを直接開くのではなく、一旦どこかに保存できるようにしてもらわないことにはどうにもならないと思われます。


> Module2の先頭部を
> Public Declare Function mciSendString Lib "winmm.dll" Alias "mciSendStringA" _
> (ByVal lpstrCommand As String, ByVal lpstrReturnString As String, _
> ByVal uReturnLength As Long, ByVal hwndCallback As Long) As Long
> から
> #If VBA7 Then
> Declare PtrSafe Function mciSendString Lib "winmm.dll" Alias "mciSendStringA" _
> (ByVal lpstrCommand As String, ByVal lpstrReturnString As String, _
> ByVal uReturnLength As Long, ByVal hwndCallback As LongPtr) As Long
> #Else
> Public Declare Function mciSendString Lib "winmm.dll" Alias "mciSendStringA" _
> (ByVal lpstrCommand As String, ByVal lpstrReturnString As String, _
> ByVal uReturnLength As Long, ByVal hwndCallback As Long) As Long
> #End If


 VBAのバージョンによって仕様が変更されたんでしょうね。
 何かバージョンアップする機会があったらフォローするようにしておきます。
 でも僕もwin7+Excel2010の環境なんですけど、特にコンパイルエラーとかは出てなかったりするんですよね。
 マイクロソフトのやってることはよくわからん… (^▽^;)

2018/10/03 (Wed) 21:24 | REPLY |   

とらりん  

http.sendでエラー

今日から?http.sendの部分でサーバに接続できないエラーが出るようになってしまいました。
とりいそぎご報告。

2018/10/09 (Tue) 23:48 | REPLY |   
mochi

mochi  

Re: http.sendでエラー

こんにちは。とらりんさん。

> 今日から?http.sendの部分でサーバに接続できないエラーが出るようになってしまいました。
> とりいそぎご報告。

 ヤフーファイナンス側で何かしたみたいです。
 日本株もしくは投信だけであれば、下記変更で暫定的に対処できました。

1.20行目のAPIを変更
 Set http = CreateObject("MSXML2.ServerXMLHTTP")
  ↓
 Set http = CreateObject("MSXML2.XMLHTTP")

2.60行目のタイムアウト設定行を削除
 http.setTimeouts 5000, 5000, 5000, 5000 ←この行を削除

3.エクセルシートをダウンロードして利用している場合
http.Sendの下に続く以下の3行を全て削除

If (http.Status <> 200) Then
GoTo Exit_out
End If

 これが一時的なものなのか?恒久的なものなのかはわかりませんので、しばらく様子を見ることにします。
 米国株は元のプログラムでも取得できる(上の変更を行うと米国株は取得できなくなる)ので、シート内に米国株も含んでいる場合は、ひとまず「日本株と投信」「米国株」でシートもしくはファイルを分けて運用してください。

 とりいそぎ回答です。

2018/10/10 (Wed) 01:10 | REPLY |   

momo  

No title

とらりんさんと同じく同様のエラーが発生しました。丁度きのう、東証アローヘッドの問題が起きたことも関係あるのでしょうか。

上記の対処、参考にさせていただきます。有り難うございます。



2018/10/10 (Wed) 15:14 | REPLY |   
mochi

mochi  

Re: No title

こんにちは。momoさん。

> とらりんさんと同じく同様のエラーが発生しました。丁度きのう、東証アローヘッドの問題が起きたことも関係あるのでしょうか。

 タイミング的には関係してそうに見えなくもありませんが、技術的にはヤフーファイナンスにアクセスしているだけなので関係ないとは思っているんですけどねぇ。
 ヤフーファイナンス自体、このVBAのようなwebスクレイピングは禁止してしてますんで、本気で何らかの対策を行ってきた可能性も否定できません。

> 上記の対処、参考にさせていただきます。有り難うございます。

 しばらく様子を見て元のVBAでアクセスできない状態が続くようでしたら、米国株との併用を考慮した上で、記事内容の変更フォローしようと思います。

2018/10/10 (Wed) 22:09 | REPLY |   

とらりん  

No title

対応策ご教示ありがとうございます。再び動くようになりました。

2018/10/10 (Wed) 23:15 | REPLY |   

hiro  

To mochiさん

当方ではWSHでやっていますが、記事を参考にして以下のようなコードで取得を試みました。

url = "https://stocks.finance.yahoo.co.jp/stocks/detail/?code=8001.T"
Set http = CreateObject("MSXML2.XMLHTTP")
http.Open "GET", url, False
http.setRequestHeader "If-Modified-Since", "Thu, 01 Jun 1970 00:00:00 GMT"
http.Send
msgbox http.responseText

その結果、何がしかのテキストデータの取得はできるようになりましたが、"stoksPrice"">" に続くデータなど、必要な文字列が含まれていません。WSHとVBAの違いが原因なんでしょうか。

2018/10/13 (Sat) 19:39 | REPLY |   
mochi

mochi  

WSHの事は分かりませんが…

こんにちは。hiroさん。

> msgbox http.responseText

MsgboxはVBAだと1024文字しか表示することができません。
おそらくWSHのMsgboxにも同様の文字数上限があるのではないかと思います。
当方ではデバックや解析の際にはresponseTextをファイル出力して確認するようにしています。

2018/10/13 (Sat) 20:07 | REPLY |   

あれあれ  

汚いコードですが…

他言語や Yahoo JAPAN以外のサイトでは 問題ないようですね
mochiさんの暫定策を元に 書いてみました

' ---- 20170331 頻繁アクセス対策 end --------

' ヤフーファイナンスをHTML形式で読み込む
Set http = CreateObject("MSXML2.ServerXMLHTTP")
http.Open "GET", url, False
http.setRequestHeader "If-Modified-Since", "Thu, 01 Jun 1970 00:00:00 GMT"
http.setTimeouts 5000, 5000, 5000, 5000
On Error Resume Next
http.Send
If (Err.Number <> 0) Then Set http = CreateObject("MSXML2.XMLHTTP"): http.Open "GET", url, False: http.setRequestHeadhttp.setRequestHeader "If-Modified-Since", "Thu, 01 Jun 1970 00:00:00 GMT": http.Send

If (http.Status <> 200) Then
GoTo Exit_out
End If
On Error GoTo 0

Err.Clear

If Len(http.responseText) < 10 Then
GoTo Exit_out
End If

2018/10/13 (Sat) 20:22 | REPLY |   

hiro  

To mochiさん

ご推察のとおりでした。正常に取得できていることを確認しました。

2018/10/13 (Sat) 20:42 | REPLY |   
mochi

mochi  

Re: 汚いコードですが…

こんにちは。あれあれさん。

参考にさせていただきます。

2018/10/14 (Sun) 16:28 | REPLY |   
mochi

mochi  

Re: To mochiさん

こんにちは。hiroさん。

> ご推察のとおりでした。正常に取得できていることを確認しました。

解決できたようでなりよりです。

2018/10/14 (Sun) 16:29 | REPLY |   

-  

承認待ちコメント

このコメントは管理者の承認待ちです

2018/10/15 (Mon) 15:07 | REPLY |   

-  

承認待ちコメント

このコメントは管理者の承認待ちです

2018/10/16 (Tue) 18:09 | REPLY |   

-  

承認待ちコメント

このコメントは管理者の承認待ちです

2018/10/25 (Thu) 14:07 | REPLY |   

Post a comment

1 Trackbacks

Click to send a trackback(FC2 User)
この記事へのトラックバック
  •  VBAで「PER取得マクロ」を作成しました
  • 株価指標のPERをYahoo!ファイナンスから取得し、Excelシートにコピーするマクロを作成しました。ソースを公開します。 1. 動作と仕組み 1-1. 動作 マクロを実行すれば、下図のように、エクセルシートにPER等の情報が一覧で取得できます。 ※クリックで拡大します。 1-2. 仕組み Yahoo!ファイナンスのページから、データを取得します。 順...
  • 2013.10.24 (Thu) 01:12 | Kapok の資産運用