【解決に至った回答には500pt】ディスプレイに表示された数字をエクセルに自動で記入していきたい。


例えば楽天マーケットスピードという株価情報を表示するソフトは、刻々と変化する株価をリアルタイムで見ることができます。

PCのディスプレイ上で刻々と変化する数字を自動でエクセルに記入していきたいです。
ただし取得したいデータは画面の一部分なので、範囲を選択できなければなりません。

マーケットスピードから送られてくるデータをファイルに挿入できる形で取得するか、OCRを使用する方法でも構いません。

■満たすべき要件は以下のとおりです。

・毎秒一回、データを取得
・データ取得を開始してからデータを得るまでの時間が0.5秒以内
・取得したそれぞれのデータはどの箇所から取得したものかわかる
・ディスプレイ上の選択した範囲のデータを取得(OCRの場合のみ)

楽天にはRSSというツールがあり、これを使用すると株価情報をリアルタイムにエクセルで表示することができますが、
RSSには取得できない数値があるため、RSSを使用せずに独自にエクセルに表示したいです。

回答の条件
  • 1人5回まで
  • 13歳以上
  • 登録:2014/05/04 11:01:01
  • 終了:2014/05/11 11:05:03

回答(0件)

回答はまだありません

  • id:nazeka2014
    画面キャプチャを毎秒ごとにスクリーンショットを取って、その画像の指定部分をOCRソフトに文字に変換。それをエクセルに貼り付けて、画像を削除。これを毎秒ごとに処理するには、システム会社にシステムを特注で発注するくらいの案件だと思う。まあ、個人の自作プログラムじゃ無理だろう。
  • id:cx20
    過去に類似の質問がありましたので、ご参考まで。

    ■ Flashで表示されるデータを取得する方法
    http://q.hatena.ne.jp/1314716487#a1098305
    → フリーの OCR ソフト「Tesseract OCR」の使用例を紹介

    Windows 自動化ツール「UWSC」と上記の OCR を組み合わせたら、実現可能な気もしますが、
    パフォーマンスに難がありそうです。。。
    (あと、マクロの実行中、他の操作が出来なくなるので、要件に合わない気もします。。。)

    ■ SAVEIMG関数
    http://canal22.org/tag/saveimg/

    > SAVEIMG(画像名, [ウィンドウのID, x, y, 幅, 高さ, クライアント指定, JPEG指定] )
  • id:Silvanus
    質問内容に具体性が余りに不足してしまっていて、達人の皆さんも答え難いんじゃないでしょうか。MarketSpeedで表示されている文字列がWindowsのスタティックコントロールやステータスバーとして処理されているのなら、画像的に取得しなくてもテキストデータを引っこ抜いて来られますよね。そういうことを検証しようと思ったら、例えば「総合タブ-総合サマリーのシートで、資産名が○○○の時価評価額をリアルタイムに取得したい」等の様に具体例を示して貰わないとダメだと思います。
  • id:karuishi
    マケスピで、引っこ抜きやるのが使用許諾上許されているかは別として

    画面キャプチャ方式は処理が重くて実用的ではないみたいですね。
    http://marketspeedlabo.blogspot.jp/

    楽天RSSで取得する分にはいろいろなソフトがありますので
    リアルタイムでなく時系列データをデータベース化するだけならこちらをオススメ。
  • id:cx20
    参考までに「UWSC」+「Tesseract OCR」を試してみました。
    もう少し改善の余地があるかもしれませんが、誤認識があるようなので、過度な期待はしない方がよさそうです。。。
    「8」を「3」と認識したり、「0」を認識してくれなかったり。。。
    なお、画面キャプチャのパフォーマンス自体は、キャプチャ範囲を数値1件分に限定したらそれほど、負荷はかからない印象でした。

    <既定の設定> → <数値のみの設定>
    I.I77.n9 → 1.177. 9
    1,166.99 → 1,166.99
    I.I6?.65 → 1.16 .65
    1,154.72 → 1,154.72
    I.I6n.64 → 1.16 .64
    I.I6?.9E → 1.16 .93
    1,167.62 → 1,167.62
    I.I6z.5n → 1,162.9
    I.I?9.35 → 1,169.35
    I.I?6.9E → 1,166.93
    1,162.15 → 1,162.15
    1,145.73 → 1,145.73
    1,134.26 → 1,134.26
    I.IZE.?7 → 1.123. 7
    I.IzI.5n → 1,121.51
    I.I46.4n → 1.146.4
    1,146.12 → 1,146.12
    1,173.33 → 1,173.33
    1,193.45 → 1,193.45
    I.ZIZ.76 → 1,212.76
    1,213.44 → 1,213.44
    I.zIn.z4 → 1.21 .24
    1,197.53 → 1,197.53
    I.IE9.3? → 1.139.3
    I.I6E.7E → 1,163.73

    <設定ファイル(tesseract.conf)>
    tessedit_char_whitelist 0123456789,.

    何かあったときの責任は取りたくないので、コードの提示はやめておきます。。。
  • id:Silvanus
    OCR使うよりも、質問主の環境でMarketSpeedが表示する数字のフォントイメージをキャプチャしてUWSC(或いは自作プログラム)で照合する方が、誤りが無くて良いんじゃないかと思いますけど。
  • id:Silvanus
    Microsoft Spy++ の Property Inspector でみる限り、何となく覗けそうな感じですが、MarketSpeedの利用者登録をしていないので確認にしようがなかった…orz。
  • id:xptree
    皆さんコメントありがとうございます。
    質問は500文字以内しか入らず、大雑把な質問となってしまい申し訳ありません。
    色々と参考になります。

    cx20様のコメントはとても参考になります。
    正誤率は低く処理も重いですが、流れとしては理想です。
    このふたつの問題さえ解決できれば完璧です。

    Silvanus様
    何度もコメントありがとうございます。とても助かります。
    メッセージを送らせて頂きました。お時間のあるときに目を通して頂けますと幸いです。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません