• ベストアンサー

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/17069)
回答No.2

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

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

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

関連するQ&A