Microsoft社は2023年10月10日に、「VBScript」を非推奨とすることを公表しました。
で、私はVBScriptについて知識がなかったため、
- そもそも、「VBScript」ってなに?
- Excel VBAは使ってて大丈夫なの!?
- 非推奨になったらどうなるの?
などのいろんな疑問が浮かびました。「きっと、VBScript廃止のニュースを読んで、私と同じような疑問を持った方がいるはず・・・!!」と思ったので、今回はVBScriptについて詳しく調べてみたいと思います。
VBScriptとは
VBScript(VBS)は、Windowsに標準搭載されているスクリプト言語(プログラミング言語のうち、比較的簡単に書ける言語のこと)です。
「VB」とは、「Visual Basic」の省略で、Visual Basicを基にして、より簡単で扱いやすくしたスクリプト言語です。
JavaやPythonなどの一般のプログラミング言語のように、環境構築する必要がなく、WindowsのPCであればVBScriptを実行することができます。
VBScriptの例
例えば、メモ帳を開いて、
ファイル保存時に、拡張子を「.txt」から「.vbs」にし、エンコードを「ANSI」にして保存します。
※エンコードについての詳細は、こちらの記事をご参照ください
作成したファイルをダブルクリックで開くと、VBScriptが実行され、メッセージボックスが表示されます。
どんな用途で使われているの?
VBScriptを使う用途としては、手作業で行っていることの自動化がメインです。
- PC上での作業自動化(毎朝、特定のフォルダにあるファイルを別のフォルダにコピーするスクリプト 等)
- 簡単なツールの作成(家計簿ツール、BMI計算ツールなど)
- Webページの入力チェック(かつて、Internet Explorerでは、フォーム入力時やボタンクリック時の制御をVBScriptで行っていた)※IEは既にサポート終了
PowerShellとの違いは?
PowerShellは、Windows7から標準搭載されました。コマンドプロンプトやバッチファイルよりも優れた機能を持ち、.NET Frameworkライブラリを使用することができます。
.NET Frameworkというのは、WindowsのアプリケーションやWebサービスなどを開発する際に使える、便利なツールのセット的なものです。.NET Frameworkは、C#、VB、C++、F#などのほかのプログラミング言語にも対応しているのも魅力のひとつです。
そんなPowerShellとの違いは、主に以下になります。
- VBScriptは、シェル機能(コマンドプロンプトみたいな対話型のやりとり)ができない
- PowerShellでは「コマンドレット」という命令を使い、VBScriptより簡潔なコード
- PowerShellは、現代のWindows環境でのシステム管理や自動化のために設計されている
結論、現代のWindows環境でなにかを自動化したりツールを作りたいとなったら、PowerShellのほうが向いていると言えます。
なんで廃止になっちゃうの?
VBScriptは、前述のPowerShellに取って代わられたような存在で、未だに使っている人は多くありません。
さらに、2022年6月にはInternet Explorer(IE)が廃止されたことで、IE内でクライアントサイドスクリプトとして使われていたものが役目を終えた(そもそもIE11ではVBScriptが非推奨で、IE10モードにしないと使えなかったようだけど。。)こともあり、そもそも使うシーン自体なくなってきています。
Microsoftは、明確な理由は開示していないものの、VBScriptは、レジストリの変更・ファイルシステムの操作など、Windows上で広範囲な操作が可能なため、この機能を悪用するマルウェア対策などセキュリティにおけるリスクを鑑みて非推奨としたとも予想されます。
Excel VBAとの違いは?
「VB」とついているので、何も知らない私は「Excel VBAと同じようなものなのかな?」と感じました。そこで、VBScriptとVBAの違いについて調べてみると、
項目 | VBScript | VBA |
---|---|---|
正式名称 | Microsoft Visual Basic Scripting Edition | Visual Basic for Applications |
使い方 | テキストファイルに記述し、拡張子を.vbsにする | ExcelやAccessなどの各アプリ上のエディタに記述する |
実行方法 | .vbsファイルを起動する | 各アプリのエディタ上にある、実行ボタン |
デバッグ | 不可 | 可能 |
特徴 | Power Automate Desktop(PAD)や、 ブラウザなど、様々なアプリから呼び出せる | 各アプリ内でしか実行できない (Excel VBAならExcel内でしか動かせない) |
つまり、VBAというのは、ExcelやAccessなどの各アプリケーション専用のマクロであり、そのアプリ内で何か自動化したいときに使うものと言えます。
VBAは今後も使えるの?
私がまず最初に気になったのは、「VBAって『VB』って入ってるし、VBAも使えなくなるんじゃないの!?」という点でした。
こちらについての結論としては、以下になります。
先ほどの比較のとおり、VBScriptとVBAは元になっている言語こそ同じですが、使用目的、実行環境、および機能に違いがあり、全くの別物です。
VBScriptが非推奨になったらどうなるの?
「非推奨」って、なんか分かりにくい言葉ですよね。禁止でもない、使えないわけでもない。
・・・で、結局どういう状態なの!?
IT用語辞典で「非推奨」と調べた結果は以下の通りです。
非推奨とは、ある機能や仕様、製品、部品、用語などが、現在はあまり使うべきではない状態であること。廃止予定の機能、無理のある手法などがこのように呼ばれる。(中略)
今から新規に採用しないでほしいという意味で、その要素は現在は非推奨であるというアナウンスが行われる。
引用:IT用語辞典 e-Words
https://e-words.jp/w/%E9%9D%9E%E6%8E%A8%E5%A5%A8.html
簡単に言うと、
- 使えるよ!でも、何かあっても責任は持たないよ!
- ゆくゆくは機能自体が廃止になることもあるよ!
ということです。
2022年6月にサポートが終了したInternet Explorer(IE)だって、まだ使えますし、使っている人はいます。
どうしてもVBScriptを使いたいときは?
VBScritptは、現在、オンデマンドの機能として利用することができます。「オンデマンド(on demand)」というのは、「要求に応じて」という意味で、「使いたいなら使えるよ」という状態です。(参考:オンデマンド機能の種類)
Microsoftでは、具体的にいつからVBScriptが完全に廃止されるのかは発表していませんが、一般的に、Microsoftでは非推奨の通知があってから実際に機能が削除されるまでにはどんなに短くても1年間はあり、廃止までの期間は長いです。
とはいえ、新たな開発を行う際にわざわざVBScriptを使うのはやめておいたほうが良いでしょう。
まとめ
今回は、VBScriptについて、VBScriptとはなんなのか、VBAとの違いは何か、非推奨になったらどうなるのか、等を解説しました。
私はVBScriptを触ったことがなかったので、VBAと混同してしまい、VBAが使えなくなるのか!?!?とちょっと不安になりましたが、全く別物だということが分かって良かったです。
ただ、最近では「Python in Excel」の登場により、Python in ExcelでもVBAと同様のことが実現できるようになります。完全にVBAに取って代わることはないかもしれないとは思いますが、「同じことをやるならPythonで書きたい」という人は多いはず。まだPython in Excelはベータ版ではありますが、今後、VBAがどんな立ち位置になるのか、気になるところです。
コメント