こんにちは。
VBとVBAはどんな違いがあるのか教えてください。
これから転職をするためにVBは持っていないため、VBAの勉強を始めようと思っています。
かつてdbMAGICというツールを使って開発経験があります。
独学をしようと思っていますので、参考になる書籍やサイトをご存知でしたらご教示頂けたらと思います。

このQ&Aに関連する最新のQ&A

A 回答 (2件)

VBとVBAの違いは、No1の方がおっしゃっているとおりです。



VBAは、マクロと呼ばれるもので主に、Officeアプリケーションを使用する際に、簡単に言えば、自分の使い勝手がいいようにできる、って感じです。
VBは、ちゃんと実行ファイルも作れます。もともとは、(社内などでの簡単な)実用アプリケーション開発向けですが、APIなどを使えば高度な実用アプリケーションや簡単なゲームも作れたりします。(VBAでも作ろうと思えば作れないことは無い)DirectXなどを使うこともできます。

どちらも、基本的な文法は同じですが、ところどころ相違している点もあります。
書籍は、大きめの本屋に行けば、けっこうあると思うので、自分にあったのを買えばいいと思います。

参考URL:http://www.microsoft.com/japan/office/2000/devel …
    • good
    • 0

どちらもWindows上で動作しますが、その違いは簡単に言うと、VBはその単体で動作するのに対して、VBA(Visual Basic for Applications)はOfficeの主要アプリケーション上(WordやExcel)で動作するものです。


VBは、その記述・管理にアプリケーション(VBE)が必要ですが、VBAは現在Officeの各アプリケーションに標準で搭載されています。
参考になる書籍などは、沢山あり過ぎてよく分かりません。
    • good
    • 0

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

このQ&Aと関連する良く見られている質問

QVBでIEのメニューバーの操作法をご教示ください

VBでIEを起動し何回かページを移動して表示しています。その時、IEのメニューバーの「ファイル(F)」ボタンやその「ファイル(F)」ボタン押下によるブルダウン中の「印刷(P)」ボタンを押下する方法をご教示して頂きたくお願いします。

Aベストアンサー

>私もタイミングによるものと思い、暫定的に印刷の前に30秒、3分とWaitするようにしましたが改善されません。
>他に問題があるのでしょうか?

先の質問でも言ったかと思うのですが
Private Sub IE_DocumentComplete(ByVal pDisp As Object, URL As Variant)
If CStr(URL) <> myURL Then
Exit Sub
End If
のようにしてDocumentComplete イベント内で指定のURLが表示されたどうかを確認してから処理をしないと...。

この辺の基本的な事が理解できないと先に進む事は無理かとおもいますよ。
>Waitするようにしましたが改善されません。
これもどのようにしているかで、本当に待てているのか疑わしいです。
それより、このような待ちは色々問題があり推薦されません。

Q[VB2005]処理を完全に中止する方法を教えて頂けませんか?

VB2005で開発しています。
あるイベントからメソッドを呼び、そのメソッドも次のメソッドを呼ぶような
処理があるとします。
この場合に、最上位のイベント以外から、
このイベントの処理をすべて終了する方法はございませんか?

最上位のイベントであれば、
Exit Subと書けば、そのイベント内の処理はすべて終了されると思いますが、
それを、下位のメソッドで行いたいのです。

このようなことはできないのでしょうか?
もし方法がございましたら、教えて頂きたいです。
ぜひ、よろしくお願いいたします。

Aベストアンサー

Exception を Throw してください。
System.Exception を継承した自前クラスを作り、最上位イベントでは、Try ~ Catch で それ「だけ」をキャッチするようにします。

Sub イベントプロシージャ
Try
SubA
Catch mex As MyException
MsgBox("下位メソッドで処理が中止されました。")
End Try
End Sub

Sub SubA()
SubB
End Sub

Sub SubB()
If 条件 Then
Throw New MyException("処理中止")
End If
End Sub

---

Public Class MyException Inherits System.Exception



End Class

QVB、VBS、VBAについて

全くの素人です。
VB、VBS、VBAについて素人にも分かるように簡単に教えて下さい。
また、これらはプログラマーにとって大事なスキルの一つでしょうか?

我侭な質問で申し分けないですが、宜しくお願い致します。

Aベストアンサー

大雑把ですが、目的別で、、、

・アプリケーション作りたいならVB
・ExcelやAccess上で何か気の利いた動作させたいならVBA
・てっとり早くちょっとしたことをしたいならVBS
という感じです。

私の場合VBSはあまり使いません。
大抵VBAかVBのデバッグモードで済ませます。

>これらはプログラマーにとって大事なスキルの一つでしょうか?
プログラマーと言っても範囲が広いので必ずしも必要とは限りません。
そっちが専門の知人が結構いますが、VBは全くわからない、、という人も意外といます。必要性がないだけでやればすぐに使えるとは思いますが。

プログラミング経験がなく、これからそのスキルを身につけていきたい、、というのであれば、VB(VBA/VBS)は入りやすい、、というのはあると思います。

QVB6、VBA、vb.net

この認識で合ってるか教えてください。

「VB6、VBAには.NET Frameworkは使われていないけど、
vb.netからは.NET Frameworkが使われている」

であってますか?ご回答よろしくお願いします。

Aベストアンサー

合ってないとは言えないけど、足りないのでは?

そもそも .NET Framework がどんなもので、何をしているか知らないで、
この認識だけあっても意味がありません。

また、それを理解しているなら、VB6 ではランタイムがあった
ことに触れておくべきでは? VBA は良く知らないですが、Office
をインストールした時点で VB6 がインストールされていなくても
動くはずですので、Office にランタイムに相当するものが付属
しているのだと思いますが。

QVBA・VB6.0・VB.NETの文字列型

 失礼します。

 Excel97/2000のVBAの文字列型変数は、アスキーコード129-159/224-252のデータを保持できないみたいですが、これはVB6.0/VB.NETなどでもそうなのですか?
 つまり、VBAでは、
Sub main()
 Dim s as String
 s = Chr$(130)
 Sheet1.Cells(1, 1) = Asc(s)
End Sub
 とすると、シートのA1に「0」が表示されてしまうということです。

 というのも、私はVB6.0/VB.NETを持っていないのですが、ちょっとVB2.0時代のコードを使う必要が生じたので、VBAで実行してみたところ、以上のような仕様の違いに気付いたのです。
 これがVBAだけの特性なのか、最近のVBはこういう仕様になってしまったのかが知りたいのです。

Aベストアンサー

たぶん、コード体系が変わったためです。

VB2.0のころは、Windows3.1やWindows95ですね。コードはシフトJISを使っていました。

現在Windows98以降はEUCという2bytコードをOSが使用してますので、プログラム自体は正しく動作しても、シフトJIS→EUCでは結果が変わりますので、そのようなことになっているのでは?

単純に文字列を設定すれば、自動的に変換がかかるので普通は気づかないのですが、ご質問のように文字コードそのものを設定する場合は結果が違ってきてしまう。という事でしょう。


人気Q&Aランキング

おすすめ情報