プロが教えるわが家の防犯対策術!

VBAを仕事の関係上勉強することになりました。
しかし、仕事で使うのはVBAではなくVBらしいです。

始めたばかりでまだ右も左もわからない状態なのですが、
VBとVBAは何が違うのでしょうか?

VBAの方がVBの範囲を全て網羅しているということでしょうか?

本屋で参考書を買おうと思っているので、
VBとVBAのどちらの参考書を選べばいいか教えてください。

それからもうひとつ内容的な質問になるのですが、
ファイルをオープンする時、

Open "テキストファイル,*.txt" For Output As #1
で開いて
Close #1で閉じる方法と

OpenFileName = Application.GetOpenFilename("テキストファイル,*.txt")
でダイアログから開く方法を見つけたのですが
2つ目の方法ではなぜcloseしなくていいのでしょうか?

よろしくお願いします。

A 回答 (3件)

以下、ウィキの情報です。


http://ja.wikipedia.org/wiki/Microsoft_Visual_Ba …

Visual Basic (マイクロソフト ヴィジュアル ベーシック、VB)はBASIC言語を基に作られたマイクロソフトのスタンドアロン開発用プログラミング言語であり、RADに対応した統合開発環境の名称である。
とあります。
VBにも歴史があり、最新版はVB2010
VBAは、エクセルのVBA、アクセスのVBAなどそれぞれのアプリケーションについています。
そのほかにも VBSというのもあります。


プログラムを記述する言語体系は同じようなものなので、どれか一つでも体得すると
ほかのVB関連への活用もスムーズに移行できるでしょう。

今回、勉強しなさいと言われた VBA はエクセルのVBA あるいは アクセスのVBA
いづれでしょうかね。

私の場合、初めてのプログラミング といわれると 必ず エクセルのVBAを紹介しています。
エクセルのシート上に結果を表示出来るので、初心者の方にはプログラムの意味が分かりやすいので
入門用に適していると思います。
つまり
>VBAの方がVBの範囲を全て網羅しているということでしょうか?
ではないです。

>OpenFileName = Application.GetOpenFilename("テキストファイル,*.txt")
>でダイアログから開く方法を見つけたのですが
>2つ目の方法ではなぜcloseしなくていいのでしょうか?
ダイアログから開いたファイルがあるわけですよね。
手動でも閉じることができるということからでしょうかね。
何らかのの操作をプログラムで行って終了後、自動で閉じた方が良ければプログラムで閉じてください。
    • good
    • 0
この回答へのお礼

Application.GetOpenFilenameはただファイル名を変数に保存するだけでファイル自体は開いてないんですね(^_^;)
ありがとうございました。

お礼日時:2011/06/28 00:55

OpenFileName = Application.GetOpenFilename("テキストファイル,*.txt")


は、オープンしたいファイルの「ファイル名」を取得しているだけです。
この「ファイル名」を使用して
Open OpenFileName For Output As #1
としてオープンします。
処理が終了したら、Close #1 でクローズします。
    • good
    • 0
この回答へのお礼

なるほど!別物だったんですね(笑)
ありがとうございます。

お礼日時:2011/06/28 00:53

VBAはA(For Application)が付いているのはエクセルというアプリを使うように特化したコード(群)が備わっていて使えるようになっているから。

例えば
エクセルのシートを1つ増やすなどは、VBAを使わないと、とてつもないコード作業になる(時間的、知識的に不可能)
またVBはエクセル途は離れて他の業務の課題の解決も目指す。
ーー
そしてここまでで、私がVBといっているのはVB6.0までの,前世紀までに主に使われたVisualBasic。
いま質問者がいっている(会社が扱っている)VBはVB.NET(VB2010,VB2008など)を指す可能性が極く高い。ソフト業者であればVB6での開発もこなす場合は考えられる。受託会社の今までのシステムと互換性継続性のため。
しかし10年もたっているので、VBはVB.Net系統のことだろう。
この場合はVB6の参考書やエクセルVBAの参考書を勉強しても、教養が深まるだけで、実践的にはピントハズレ。
内容も似ておればそれも良いが、全く別物と思って接するべきぐらい難しくなっている。回りにアドバイザーが居ないと
習得は不可能だと思うぐらい。VB.NET習得の良い機会に恵まれた(先輩にきけるし、真剣にならざるをえないし、勉強が仕事と結びつく幸せ)と思ってそれを生かして勉強したら良いと思う。
(VBAはエクセル用だけでないが、この質問には割り切りましたので判ってね。)

この回答への補足

要するに、
VB6ならVBAで全てカバーできるが
VB.NETだった場合VBAを勉強しても業務では
あまり意味がないからそれ専門の勉強をした方がよいということでしょうか?

補足日時:2011/06/25 21:58
    • good
    • 0

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