dポイントプレゼントキャンペーン実施中!

EXCELファイルの今日の日付の保有株式・買付余力欄にVBAを使って、
SBI証券(IE)のデーターを自動入力したいのですが、
可能なのか不可能なのか、プログラムがわかりません。
マクロぐらいはやるのですが、その程度のスキルでは全く手に負えません。
わかる方、教えてください。
m(__)m

「vbaで出来ますか?」の質問画像

質問者からの補足コメント

  • 現在、自分がネックとなりそうな事を上げておきます。
    私の作ったEXCELは、左上のマクロボタンを押すと
    行が10行ほど追加され、そのついでに日付等をその10行に繁栄させる仕組みとなっております。
    なので、本日の欄を取得するのに何かプログラミングが必要だと思うのです。
    列については、何番目みたいなことができるのか、まったく未知です。

    No.4の回答に寄せられた補足コメントです。 補足日時:2018/02/19 07:24

A 回答 (4件)

>現在でも、どういうことなのかわかっていません。



まず、手順だけ教えておきます。
サイトからのデータを取る場合、まず、F12で、そのサイトのソースを読みます。
つぎに、必要なデータの親の部分になっている、IDやClass名を調べ、

objIE.document.getElementByID(名称)
objIE.document.getElementsByClassName(名称)

また、テーブルになっているところでは、
objIE.document.getElementsByTagName("Table")
で、行(Rows)と Cell を、その項目に合わせて取得します。

こういうことを、サイトのソースから読み取るわけです。

例を示します。ここのサイトのこのテーマ
「vbaで出来ますか?」
https://oshiete.goo.ne.jp/qa/10289233.html

は、F12 でみると、<div class="q_article_info clearfix">
に入っていますから、

Set objQinf = objIE.document.getElementsByClassName("q_article_info clearfix")
で、objQinf のオブジェクトから、取り出します。

その名称や、そのデータの取得の仕方は、サイトによって全部違います。ノウハウだけ教えれば、すぐにデータが取れるというようなことはありません。私の場合は、場合によって正規表現を利用しています。スピードは落ちますが、汎用性のあるコードになるからです。

ここで、WinHttp.WinHttpRequest.5.1を使って、DOMで取るという人もいますが、基本は、IEオブジェクトからです。サイトを見て判断をします。こちら側の方が取得には圧倒的に速いのですが、まったく失敗してしまうこともあります。

また、Webからのデータ取得の質問は、今まで、トラブルも多いので、極めて慎重にならざるを得ないのです。他のVBAの質問とは違って、警察沙汰になることもあるからです。もちろん、証券会社のデータの取得で捕まった人はいませんが、だいたい、その会社でユーティリティを配布していることもあるようです。

気をつけなくてはならないのは、相手様のサーバーに負担を掛けないことを、心がけることにしています。

---------------------------------------
「Webサイトをクローリングするときに気を付けたい2つのこと」
http://ascii.jp/elem/000/001/177/1177656/

「スクレイピングって法律的に何がOKで何がOUTなのかを弁護士が解説。」
https://it-bengosi.com/blog/scraping/

多少でも分かっていただけたでしょうか?
この回答への補足あり
    • good
    • 2
この回答へのお礼

ありがとうございます。
>>多少でも分かっていただけたでしょうか?
現段階では、まったくわかってませんが、まずはお礼を
m(__)m

とりあえず、歩き出さなければ何も始まらないから
まずは、少しやってみます。
三流君 VBAで楽しくプログラミング
こちらを少し勉強しつつ、進めていきたいと思います。
m(__)m

お礼日時:2018/02/19 07:14

#2の回答者です。



>SBI証券(IE)の保有株式・買付余力を、EXCELの本日の欄に書き込みをしたいということです。

私には、私の質問に対する答えとして、最初の質問と同じ内容を繰り返しましたので、残念ながら、こちらでは直接役に立つアドバイスはできません。ご質問者自身が開発をするしかないとお見受けします。

例えば、
「三流君 VBAで楽しくプログラミング」
http://www.ken3.org/vba/

文面的には雑な内容ではあっても、ここを丁寧に読み進めていくと、実際の取得可能な豊富なサンプルがありますから、ここに勝るWebのデータ取得のノウハウが得られる所はありません。

>やっぱ、難しいですかね?
いきなりは難しいということです。私は、最初は、IEのテキストデータの丸取りから、情報を抜き出すことをしていました。やがて、IEのタグやIDで取ることを覚えましたが、すべて独学です。難しいかどうかよりも、コツコツと自分で歩みを進め、諦めさえしなければ、いずれはできるようになるかと思います。
    • good
    • 1
この回答へのお礼

>NO.2の回答文
どこのサイトのこの部分をデータ収集をしたいという具体例を示してくれませんでしょうか。
こちらの意味が、ちと意味不で理解できませんでした。
>私には、私の質問に対する答えとして、最初の質問と同じ内容を繰り返しましたので・・
気分を害したのでしたら謝ります。
m(__)m
ただ、現在でも、どういうことなのかわかっていません。

先程、少しだけ「三流君 VBAで楽しくプログラミング」の動画を見させてもらいました。
なかなか良さそうな動画ですね。
ちょっと動画にて勉強してみます。

ただ私が思うに、私がやろうとしてることは、ちと敷居が高そうですね。
もし、よろしかったらまたご教授等、お願いできないでしょうか?
m(__)m

お礼日時:2018/02/18 15:44

利殖に関わる問題で、フリーで制作するということは、掲示板の性格はもとより、回答者自身も、本格的にはできないのですが、試しに、どこのサイトのこの部分をデータ収集をしたいという具体例を示してくれませんでしょうか。

そうしたら、相談に乗れるかもしれません。

しかし、#1さんのおっしゃられているように、ログインして、ご自身の情報に関わる問題に関しては、その開発もお教えすることも困難です。

ExcelのWebクエリ程度なら問題はないのですが、本格的なものは、完成にまでこぎつけるのは、70%ぐらいです。証券関係のものは、データテーブル(tbl)が存在していますので、比較的難易度は高くないはずですが、Amazonのような所は、見かけ以上に難しいものなのです。
    • good
    • 0
この回答へのお礼

ありがとうございます。
>>どこのサイトのこの部分をデータ収集をしたいという具体例を示してくれませんでしょうか
SBI証券(IE)の保有株式・買付余力を、EXCELの本日の欄に書き込みをしたいということです。
半自動で、マクロボタンでも押して書き込みができるようなスタイルをと思っております。
やっぱ、難しいですかね?
m(__)m

お礼日時:2018/02/17 17:50

こんにちは



>(IE)のデーターを自動入力したい
これって、ブラウザでサイトにアクセスして表示した内容をエクセルに取り込みたいってことでしょうか?
一般論としては可能だと思いますが、「保有株式・買付余力」って個人情報だと思いますので、サイト側がそれなりのセキュリティ対策を行っているのではないかと想像します。
その場合は、内容によるので、単純に普通の方法では取り出せない可能性もあるでしょう。

とりあえず一般的な方法を・・・
1)ブラウザで開かず直接エクセルに取り込む
以下の様な方法で、Webデータをエクセルに直接取り込める場合があります。
https://www.google.co.jp/search?q=%E3%82%A8%E3%8 …
これが可能なら、あとはエクセル上でデータを書き写す(?)程度の処理になるのでほとんど問題はないかと。

2)VBAでIEを制御し、表示内容からデータを取り込む
IEで目的のURLを開いたりデータを取得する方法はこの辺りをご参考に
https://www.google.co.jp/search?q=VBA+IE%E5%88%B …
こちらの場合は、サイトやセキュリティによって、工夫が必要な可能性もあるのでそのままとはいかないかも知れません。

>マクロぐらいはやるのですが
マクロは基本的にVBAです。(私も質問者様と同程度だと想像します)
頑張ってみてください。
    • good
    • 1
この回答へのお礼

早速のご回答ありがとうございます。
データーを半自動でいいので、楽に取り込みたいというのが趣旨です。
とりあえず、色々と挑戦してみたいと思います。

お礼日時:2018/02/14 17:50

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