【無料配信♪】Renta !全タテコミ作品第1話

パソコンを使って趣味の株取引をしています
EXCELでプログラムを作り売買を決めていますが、対象は30銘柄です

その銘柄の時価を手入力でセルにインプットしています
この手入力が大変煩わしいのです

株価が変わった時、もしくは一定時間ごとに私のシートの指定したセルに株価を自動的に入力してくれるプログラム、またはサービスはありませんか?


目的】時価入力が頻繁で大変だから自動化したいのです  シート内のセルではなくファイルの中に書き込んでおいてくれても結構です

このQ&Aに関連する最新のQ&A

A 回答 (2件)

    • good
    • 14
この回答へのお礼

参考になりました

ありがとうございます

お礼日時:2012/11/22 21:17

株の知識はありません。



株価をどちらで確認しているのかわからないので、具体的にこうすればできるとは言えません。

例えば、株価を特定のウェブページで確認している例

1つのページに知りたい銘柄の金額が出るのか、それぞれ別のページに出るのかで多少ちがいますが、

普段確認しているページを一定時間毎に開いて、
開いたページのHtmlソースを取得して、そこから必要な情報を抜き取って、その時にexcelに保存されている値と比較する
は比較して異なれば新しい値を保存する

というものを自作されてはどうでしょうか?
    • good
    • 0
この回答へのお礼

ありがとうございます

でも 『Htmlソースを取得して、そこから必要な情報を抜き取って、その時にexcelに保存されている値と比較する』 など私にはトテモ無理です

自作など考えられません!

ありがとうございました

お礼日時:2012/11/22 21:16

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Q株価関連情報を取得できるAPIを知りたい

株価関連の、自分用のソフトウエアを作りたいと思っています。
そこで、株価関連情報を取得できるAPIを知りたいです。

速報性はあまり気にしません。20分ディレイとか、1日ディレイとかでもいいです。

自分なりに探してみたのですが、現時点で使えるAPIはほとんど無いように思いましたので、細かいことは言いません。
xmlとか、CSVとか、rssとか、それなりにシステム的に処理できる形で
何らかの株価関連情報を取得できるAPIをご存知でしたら、何でも良いので教えて下さい!!

Aベストアンサー

楽天RSS http://marketspeed.jp/feature/rss/index.html
岡三RSS http://www.okasan-online.co.jp/ont/function/okasan_rss/
↑この2つはリアルタイムに株価を取得するものです。

株価データダウンロードサイト http://k-db.com/site/default.aspx
↑これは日足相当のデーターをCSVでダウンロードできるサイトです。

あるいは、普通のWebサイトの情報を、自分でHTMLを解析して情報を取得したりします。これはいわゆるスクレイピングと呼ばれるやりかたです。

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

ヤフーファイナンスの株価時系列データを、EXCELのVBAを使って、1回のマクロ操作で複数銘柄EXCELに取り込みたいと考えています。

EXCEL Sheet1のA1、A2、A3、、、に取り込みたい銘柄コードを記入し、マクロを走らせると同ブック内で銘柄コード別にシートが出来上がるのが理想です。

データ取得期間は”デイリー”で”1999/1/1~2012/1/1”を考えています。

よろしくお願いします。

Aベストアンサー

>(私は、今回そこまでやるつもりはないですが)
...と書いておきながらやるワタシって...orz

Option Explicit
Sub test()
  Dim fromDate As Date '取得開始日
  Dim toDate  As Date '取得終了日
  Dim n    As Long
  Dim d, cds()

  'Dim t As Single
  't = Timer
  'toDateに取得終了日をセット可能
  toDate = Date '#8/31/2009#
  With Sheets("Sheet1")
    'B1セルから前回取得終了日をセット。最初は未入力で可
    d = .Range("B1").Value
    If IsDate(d) Then
      If d >= toDate Then Exit Sub
      fromDate = CDate(d + 1)
    End If
    'B1未入力だったら1999.1.1
    If fromDate < #1/1/1999# Then
      fromDate = #1/1/1999#
    End If
    '銘柄コードを配列で取得
    n = .Cells(.Rows.Count, 1).End(xlUp).Row
    If n = 1 Then
      ReDim cds(0)
      cds(0) = .Range("A1").Value
    Else
      cds() = .Range("A1").Resize(n).Value
    End If
    '引数:銘柄配列, 開始日, 終了日
    Call getXML(cds(), fromDate, toDate)
    'B1セルに今回取得終了日
    .Range("B1").Value = toDate
  End With
  'Debug.Print Timer - t
End Sub
'---------------------------------------------------------------------
Sub getXML(ByRef cds() As Variant, _
      ByVal dCHK As Date, _
      ByVal dDate As Date)
  Const FLD = "日付 始値 高値 安値 終値 出来高 調整後終値*" '列項目名
  Const CX As Long = 7                   '配列の列数(項目数)
  Const PTN = ">([^<>\n]+)<"                'データ抜き出しパターン
  Const CHK = "<small>調整後終値*</small></th>"       'テーブル判断項目htmlTEXT
  Dim dTMP As Date   '検索開始Date
  Dim xh  As Object  'MSXML2.ServerXMLHTTP
  Dim re  As Object  'VBScript.RegExp
  Dim mc  As Object  'RegExp.Match
  Dim ws  As Worksheet 'データ書き出しSheet
  Dim flg As Boolean  'LoopOut判定FLG
  Dim url As String  'URLアドレス
  Dim ret As String  'XMLHTTP.responsetext
  Dim s(7) As String  'URL構成文字列
  Dim dX  As Long   '期間日数
  Dim n  As Long   'chk文字存在判定
  Dim x  As Long   'HTML項目Loop用
  Dim cnt As Long   'データCOUNT
  Dim i  As Long
  Dim j  As Long
  Dim k  As Long
  Dim v, w       'データ格納用配列,列項目名分割用配列
  Dim cd        '銘柄Loop用

  On Error Resume Next
  Set xh = CreateObject("MSXML2.ServerXMLHTTP")
  On Error GoTo 0
  If xh Is Nothing Then Exit Sub
  
  On Error GoTo errHndlr

  '開始日より1ページ多目に
  dTMP = DateAdd("d", -50, dCHK)
  s(1) = "c=" & Year(dTMP) '開始年
  s(2) = "a=" & Month(dTMP)  '開始月
  s(3) = "b=" & Day(dTMP)  '開始日
  s(4) = "f=" & Year(dDate) '現在年
  s(5) = "d=" & Month(dDate)  '現在月
  s(6) = "e=" & Day(dDate)  '現在日
  s(7) = "g=d&q=t&y="

  dX = CLng(dDate - dCHK) + 1
  '期間日数から配列の大きさを設定(+1がちょっと肝)
  ReDim v(1 To dX + 1, 1 To CX)
  w = Split(FLD)

  Set re = CreateObject("VBScript.RegExp")
  re.Pattern = PTN
  re.Global = True
  
  'コード範囲をLoop
  For Each cd In cds
    s(0) = "http://table.yahoo.co.jp/t?s=" & cd
    url = Join(s, "&")
    cnt = 1
    For i = 0 To dX Step 50
      xh.Open "GET", url & i, False
      xh.Send
      If (xh.Status >= 200) And (xh.Status < 300) Then
        ret = xh.responsetext
        n = InStr(ret, CHK)
        If n = 0 Then Exit For
        ret = Mid$(ret, n + Len(CHK))
        Set mc = re.Execute(ret)
        x = 0
        For j = 1 + i To 50 + i
          cnt = j
          For k = 1 To CX
            v(j, k) = mc(x).submatches(0)
            'データ終了判定
            If k = 1 Then
              flg = IsDate(v(j, 1))
              If flg Then
                v(j, 1) = CDate(v(j, 1))
                flg = (v(j, 1) >= dCHK)
              End If
              If Not flg Then
                j = i + 50
                i = dX
                Exit For
              End If
            End If
            x = x + 1
          Next
        Next
      End If
    Next
    On Error GoTo shtAdd
    Set ws = Sheets(CStr(cd))
    On Error GoTo errHndlr
    With ws
      'データ書き出し
      .Cells(.Rows.Count, 1).End(xlUp).Offset(1).Resize(cnt - 1, CX).Value = v
      .Range("A1").CurrentRegion.Sort Key1:=.Range("A2"), _
                      Order1:=xlDescending, _
                      Header:=xlYes, _
                      OrderCustom:=1, _
                      MatchCase:=True, _
                      Orientation:=xlSortColumns, _
                      SortMethod:=xlStroke
    End With
  Next

errHndlr:
  Set mc = Nothing
  Set re = Nothing
  Set xh = Nothing
  With Err()
    If .Number <> 0 Then
      MsgBox .Number & vbLf & .Description
    End If
  End With
  Exit Sub

