• ベストアンサー

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

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

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

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

見た目的には、よく似ていますので、全く「ムダ」とは言えませんが、やはり「VBScript」のことを勉強したければ、「VBScript」の勉強をされた方がいいと思います。 「VBScript 入門」で検索すれば、いくつかサイトがありますので、本より、そちらで勉強された方がいいと思います。 「VBScript」の本は、あっても、たいてい知りたいことは載っていません。 サイトで勉強され、わからないことは、やはりサイトで調べられるのが、今は一番だと思います。 私も「VBScript」は、サイトだけ勉強しました。 なお、プログラムそのものは、「VBA」と大変似ていますが、これがまたやっかいで、似ていますが、当然、違うところもあります。 全然違うと、かえって、分かりやすいのですが、「ちょっと違う」というのは、意外にやっかいなのです。 たとえば、「Excel」の「VBA」で、「最終行」は Cells(Rows.Count, 1).End(xlUp).Row ですが、「VBScript」では、 Set ex = CreateObject("Excel.Application") と、まず、エクセルの機能を読み込み(正確には「CreateObject」なので、「生成し」かも知れませんが)、 Set bk = ex.Workbooks.Open("D:\Programming\Book1.xlsx") で、ファイルを開き、 Set sh = bk.Worksheets("Sheet1") で、「Sheet1」を「sh」にセットし、 sh.Cells(sh.Rows.Count, 1).End(-4162).Row となります。 エクセルの「VBA」では、「Rows.Count」(エクセルが持っている最大行数)に、どのシートの「Rows.Count」か、などと指定する必要はありませんが、「VBScript」では、いちいち指定しなければなりません。 また、「xlUp」は使えず、「-4162」と記述しなければなりません。 この辺の感覚が違うので、「VBA」で勉強してしまうと、そこから「Excel」を操作しようと思うと、混乱することがあります(私は「VBScript」が先でしたが)。 しかし、何かの事情で、「Word」の「VBA」から、「Excel」を操作しなければならない場合、「Word」は、「Excel」の機能は持っていないので、実は、「VBScript」と同じ記述になります。 「xlUp」は、「Word」からは使えないので、「-4162」と記述しなければなりませんし、第一、「Set ex = CreateObject("Excel.Application")」で、「Excel」の機能を読み込まなければなりません。 「VBScript」のいい点は、何よりも「軽い」ことです。 ちょっとした処理をするのに、「VBA」なら、「Excel」や「Word」などを立ち上げなければなりませんが、「VBScript」なら、ダブルクリックするだけだったり、ドラッグ&ドロップするだけです。 必要なときに、必要な機能を読み込んで使うので、身軽なのです。 ちなみに、1つ、 Set so = CreateObject("Scripting.FileSystemObject") Set gf = so.GetFolder(".") MsgBox(gf) Set gf = Nothing Set so = Nothing 上のプログラムを、メモ帳かテキストエディタに貼り付け、「~.vbs」という名前で保存します。 「~」の部分は、何でもかまいませんが、「.vbs」の部分は、必ず半角です。 できたプログラムファイル(「~.vbs」ファイル)を、ダブルクリック(「シングルクリック」→「Enter」の方が確実)すると、プログラムファイルが存在するフォルダを表示します。 次に、 Set so = CreateObject("Scripting.FileSystemObject") Set wa = WScript.Arguments Set f = so.GetFile(wa(0)) MsgBox(so.GetParentFolderName(f) & vbCrLf & f.Name) Set wa = Nothing Set so = Nothing やはり、「~.vbs」で保存し、できたプログラムファイルに、ファイルを1つだけ、ドラッグ&ドロップすると、ドラッグ&ドロップしたファイルの存在するフォルダ、ファイル名を表示する。 Set wa = WScript.Arguments が、ドラッグ&ドロップされるのを待っていて、ドラッグ&ドロップされると、そのファイルが「wa(0)」という配列変数のようなものに入る。 見た目は配列変数だが、これは、ドラッグ&ドロップされたファイルそのもの、というべきものなので、通常の配列変数とは異なる。 2ファイルドラッグ&ドロップされると、「wa(0)」と「wa(1)」に、それぞれのファイルが入る。 このように、ダブルクリックやドラッグ&ドロップでプログラムが簡単に動くのは、「VBA」であり得ないので、利便性が高く、誰でも使える。 最初のプログラムだと、プログラムファイルの存在するフォルダのすべてのファイルを処理する、というようなことも簡単にできる。 Set so = CreateObject("Scripting.FileSystemObject") Set gf = so.GetFolder(".") For Each f In gf.Files If LCase(so.GetExtensionName(f.Name)) = "csv" Then Set cv = so.OpenTextFile(gf & "\" & f.Name, 1) Do Until cv.AtEndOfStream a = Split(cv.ReadLine, ",") ~~~ Loop End if Next などとして、上記の場合だと、フォルダ内のすべての「csv」ファイルを処理できる。 では、長々と失礼しました。 お勉強、がんばってください。

その他の回答 (1)

  • kteds
  • ベストアンサー率42% (1875/4423)
回答No.1

>無駄でしょうか? 無駄ではないですが、もっと適切な講座に目を通すほうがいいです。 たとえば「VBScript初心者入門講座」 http://vbscript.pgtop.net/category/16158079-1.html

関連するQ&A

  • VBSとVBA

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

  • VBAとVBSの違いは?

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

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

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

  • VBSを学ぶ前に、、、

    VBSを勉強しようと思っています。 VBAの知識は多少ありますがVBSについては無知です。 VBSを眺めてみたらHTMLみたいなのですが VBSの前にHTMLの知識を身につけた方がいいのでしょうか?

  • vba、vbs、vb.netの違いは?

    ・vbaはオフィスを制御・操作するもの ・vb.netはアプリケーションを作るもの と理解してますが vbsは何をするものでしょう? windowsを動かすものでしょうか?

  • VB、VBS、VBAについて

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

  • VBS=簡易プログラミング言語=簡単?

    VBAは多少わかるのですが、VBSはよくわからないため勉強したいのですが、 VBSと言うのは、スクリプト言語と言うものですよね。 スクリプト言語=簡易プログラミング言語との事なので、 VBなどに比べると、VBSは簡単なのでしょうか?

  • VBSかVBAでIE操作をする場合、どちらの方が向

    VBSかVBAでIE操作をする場合、どちらの方が向いてるのでしょうか? 現在VBAでie操作をしていますが、 この記事 http://okwave.jp/qa/q7903584.html を見ると、VBAからVBSに書き換えたほうがいいのかな? なんて思ってきました。 IE操作においてVBAより」VBSの方ができることが多いか教えてください。

  • VBA

    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の部分がコンパイルエラーになってしまいました。