• ベストアンサー

初歩の初歩

VBAをかじっている者です。 VBについても勉強していきたいと思っているのですが、初歩中の初歩についてよくわかっていません。ご教授下さい。 VBAはエクセル等から実行可能だと思います。 VBってどこで実行させるのでしょうか? FORTRANなどのようにコンパイルして実行するとかそういう流れなのでしょうか? それともVBを動かすためのソフトが必要になってくるのでしょうか? 初歩中の初歩で大変申し訳ないのですが、困っております。宜しくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.5

私と同じくらいのレベルの方とお見受けしました。VBは現在はVisual Stadio 2005 の無料版がマイクロソフトより出ていますのでまず、それをダウンロードしないとVBでプログラムを書くことはできません。VBAはエクセル上でしか動きませんよね。VBはエクセル関係なく動きます。よく入門書なんかには、電卓やカレンダーなんかのプログラムの作成が乗っていますが、それはエクセル関係なくデスクトップ上に表示されます。ただ、VBAとVBは似ているといえば似ていますが、レベルは雲泥の差はかなり違うと思います。私も、かなり沢山の本を買って勉強しています。エクセルでの機能のみを考えたらVBAのほうが、いいかもしれません。もし、Officeとの関連を考えるのであれば、VSTOだと思います。わたしはVSTOを買って勉強中ですが。また使い切れないです。VBAのほうが、超簡単で。でも、VBAは所詮VBAで、たとえば変数をstring型でどうしても、数万回ループさせなければならないときなど、遅くなってしまいます。これが、VBだと string型を数値にかえてできたりするので、スピードがぜんぜん違うくなったりとか。クラス化できるとか。コントロール(ボタンみたいなもの)の数が全然違うとか、色々あります。ただ、勉強が必要になります。VBAはちょっと勉強すれば、それなりにできますがVBはしっかり勉強しないと自分の意図する目的に合わせてプログラムを作成するまでにはなれないという感じでしょうか。チャレンジ精神旺盛、好奇心旺盛、理数が好き、難しいことになると意欲が沸く、いくら勉強していても飽きない。ようなら、克服できます。私もプログラマーでもないのに魅せられて勉強中です。

その他の回答 (4)

回答No.4

たびたびすみません、No.2です。 本来の話に戻って、「どこで実行させるか」については、 ・開発環境内で(デバッグ状態で)実行させるなら、開発環境に「実行開始」機能が  あるので、それを使う  (たいていは、「再生」ボタンっぽいツールバーのボタンを押すか、   ショートカットキー(F5)を押すかして行うでしょう)  …途中で止めながら処理の流れを目で見て確認できたりするので、  見た目は かなりインタプリタっぽいです。  この方法は当然、VBの開発環境が必要。  余談ですが、VB5の頃、開発で使った とある外部ツールが、この方法では  まともに動作せず、デバッグのたびにコンパイルせざるを得ない、なんて  事もありましたが(苦笑) ・開発環境外で(完成品等を)実行させるなら、普通のWinアプリなら  コンパイルで作成されたExeファイルを実行する  (エクスプローラでダブルクリック、とか)  こちらは開発環境は不要。(とは言え動作環境の整備は必要ですが) …とかですね。

回答No.3

No.2です。 > VBAはインタプリア言語ですよね? そうですね、インタプリタ言語と言っていいのではないかと思います。 コンパイルは、何もExeに限ったことではないのですが (dllとか、VB6ならOCXとかも)、…実行ファイルについては、どこまで 掘り下げればいいんでしょうか…私も、中身の話とか細かいことは、よくわかりません。 VB.NETが どこまでコンパイルしてくれるのか、.NET Frameworkとの関係は、とか いう話は、ネットで調べればあると思いますので、そのためだけに本を 買ったりするのは勿体無いです。 たぶん「VB.NET コンパイル Framework JITコンパイラ」あたりのキーワードで 検索すればヒットするのでは… もう少し不明点が絞り込めれば、他の方々も答えやすいような気がします。 ちなみに、上の検索キーワードで引っかかった中で、私が前回書いた内容を もう少し掘り下げた話が@ITにありましたので、URLを貼っておきます。 (VB6の話も多少載ってます。.NETは、インタプリタかコンパイラか  微妙な書き方をしてますね…)

参考URL:
http://www.atmarkit.co.jp/fdotnet/vbcheer/vbcheer08/vbcheer08.html
hanamiti
質問者

お礼

参考になります。まだ謎な言葉もあるのですが、修行してからまた教えてください。 ありがとうございます。

回答No.2

えーと、「VBはコンパイラ言語か?」って事でしょうかね? そういう意味であれば、基本的に「コンパイラ言語だ」と言っても いいと思います。 VB6までの場合、開発環境で直接実行(デバッグ)する際には、 恐らく実行体(Exe)は作成されない(…自信ないですが)ので ある意味微妙ですが、きちんと指示してコンパイルすればExeファイルが 作成されます。 このExeは、VBの開発環境が無くても動作しますが、かわりにVBランタイムが必要です。 (知っているかとは思いますが、VBランタイムは配布されたりしてますし、  OSによっては標準で付いてたりしたような気がします) .NET系(私が経験あるのは2005のみですが)は、開発環境でデバッグ実行 する際にも、Exeが生成されます。 (基本的に、最終的にはリリースコンパイル(ビルドを指示)することに  なると思いますが) このExeは(デバッグ用Exeを単独で実行したことは無いですが、少なくとも リリースコンパイルしたExeは)開発環境が無くても動作します。 但し.NETの場合、コンパイルは完全なものではなく、.NET Frameworkが 理解できる形にするだけです。 実際に実行を行った際に、その内容から.NET Frameworkが、OSが理解できるレベルまで コンパイルしてから、実行されます。 なので、最低限、実行ファイルの他に、.NET Frameworkのインストールは 必須となります。 …こんな説明で大丈夫ですかね?

