- ベストアンサー
VBA経験者がVB2005を使えますか?
今までExcel2000のVBAを使って簡単なプログラムを作っていました。今度本格的にVBでプログラムを組みたいのですが、Excel2000のVBAとVB2005はまったく違うものなのでしょうか?(言語の書式など) やりたいことはネット上からデータ(数値や文字列など)を収集して計算することです。株情報などのデータを収集して最適な結果を導き出すもので、今まではExcelで手動で入力していたものを自動化したいと思っています。 また、この場合はVisualStudioではなくてVisualBasicだけを購入すればいいのでしょうか? よろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
こんばんは。Wendy02です。 #1さんが書いていらっしゃいますが、 >VSはバージョンアップごとに初心者には入りにくいソフトになっていくということでしょうか・・・。 今までの.Net が、VB6 までのユーザーには入りにくいので、VS2005は、もう少し敷居を低くしたそうですが、単に、オブジェクト指向の触ってはいけない表示をナシにした、というぐらいにしかないと思います。本質的には変わってはいません。 ただ、正直なところ、私は、VBAユーザーであっても、VB.Net は、もう避けられないと思っています。だから、VBAは使っていながら、すぐに使えるようにはならなくても、その気持ちがあれば、VS2005(VB.Net)は、並行的に進めたほうがよいかと思います。 >本当はWeb上から欲しいデータだけExcelに抽出できればと思っておりますが、そういうことをするのがInternetExplorer オブジェクトなのでしょうか? IEオブジェクトとしては、まだ使い方は、いろいろあるのでしょうけれども、私自身、例えば、ここの自分の発言したタイトル・日時、人のハンドルなどの情報と、質問をクローズしているかオープンなのかを、ボタンで、Excelに取得し表示できるようにしてあります。サイトの内容が多少変わっても、VBAのスクリプトを換えるだけで済みますから、簡単です。私の場合は、半分ぐらいは、VBAから、「VBScript.RegExp」を使って、ログを取得しています。特殊なサイトは取れませんが、Excelだけで、ネットにある画像でも取り出しワークシートに貼り付けることも出来ます。 http://www.ken3.org/cgi-bin/group/vba_ie.asp 三流君VBAでInternetExplorer.Applicationを操作する(IE操作) suffreさんは、もうVBAは、長いでしょうから、そこで出ているWebサイトの情報だけで、理解できるかと思います。
その他の回答 (2)
- Wendy02
- ベストアンサー率57% (3570/6232)
こんにちは。 VB2005(VB.Net)は、Excel VBAというよりも、どのぐらい、VBAに精通しているかによっても違いますが、少なくとも、まるで知らない人との差は、格段にあるけれども、旧来のVBを知っていれば知っているほど、細かい仕様がぜんぜん違っているので、戸惑うことが多いように思います。 >ネット上からデータ(数値や文字列など)を収集して >今まではExcelで手動で入力していたものを自動化したいと思っています。 でも、これだけだったら、Excel VBAだけで十分ではないでしょうか?Web で情報を取得する量にもよるけれども、InternetExplorer オブジェクトでアクセスして、データをIEオブジェクトの中の情報を選別して、必要なものだけをワークシートに貼り付けるわけで、それをVBAの外のツールで行っても、それほど変わらないと思います。スピード速い・遅いは、単に、Web サイトが重いかどうかだけの問題です。 これを、また、VB.Net で同じように作るというのは、また、勉強しながらになるので、なかなか手間のかかることになってしまいます。 Web クエリは、Web上の定型の表を丸ごと取るのであって、その本体は、QueryTable ですから、取得する場所のセルの位置が、決まってしまっています。シート一つを犠牲にして、決まった場所から、必要なデータを取り出す、ということになります。ただし、Webサイトが、パスワード・ログインなどがあって、その都度、入力を求められると、VBAでないと出来ません。 しかし、株情報は、Office カテゴリの中で、何度か出てきていますが、例えば、楽天証券のRSSアドインを使ったほうがよいのではありませんか?RSS関数で、自分なりの配置にすればよいのであって、最初から作り始めるのでは、かなり先のことになってしまいます。このRSSは、数分置きぐらいに、インターネットに頻繁にアクセスしています。そういう状態なので、Excel本体の機能以外は、何も使えなくはなってしまいますが、それでも、RSS関数と元の組み込み関数で、十分に作業は出来ます。 >また、この場合はVisualStudioではなくてVisualBasicだけを購入すればいいのでしょうか? とりわけ、VB.Net だけの必要性があれば別ですが、物量的にも VS2005が手に入りやすいような気がします。それは、どちらとも言えませんけれど。
お礼
ありがとうございます。VSはバージョンアップごとに初心者には入りにくいソフトになっていくということでしょうか・・・。やはりExcelをお勧めする方が多いですね。 >InternetExplorer オブジェクトでアクセスして、データをIEオブジェクトの中の情報を選別して、必要なものだけをワークシートに貼り付けるわけで、それをVBAの外のツールで行っても、それほど変わらないと思います。 そうなのですか。Webクエリはたしかにセル全体の情報を取得してしまうので無駄な分が処理を遅くしてしまっています。シートに一度読み込んでそこからまたデータを抽出するというのはさらに処理が遅くなります。 ですので、本当はWeb上から欲しいデータだけExcelに抽出できればと思っておりますが、そういうことをするのがInternetExplorer オブジェクトなのでしょうか? >しかし、株情報は、Office カテゴリの中で、何度か出てきていますが、例えば、楽天証券のRSSアドインを使ったほうがよいのではありませんか? これは思いつきませんでした。RSSは便利ですね。が・・・RSSを使っていないページの情報がメインで欲しく、やはりWebクエリのような方法(もしくはInternetExplorer オブジェクトでアクセス?)でいきたいと思います。 まずは、ネット上から自由にデータをもってこれるようになりたいです。
- popesyu
- ベストアンサー率36% (1782/4883)
・VBAとVB2005の違い VBA(Visual Basic for Applications)とはVB(Visual Basic)の簡易版みたいなもので、文法などの基本的なところはほぼ同じです。 でVB2005というのはこのVBがより発展したVisual Basic .NETの最新版のことですが、従来のVBが4から5、そして6へとマイナーチェンジのようにバージョンアップした最終形態としてのVB7という位置づけではなく、.NET Frameworkという次の新しいステップのものになります。VB→VB.NETへの変化は文法的な癖はほぼVBを引きついではいるのですが、実際はマイナーチェンジというものではなく、概念が丸で違うものなんです。この違いをわかりやすく説明するのは難しいのですが、VBAとVBの違いが学校のクラブでやるソフトボールとプロ野球ぐらいの違いだったとしたら、VBとVB.NETはラグビーとアメフトぐらい違うという感じでしょうかねぇ。まぁ全くの無経験よりはマシですというぐらいです。ただお遊びでやる程度のアメフトなら、ラグビー経験者であるかどうかは大きな違いにはなると思います。本当に使いこなすなら、VBAでが丸で考えなくてよかった概念(クラスとか)をきちんと理解する必要がありますが、全く理解しなくても丸覚えでそれなりのお遊びアプリは作れますよ。多分。 ※ちなみにVB2005というのは本来はVB2003.NET(これが順番的にはVB7)の次のバージョン、つまりはVB8という位置づけになるのですが、VB2003.NETが従来のVBユーザーからは(違いが大きすぎるため)あまり歓迎されなかったため、あえてVB2005と".NET"の文字をはずしています。これはマーケティングな意味でそうされただけのようです。ただし実際は従来のVBにかなり歩み寄った仕様が追加されているようです。アメフトがより進化しつつさらにラグビー経験者が違和感なく入れるような補助的なルールが追加されたというような感じです。 ・やりたいことについて ただそのやりたい事というのがその程度なら、Excelに備わっている機能だけでも十分に作れそうなんですが。エクセルのWebクエリなどをそのまま利用すれば、Web上のデータをそのまま取り込んで適当に修正しながら加工するということはたやすいです。逆にVB.NETでやるほうが色々と準備するものが多く大変だと思います。 http://www2s.biglobe.ne.jp/~iryo/kabu/tool/vba/kabu12-info.html ・購入するもの VisualStudioというのはほかの言語(C#やC++)もついてきた版でさらにプロの開発者向けとかWeb開発向けなどでいろんなパッケージがあり、VBだけが入っているのが「Visual Basic 2005 Express Edition」になるようです。 http://www.microsoft.com/japan/msdn/howtobuy/vs2005/editions/stdexp/
お礼
詳しいご回答ありがとうございます。 やはり初心者にVB2005というのは難しいのですね。どちらかというとVB6のほうがとっつきやすいようですが今は手に入らないですしね。.net発売前にVB6を手に入れていればと今でも後悔しております。 エクセルでのWebクエリは使ったことがありますが、シート上に読み込むためなのか、処理が遅いのとあまり自由度がない点がつらいです。便利は便利なのですが・・・。 VBにはExpress Editionがあるようですね。無償と聞いてさっそくダウンロードしました。画面はVBAに似ていますが、中身は全然違うようですね。 さて、何から勉強すればいいのやら、困ったものです。明日書店にいっていろいろ本を見てみようと思います。ありがとうございました。
お礼
深夜にお返事感謝いたします。 VS2005は.net以前の方々にはいろいろと難点があるのですね。私はどちらも(.net以降も以前も)よくわかっていないのでどこが入りにくいのかもわかっていません・・・。 >私自身、例えば、ここの自分の発言したタイトル・日時、人のハンドルなどの情報と、質問をクローズしているかオープンなのかを、ボタンで、Excelに取得し表示できるようにしてあります。 そうなのですか!それほどのこともできるのなら私がやりたいことも可能なのですね。URLもいただきましてありがとうございます。ネットでこのような解説のあるサイトをずっと探していましたが見つけられませんでしたので助かりました。 >suffreさんは、もうVBAは、長いでしょうから いえ、私は本業はまったく別の業種でして、合間を縫ってVBAを勉強しているので亀のごとくのろまな学習となっています・・・。ほんとはVB2005も勉強したいのですが、まずはExcelのほうで頑張ってみたいと思います。 どうもありがとうございました。