VBAマスターの俺がブログを書くとこうなる

VBAを極めた俺が使えるTipsや経験談、カレーの作り方などを紹介

VBAにできてVBSにはできないランキングベスト5

プログラミング言語ランキング世界7位VBAが他の言語と比べていかに優れているのか分からせていこうかと思います。「え?Excelとか扱いやすいとこでしょ?はい、論破」とか言わない。
※TIOBEで毎年公開されているランキング(2012年現在)
http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html


まずは脳内設定でVBAの従姉妹であるVBScript(JSとは幼馴染)
VBSっていうとワンクリックのバッチとかHTMLで<script>したりとか色々と捗るぞってイメージ。あとWScript先輩オッスオッスって感じ。
VBAもVBSもVB派生なんで文法はほぼ一緒。ってことはVBAコピペすればVBSいけんじゃね?うはwww俺天才www→…私ってほんとバカな人は俺だけじゃないはず!
そんなわけでいってみましょう


第1位 外部DLLがよめるよ!


いきなり第1位からってのもあれだけどデクレアねDeclear。よくWindowsAPI呼んだり、FTPしたい時とかなにかと便利なあれ。
なんとこれがVBSではできないんだな、それが!
まぁExcel呼び出してVBAで実行すればいけないこともないけど、自分じゃできないからってVBAお姉ちゃん呼んじゃうVBSマジ可愛い!


第2位 Dir万能説


ファイル検索といえばDir関数。FileExists?はぁ?なにそれ「*」使えねーじゃん!ワイルドカード使えないのはFileSystemObjectまでだよねーwプークスクス
ってことでDirもVBSじゃ使えません。

「じゃあどうすればいいの?」

「まず予めRegExpオブジェクトを生成して検索したい文字列を正規表現でパターンに保存します。次に対象のフォルダのフォルダオブジェクトを取得してFilesプロパティからFor文で一つ一つのファイルオブジェクトを取得します。取得したファイルオブジェクトのNameプロパティでファイル名を取得したら、RegExpオブジェクトのTestメソッドでパターンに一致するかどうかが調べます。一致した場合はそれが取得したいファイル名なのでそれぞれ処理を行います。」

「え?」

「まず予めRegExpオブジェクトを生成して(ry」

「あ、ハイ…」


第3位 GoTo文が使えない


そうなんです。VBSだとGoTo文が使えません。
「それっていいことじゃない?」と思ってる人は「On Error Go To」も使えないと知って泣けばいいよ。
そもそもエラー処理が必要ようなレベルのものをVBSで作るってのが間違ってる!俺たちはエラーで止まることを…強いられているんだ!


第4位 変数の型なんてなかった


VBSではすべてがVariant。もう型に縛られる必要なんてありません。
うん、未来いってるね。いいと思う。でもType(構造体)が使えないのはどうかと思うなー。え、Class使えって?…うん、未来いってるね。


第5位 Select文のToとかIsとか


いやー細かいことなんだけどVBSだとSelect文のCaseでIsとかToとか使えないんだよねー
まぁIf文にバラせって話なんだけど、なんていうか…美しさが足りない!


はい、ということでVBAで使えてVBSでは使えないものをあげてみたけど意外と知らない人もいるんじゃないでしょうか?きっと合コンとかでネタにすればウケること間違いなし!
逆にVBSにできてVBAにできないことはほぼないです。さすがVBA!VBSにはできないことをやってのけるッ!そこにシビれる!あこがれるゥ!

あとVBAとVBSの差はM$の公式ページに詳細がのってます↓
http://msdn.microsoft.com/ja-jp/library/cc392401.aspx


今日の一行VBAプログラミング


If "VBA" < "VBS" Then Debug.Print "実はVBSの方がすごい!"