hanamiti
質問者

お礼

VBAはインタプリア言語ですよね? VBはコンパイルが出来るのか。参考になりました。 ただ、exeファイルを作成ということすら解っていないところがダメなところでして、VBなどの本を見るとあっさり書いているものですかね?立ち読みではさっぱりわからず。 お勧めの図書なんかあったらご紹介下さい。

回答No.1

VB6という統合開発環境(IDE)がありました。 これで標準EXE等を作成できたはず(多分コンパイラ込みでしょう) http://en.wikipedia.org/wiki/Visual_Basic 今売っているかどうかは知らない。 VB.NETは.NET Framework SDKにコンパイラが含まれます。 まVisual Basic Express Editionは単なるIDEです。

hanamiti
質問者

お礼

ありがとうございます。 プログラムは難しいですね。 参考にさせてもらいます!

関連するQ&A

  • VBAとVBはどう違うの?

    大変初歩的な質問で申し訳ありません。 最近エクセルでVBAを使って簡単なマクロを組む勉強を始めましたが、参考書などを呼んでいると出てくるVBとVBAはどう違うのでしょうか? また、VBを使ってプログラミングするにはVBのソフト(?)をインストールする必要があるのでしょうか?宜しくお願い致します。

  • FORTRANとC++の連動について

    私は,Fortranを用いて解析の業務をしている,プログラム初心者です。 購入したのは,Intel Visual Fortran8.0(VF)ですが,Windows環境でコンパイルリンクするには,Microsoft Visual C++ .NET 2003(VC++)が必要ということで,こちらも購入しました。 普段は,Fortranのコンソールで ifort **.f といったコマンドでコンパイルリンクし,実行しているだけです。 これからは,VC++の方に移行していきたいと考えていますが,しばらくはFortranで作成したサブルーチンを有効活用したと考えています。 そこで,VC++ベースのメインプログラムからFortranのサブルーチンを呼び出すプログラムの作成方法,コンパイルリンク方法をご教授ください。よろしくお願いします。 (1)ソースにどう記述するか? void CMyDlg::OnBnClickedOk() { ここで,FORTRANのサブルーチンを呼び出したい。     Fortranなら call subroutine( a, b ) } (2)コンパイルするときは, Visual Studio開発環境で,コンパイル→実行で良いのか? それとも,あらかじめVC++とVFで.objファイルを作成する必要があるのか?

  • VBとVBAとVBEの違いが・・・

    こんばんは、超初歩的で素朴な質問で申し訳ないのですが・・・VBとVBAの違いがわかりません、ご教授お願いいたします。

  • vbaとvb 「デバッグ」「ビルド」

    vbaの「デバッグ→VBAプロジェクトのコンパイル」=VB.netで言う「ビルド」、 vbaの「実行」=VB.netの「デバッグ開始」 であってますか? デバッグ=コンパイル=ビルドなのか混乱しています。 いろいろな言葉が出てきて頭がぐちゃぐちゃなので整理したいです。 よろしくお願いします。

  • Vb.Netでにおいての「標準モジュール」とは「Form1.vb」のことでしょうか?

    Vb.Netでにおいての「標準モジュール」とは「Form1.vb」のことでしょうか? VBA→VBを勉強している最中の者です。 ご教授よろしくお願い致します。

  • VBとVBAとUSB-IOについて

    エクセルVBAはそこそこ組めるのですが、VBというのは最近知りました。そこで質問があるのですが、USB-IOを用いた自作機器をエクセルのVBAで操作できるのでしょうか? あるいはVBまたはABでセンサーから受け取った値を取得したとして、エクセルVBAのユーザーフォームに表示させるということは可能なのでしょうか? 初心者どころか興味があって本を買ってみただけの者ですが、ご教授いただけませんでしょうか。

  • VBとVBA

    エクセルのVBA最近勉強してます。 自動記録できたりして、意外にかんたんな面もあって楽しいです。そこで、質問です。 1 VBはVBAからくらべるとどのぐらいむずかしいでしょうか? 2 VBで録音再生できるソフトは作れますか?

  • VB6やVB.NETはコンパイル無しで使えますか?

    VB6やVB.NETをはじめてみようかと考えているのですが、 MatlabやVBA、mathematicaなど、他のプログラムのように コンパイルせずにexe形式にせず実行することって可能ですか?

  • 実行して画面に表示されたデータの取り出しかた

    cygwinでfortranのプログラムをコンパイルして計算結果を100個ぐらい表示させました。 このデータをエクセルなどに貼り付けて使いたいのですがどうしたらよいでしょうか。 実行された結果をファイルにする方法もあるのだと思いますが、まだよくわかりません。

  • VBの勉強をしたいのですが

    今VBAの勉強はしています。それが、結構面白くなってきたので、VBも勉強してみたくなりました。(VBAはExcelとAccessです) ただ、今やっているVBAはVB5か6を元にしているとのことなんですが、今売っているVBは2005でかなり6から変わっていると言う事なのですが、それほど変わってしまっているのでしょうか?VBAとVBが似て非なるものとの認識は有りますが、VBAの文法はVBを元にしているとのことで、VBAをしていたら、VBに入り易いと聞いたものですから。でも、2005に全く役に立たないというのならまた一から勉強しなおしかなと思います。今までのVBAの勉強はある程度有効なのでしょうか? アドバイスをお願いします。もうVB6は売っていないようですし。