• ベストアンサー

VBSとVBAの違いはなんですか?

VBScriptとVBAは何が違いますか? 教えてくださいよろしくお願いします。

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

  • ベストアンサー
  • Prome_Lin
  • ベストアンサー率42% (201/470)
回答No.3

「VBA」は、ご存じとおり、「Visual Basic for Applications」の略です。 「Excel」「Word」「PowerPoint」「Outlook」などそれぞれの「Application」専用の「Visual Basic」がそれぞれのアプリケーションに搭載されています。 あくまでも「それぞれ専用」ですので、「Word」から「Excel」を操作するとき、「Excel」の機能は使えませんので、「Excel」の機能を読み込まなければなりませんい(Set ex = CreateObject("Excel.Application")。 しかも、たとえ「Excel」の機能を読み込んだとしても、「Excel」固有のものは使えません。 たとえば、「Cells(Rows.Count, 1).End(xlUp).Row」で、最終行を取得するものも、「Word」から「xlUp」は使えません。 「xlUp」の部分は、「-4162」と記述しなければならないのです。 このように、「Word」の「VBA」から「Excel」を操作するとき、「xl」がつくものは使えません。 逆に「Excel」から「Word」の場合も同じで、「wd~」になっているものは、数値に置き換えないと使えません。 「VBScript」は、それ自体では、ほとんど何もできません。 体重と身長を入力して、「BMI」を表示するプログラムぐらいはできますが、ファイルやフォルダを扱うことも、テキストファイルすら扱うこともできません。 ちなみに、「BMI」を計算するプログラムです。 h = InputBox("身長(m)") w = InputBox("体重(kg)") MsgBox("BMI = " & w / (h * h)) そのため、「VBScript」は、必要な機能を読み込む必要があるわけですが、もし、「Excel」を扱わない、ファイルやフォルダを扱うだけだったり、テキストファイルを扱うだけだったりした場合は、「Excel」という大きなソフトを立ち上げている時間があれば、処理が済んでしまいます。 もちろん、「Excel」も「Set ex = CreateObject("Excel.Application")」としておけば、「VBA」でできることはほとんどできます。 しかし、「Excel」の処理に限れば、「Excel」の「VBA」の方が、処理速度が速いです。 「Excel」などの処理をされたい場合は、「VBA」で、ファイルやフォルダの操作(ファイルのコピーや移動、フォルダの作成、削除など)や、テキストファイルの処理は、「VBScript」の方が圧倒的に便利です。 ただ、ある方は、すでに「Excel」でマクロが組んであり、それをいらいたくないので、「外部」から「Excel」の操作をしたい、ということで、「VBScript」を愛用されている方もおられます。

その他の回答 (2)

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.2

VBAをエクセルVBAに限って言うと、VBAはブックやシートそのものや、そのセルやセルの集合(セル範囲)Rangeなどに関する処理が中心です。 VBSはファイルやフォルダーに関したものが多い。 解説本の見出し(逆引き項目)などを見ると何ができるか、よくわかる。 「VBScriptポケットリファレンス  アンク」 フォルダーやファイルの関連の処理が多いように思うが、正規表現(Regexp)があるが、それがありがたい。 関数には似たものが両者にある場合がある。文法もよく似ている。 しかしVBSを使うときはVBAと同じかチェックが必要ではないか。 「最速攻略 VBScriptサンプル大全集 」も大型書店店頭にあるだろう。 他に「VBScript逆引き大全500の極意」など。 本題は、1000文字そこいらで、ここで説明できるものではないので、図書館ででも上記書籍を探し、眺めてみたらよいと思う。

  • Kaneyan-R
  • ベストアンサー率42% (1248/2910)
回答No.1

VBScriptは、WebブラウザやWSH(Windows Scripting Host)で動作するスクリプト言語。 VBAは、MicrosoftのOFFICEアプリケーション上で動作するスクリプト言語。 どちらも構文はVisual Basicを元にしているので似ていますが、操作対象となるものが違うので、その部分は全く異なる構文になります。

関連するQ&A

  • VBAとVBSの違いは?

    「VBSでできなくてVBAではできることがあるが VBAでできなくてVBSでできることはない。」 という認識であってますか? よろしくお願いいたします。

  • VBAとVBSの違いについて!?

    VBAとVBSの違いはなんですか? VBSの初心者本が売っていないので代わりに VBAの初心者本を購入して勉強しようかと考えているのですが、 無駄でしょうか?

  • VBSについて教えてください。

    VBSを勉強したくて http://www.whitire.com/vbs/tips0001.html のサンプルコードを見たのですが Option Explicit WScript.Echo "Hello VBScript World" はどこに張り付ければいいのでしょうか? エクセルVBAの標準モジュールに Sub test() WScript.Echo "Hello VBScript World" End Sub として実行してみましたが WScriptの部分がコンパイルエラーになってしまいました。

  • VBSとVBA

    VBSとVBA VBSとVBAはどこが違いますか。エクセルのVBA勉強してみたいです。

  • VBAとVBSどちらがいいでしょうか?

    いまから覚えるとしたら、VBAとVBSどちらがいいでしょうか? VBAの方ができることが多そうですが、 必ずしもパソコンのオフィスが入ってるとは限らないし (キングソフトのオフィスなどもあり得るし) 必ずしもオフィスの捜査をしたいとも限りません。 (フォルダ操作やIE操作をしたい場合もある) このような条件の場合、どちらを学んだ方がいいのでしょうか? 正直どちらも多少はできるのですが、 これからどちらを一生懸命勉強して覚えたほうがいいのか教えてください。

  • VBSでExcelの共有Bookの状態を調べる方法

    以下のサイトで、VBAでサーバー上のExcelブックに、 http://officetanaka.net/excel/vba/tips/tips99.htm  (1)共有がかかっているか?  (2)誰か他のPCから開いているか? の方法が説明されていますが、これをVBAではなく、VBScriptでできるでしょうか? VBScriptでExcelのブックを開いて、セルに値を入れるなど、基本的なことは分かっているつもりです。

  • ExcelのVBAからVBScript

    ExcelのVBAからVBScriptを操作(使う)ことってありますか?また、逆にVBScriptから、Excelを操作(操作)する必要ってありますか? VBScriptの本を買って勉強していると、そのようなサンプルが描かれていたのですが、単に使えるだけって感じもしますが・・? 実際にこのように使っているって例があれば教えてください。 よろしくお願いいたします。

  • Excel97 VBA とVBSのsplit関数

    新しい職場で、Excel VBAでデータを取り込み、それを改行文字ごとにsplit関数で区切って配列に入れようとしました。 arr=split(文字列,vbcrlf) って感じでですね。しかし、なんとその職場のExcelのバージョンが97のため、VBAでsplit関数が使えず、この意図が実現できませんでした。そのため、ネットで調べてVBScriptのsplit関数を流用しようとしたのですが、「終了していない文字列型の定数です。」とエラーが出てしまいます。ソースは次のとおりなのですが、どう直せばいいでしょうか。改行文字で区切るのでなく、カンマなどで区切るのなら、上手く出来るのですが・・・。 Sub sample() Dim vs As Object Dim rtn As Variant Dim q As String Dim buf As String q = Chr$(34) 'ダブルクォーテーション Set vs = CreateObject("ScriptControl") vs.Language = "VBScript" 'Excel97のVBAにはsplit関数がないのでVBSからsplitを流用 buf = "1" & vbCrLf & "2" & vbCrLf & "3" '改行で区切った文字。実際は、もっと複雑な文字を取り込みます。 rtn = vs.Eval("split(" & q & buf & q & ", vbCrLf)") 'Excel97のVBAにはsplit関数がないのでVBSからsplitを流用 Debug.Print rtn(1) 'ここで「終了していない文字列型の定数です。」エラーが出る End Sub

  • VBSについて

    知り合いから送られてきたメールですが種類がVBScript Scriptファイルで送られてきたのです。 VBScript Scriptファイル自体がよくわかりません。 どうやって開くかわからないのです。 教えてください。

  • vbsについて

    VBScript Scriptファイルはどうやって開くのでしょうか?

専門家に質問してみよう