shtAdd:
  '新規コード時Sheet追加
  With Sheets.Add
    .Name = CStr(cd)
    .Columns(1).NumberFormat = "yyyy/mm/dd"
    .Range("A1").Resize(, CX).Value = w
  End With
  Resume
End Sub
'---------------------------------------------------------------------

>(私は、今回そこまでやるつもりはないですが)
...と書いておきながらやるワタシって...orz

Option Explicit
Sub test()
  Dim fromDate As Date '取得開始日
  Dim toDate  As Date '取得終了日
  Dim n    As Long
  Dim d, cds()

  'Dim t As Single
  't = Timer
  'toDateに取得終了日をセット可能
  toDate = Date '#8/31/2009#
  With Sheets("Sheet1")
    'B1セルから前回取得終了日をセット。最初は未入力で可
    d = .Range("B1").Value
   ...続きを読む

QYahoo! Financeの株価データをエクセルに自動取り込みしたい

具体的に質問します。

 目的:Gap(空、窓)の研究、Gapの発生した銘柄をキャッチし、分析したい

 対象:日経500構成銘柄

 方法:Yahoo! Financeから、日経500構成銘柄の当日、高値・安値をエクセルに
     取り込み、前日の高値・安値と比較判断させ、フラッグ(0 or 1)をつける。

 セルのイメージ
           〔日々のデーター〕
 銘柄コード 高値 安値  高値 安値  判断 
 1332     ○○ ○○ ○○ ○○  =if
 1334      ・    ・   ・    ・   ・
 1601      ・    ・   ・    ・   ・
  ・
  ・
  ・

 さて、日経500構成銘柄の銘柄コードはエクセルで保持しております、
 これを、1銘柄ずつYahoo!ファイナンスに渡し、同サイトの基本情報
 (銘柄コード・高値・安値のみ表示されるように調整済み)から、高値・安値を
 引ぱってきて、エクセルに貼り付ける。
 このようなことをしたいのですが、どのようにすれば良いか教えて下さい。
 また、自分の考え以外に、もっとこうしたら良いよ、といったお考えが
 ありましたらお知恵を拝借したいと思います。
 宜しくお願いします。
 尚、従来は、二つのYahoo!IDを使って、Financeのポートフォリオ機能を
 使って手作業でやっていました。   

具体的に質問します。

 目的:Gap(空、窓)の研究、Gapの発生した銘柄をキャッチし、分析したい

 対象:日経500構成銘柄

 方法:Yahoo! Financeから、日経500構成銘柄の当日、高値・安値をエクセルに
     取り込み、前日の高値・安値と比較判断させ、フラッグ(0 or 1)をつける。

 セルのイメージ
           〔日々のデーター〕
 銘柄コード 高値 安値  高値 安値  判断 
 1332     ○○ ○○ ○○ ○○  =if
 1334      ・    ・   ・    ・...続きを読む

Aベストアンサー

エクセルの「WEBクエリ」を使えばできます。
マクロを作ったことはあるでしょうか?
1銘柄づつ実行する必要があるので、操作を繰り返すマクロを作る必要があります。

私の場合は、
(1)どの銘柄でも良いので、手順をマクロに自動記録しながらウェブクエリで欲しい画面をエクセルにダウンロードし、必要な部分をコピー&ペーストして記録終了。
(2)ウェブクエリのマクロの銘柄コード部分を変数に書き換える。
(3)銘柄リストを変数に代入するマクロを作る。
(4)コピーしたデータを変数に代入してあとで一括書き出しするか順番にエクセルにペーストしていくかのマクロを書く。
(4)銘柄数分繰り返すマクロを作る。

実際どうするかはここでは書ききるのは難しい・・・。
プログラム経験ある方ならこれでわかるかと。。。

QExcelVBAでのプロジェクトのロックの解除の方法

ExcelのVBEでプロジェクトがロックされてプロジェクトが表示されません。
VBAProjectをダブルクリックしてもパスワードの画面がでません、”プロジェクロがロックされています”と表示されるだけです。
このロックをはずす方法を教えて下さい。

Aベストアンサー

#2の回答者です。

>通常のものは、VBAProjectをダブルクリックか、VBAProjectのプロパティーの選択でパスワード入力のダイアログボックスがでるという理解でよいでしょうか。

そのとおりです。Excel97以前のものになると手立てがなくなります。Excel97は、Excel97のみでしか、基本的には開けられません。もちろん、97以降は、特殊なロックをしていない限りは、完全に開けられないということはないはずです。

