- ベストアンサー
エクセルのVBと、普通のVBの違い
エクセルのVBと、普通のVBの違いを教えてください。 エクセルにVBが付いているということは、普通のVBより、高機能ということなの? エクセルのVBで、シューティングゲームのような複雑なプログラムを作ることはできますか?
- みんなの回答 (6)
- 専門家の回答
質問者が選んだベストアンサー
まず機能面ですがVBAはアプリケーションに特化したオブジェクトが用意されているので、それを使う場合は効率的なプログラムをつくることができます。 またワークシート関数などあらかじめ最適化された機能を使う場合はなんとCより速い場合があります。 実行速度に関してはVBAは「インタープリタだから遅い」と権威のある本でも説明されていることがあるのですがこれは間違いで VBAもPコードという中間コードにコンパイルされるので、完全なコンパイルのCなどには及びませんが非常に高速です。 >DirectX(のSDK)を使って3Dゲームを作ることも出来るんじゃないでしょうか。 これは可能です。 ただし、VBAはVBと違ってひとつひとつのオブジェクトにハンドルをもっていないので、実際にDirectXやBitbltを使う場合、複雑な処理はめんどうになります。
その他の回答 (5)
- imogasi
- ベストアンサー率27% (4737/17069)
エクセルVBAはエクセルで手操作でできることが プログラム(というかスクリプト)でできるようになってます。 イベントというプログラムもできます。 しかし たとえばエクセル表の行のDELETEをVBでプログラムを書こうとすると、途方にくれます。 エクセルの仕組みが一般には判って(公表されて)ないから、難しいからです。 でも本当に仕組み構造などわかっていればできると想像します。VBでAPIを使うという逃げ道もあります。 しかしVBは要所要所で深くできる機能があります。 そういうことからゲームとエクセルは共通点が極く少なく、ゲームを作れるとは言いがたいと思います。 エクセル風(とは何かは難しいですが)のゲームならエクセルVBAでたやすくできます。 VBとVBAの違いは自分で会得するよりほかありません。難しい概念などもあって、文章で並べられても、すぐ理解できるとは思えませんから。 VBAはなるべく手間のかからないように、コンパイルなど意識させないようになってます。
- piyo2000
- ベストアンサー率49% (144/293)
>エクセルのVBと、普通のVBの違いを教えてください。 #1さんのおっしゃっている通り、一番の違いは「単独で動作するEXEを作れる」ことに尽きると思います。 質問にあるシューティングゲームですが、それこそゲームをするのにExcel(のシート)は不要ですからね。 >シューティングゲームのような複雑なプログラム #1さんが紹介されていらっしゃるURLにもありますが、やろうと思えばVBAでも可能です。それこそ、DirectX(のSDK)を使って3Dゲームを作ることも出来るんじゃないでしょうか。 # やろうとは思いませんが(笑) そもそもVBAは「マクロ」という別名の通り「スクリプト」的な性格の強い言語ですから、速度を要求する処理には向きませんね。 また、コントロールやフォーム等が別物になってますのでVBからVBA、またその逆の移植には意外と苦労します。
おや,しまった。 #1です。 参考URLの欄がずれてしまいリンクがかかってませんね。失礼しました。
- nopo3
- ベストアンサー率40% (8/20)
エクセルで使用するVBというのは、 VBA(Visual Basic for Applications Edition)というものです。 自分はVBAでの開発経験がないので、何ができるのかって事は説明できないですが、違いについては下記のURLを参照して頂ければ理解できるかと思います。
Excelに付いている機能は,VBではなく,VBAです。 VBAはVisual Basic For Applicationの略で,ExcelやWordなどの,アプリケーション(ソフト)用にできたプログラム的な事をさせる為のプログラミング言語です。 このプログラムを動かすためには,使う側にExcelやWordが必要であることになります。 一方VBはVisual Basicの略で, Windows上でのアプリケーション開発のプログラミング言語です。 VBAよりは高度なことが出来ます。 また,EXEファイルもコンパイルされるので,使う側はExcelやWordなどを必要としません。 (参考URL↓上を参考にしてみてください。) VBAはVBほど高度なことができませんが, 谷孝一さんの「猫とエクセル-VBA(マクロ)でつくるフリーゲーム」 (参考URL↓下) などにあるように,結構すごいゲームは作れます。 でも,このゲームをするにはExcelなどが必要です。 http://www.accessclub.jp/vba/vba_001.htm,http://www.geocities.co.jp/SiliconValley-Cupertino/8748/