QEXCELのwebクエリが反映されない。

EXCELのwebクエリ機能を使ってリアルタイムの為替情報を表に反映させたく、以下のページをみながらやってみました。
参照:http://www.hello-pc.net/howto-excel/exc_rate/
ですが、表が反映されません。(https://gyazo.com/fab14a26e303fdde0f25fd74ae332055)
その際に図のようなエラー表示がされました。

どうすれば反映されるようになりますでしょうか?
ご助言いただければ幸いです。

Aベストアンサー

スクリプトエラーは、以前は、IEのオプションで修正できたのですが、今は、それをやっても無理のようです。もうここの書き込みは、顧みられることもないかもしれませんが、#2で書いたものが中途半端ですから、完成形を作っておきます。

http://nikkei225jp.com/fx/
(VBAコード内で文字化けする可能性がありますので、再度、登録しなおしてください strURL = http://nikkei225jp.com/fx/  "URL"をコーテーションマークで囲んでください。)

取得先は、『日経の為替チャート』(他も試みましたが、失敗しました。)
このマクロは、サーバーに負担を掛けるようなものではありませんが、ループして使うのは問題が残ると思います。なるべく、PC自体にも負担を掛けないためには、参照設定をしたほうがよいと思います。(その意味が分かる方のみに限ります)

なお、サイトが更新されれば、取得できなくなる可能性がありますから、このコードは、2016/5/25のタイム・スタンプということにしておきます。

'//
Sub OnTimeGetExRates()
  Dim objIE As Object ''As InternetExplorer 'Microsoft Internet Control:参照設定
  Dim ChgRates As Variant
  Dim Countries As Variant
  Dim strURL As String
  Dim i As Long, j As Long, k As Long
  Dim buf As Variant
  Dim arBuf(5) As Variant
  Dim Kinds As Variant
  Dim StCell As Range
  '20160525 
  '最初の書き出しセルの場所
  Set StCell = Range("A2")
  
  Set objIE = CreateObject("InternetExplorer.Application")
  'Set objIE = New InternetExplorer '事前バインディングの場合
  On Error GoTo ErrHandler
  ''**************
  ''取得先 at May 25,2016/ no guarantee after the future.
  strURL = "http://nikkei225jp.com/fx/"
  ''*************
  Countries = Array("ドル円", "ユーロ円", "ポンド円", "スイスフラン円", _
                 "豪ドル円", "ニュージーランド円", "ユーロドル", "ドルインデックス")
  ChgRates = Array("511", "514", "515", "513", "516", "517", "523", "501") '"V518" 不明
  Kinds = Array("V", "H", "L", "C", "Z", "T")
  
  objIE.Navigate2 strURL
  j = 1
  Do While objIE.Busy Or objIE.readyState <> 4: DoEvents: Loop
  With objIE.document
        For i = 1 To UBound(ChgRates) + 1
         On Error Resume Next
         buf = ""
         buf = .getElementByID("V" & ChgRates(i - 1)).InnerText
         For k = 0 To 5
          arBuf(k) = .getElementByID(Kinds(k) & ChgRates(i - 1)).InnerText
         Next k
         If StCell.Cells(i, 1).Value = "" Then
             StCell.Cells(i, 1).Value = Countries(i - 1)
         End If
         For k = 0 To 5
           StCell.Cells(i, k + 2).Value = arBuf(k)
         Next k
         On Error Resume Next
        Next i
    End With
ErrHandler:
If Err.Number <> 0 Then
     MsgBox Err.Number & " :" & Err.Description
End If
objIE.Quit
Set objIE = Nothing
Beep
End Sub

'//

スクリプトエラーは、以前は、IEのオプションで修正できたのですが、今は、それをやっても無理のようです。もうここの書き込みは、顧みられることもないかもしれませんが、#2で書いたものが中途半端ですから、完成形を作っておきます。

http://nikkei225jp.com/fx/
(VBAコード内で文字化けする可能性がありますので、再度、登録しなおしてください strURL = http://nikkei225jp.com/fx/  "URL"をコーテーションマークで囲んでください。)

取得先は、『日経の為替チャート』(他も試みましたが、失敗しました...続きを読む

Qティックとは何ですか?

チャートで分足、日足、週足とありますが、
その中でティックとはどういう事ですか?
分足よりも短い秒単位でチャートが変わっていく事ですか?

あと、スプレッドチャートの事で質問なんですが、
ローソク足チャートが分かりづらいので、スプレッドチャートは1上がればそのままチャートになりますね、初心者ならスプレッドチャートの方が簡単で見やすいのではないかなと思うのですが、この考えは間違えでしょうか?

Aベストアンサー

ティックは1さんの回答の通りです。
1000円が1010円になったら1ティック。1000円のネクストプライスが1020円でも1ティック。1回値動きする(価格成立する)たびに刻んでゆくチャートです。
10秒値動きがなければ10秒動かないし3分値動きが無ければ3分動かない。1秒に3回値動きがあれば1秒に3回刻む。
時間軸が関係無いチャートです。

スプレッドチャートって
http://nikkei.hi-ho.ne.jp/rakuten-sec/ms05.html
これですか?
異銘柄の価格差のチャートですよ。基本的には鞘取り(スプレッド取引・アービトラージ取引)に使うやつです。信用売りしない人には意味が無いと思う。
「1上がればそのままチャートになる」という意味が
よくわかりません。
もしかすると違う物のことを言ってるかもしれない。

初心者はまずローソク足に慣れた方がいいと思います。

Q企業の過去10年のEPS等が見れるサイトはあるのでしょうか?

現在株を勉強し始めたばかりの者ですが、
企業の過去10年くらいのEPSやROE等の情報を
調べる事ができるサイトがあったら教えていただけないでしょうか。

Aベストアンサー

(1)EPS推移等

MSNマネー
http://money.msn.co.jp/Investor/Stocks/home.asp

コードで検索
 ↓
画面左の
「企業情報」
 ↓
「財務情報」
 ↓
「決算情報」
 ↓
画面なかごろの
プルダウンメニューより
財務諸表「10年間の総括」

EPS10年間推移が載ってます。


(2)BPS等
紙ベースなんですが・・・
「チャートブック月足集」に
直近8期分程度、載ってます。
1月号7月号なら、主要三市場上場の銘柄のBPS、EPS等が載ってます(ジャスダック市場以外)。
1,7月号は3000円ですけど、年1回か2回買えば済むので、資料としては、良いかと。

QエクセルのIF関数で、文字が入力されていたならば~

エクセルのIF関数で文字が入力されていたならば~、という論理式を組み立てたいと思っています。

=IF(A1="『どんな文字でも』","",+B1-C1)

A1セルに『どんな文字でも』入っていたならば、空白に。
文字が入っていなければB1セルからC1セルを引く、という状態です。

この『どんな文字でも』の部分に何を入れればいいのか教えてください。

またIF関数以外でも同様のことができれば構いません。

宜しくお願いします。

Aベストアンサー

=IF(ISTEXT(A1),"",B1-C1)

でどうでしょうか?

Q過去の株価を調べるには?

これから初めて株を購入しようとしているものです。
買値をいくらにしようかというところで、過去のデータを見て買いたいのですが、グラフはあるのですが、いついつは何円というデータがありません。
皆様、どうやってそういうデータは調べているのでしょうか?
是非お教えくださいませ。

Aベストアンサー

ヤフーのファイナンスの株式情報のところに時系列データ「株価」というのがあります。それをクリックすると下のURLで示した画面が出ますので、そこに銘柄コードと-年-月-日から-年ー月-日までと年月日を入れるとデータがずらっと出ます。私はそれで見ることもありますが、チャート(グラフ)でおおよそ分かるのであまり利用しません。どうしても細かい数字まで知りたい時に利用しています。

参考URL:http://table.yahoo.co.jp/t

Q【EXCEL】株式銘柄全リストの作成方法

EXCELを使用して、株式銘柄全リスト(銘柄名、コード、市場)の作成方法を教えてください。
また、株式銘柄全リストをダウンロードできるサイトがあったら是非教えてください。宜しくお願い致します。

Aベストアンサー

株価チャートを過去10年分表示し、日々の更新をネット上から無料で行えるソフトです。
ホームページ( http://www.alpha-chart.com/ )ではオンライン・スクリーニングも行えます。

東証大証やJASDAQなどの上場全銘柄(約3800銘柄)を表示し、各種のスクリーニングが行なえます。
また、過去3年の企業情報(連結決算情報、株主優待制度など)や信用残データも表示できます。

過去の株価データについてはYahoo! ファイナンスなどからダウンロードします。
企業情報も無料でダウンロードします。

参考URL:http://www.vector.co.jp/soft/win95/business/se243688.html


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング