MicrosoftがVBScriptを非推奨に
Microsoftは、2023年10月にVBScriptを非推奨の扱いとしました。「Microsoft Learn」内の「Deprecated features for Windows client(Windows クライアントの非推奨の機能)」ページで、VBScriptが非推奨リストに追加されています。
オンデマンド機能に切り替えられる
Microsoftは、将来的にはWindowsリリースでVBScriptを削除するとしています。しかし、すぐに削除されるのではなく、VBScriptの廃止に備え、必要に応じてインストールされるオンデマンド機能として利用可能な状態となります。
オンデマンド機能として残るとはいえ、将来的には使用できなくなる予定であるため、VBScriptを利用しているユーザは代替手段を検討する必要があるでしょう。
【参考】:非推奨の機能のリソース
VBScriptが非推奨になった理由とは
Microsoftは将来的にVBScriptをWindowsから削除する理由について、詳しく言及していません。
しかし、VBScriptを統合していたインターネットエクスプローラーは既にサポート終了しており、使われるケースが減少したと考えられることや、セキュリティ上の観点から廃止を決定した可能性が考えられます。
VBScriptとは
VBScriptはスクリプト言語で、コンパイルなしで動作し、メモ帳1つで開発を始められるという特徴を持っています。Windowsにおける作業を自動化するスクリプトが簡単に作成できることから、多くのWindowsユーザに活用されてきました。
VBScriptはVisual Basicに近いスクリプト言語
VBScript(Visual Basic Script)は、Visual Basicに似た構文を持つクライアントスクリプト言語として登場し、Internet Explorer 3.0に搭載されました。
動的なWebページの生成を目的とした言語であり、JavaScriptなどのスクリプト言語と同様にWWWのクライアントサイドで動作します。
その一方で、Windows環境ではWSH上で動作する汎用スクリプト言語としても活用されています。
Windows Script Host(WSH)とは
Windows Script Host(WSH)はWindows環境でスクリプトを実行するホスト環境で、Windows 98からWindows OSに搭載されました。WSHではVBScriptやJScriptなどのスクリプト言語を利用可能で、それぞれの言語によって使い方が異なります。
Windows環境での操作を自動化する際に、コマンドプロンプトでバッチファイルを使って処理を自動的に行う方法がありますが、WSH上でVBScriptやJScriptを動作させることにより、コマンドプロンプトでは実現できないような制御を行うことができます。
VBScriptでできることとは
VBScriptはそのシンプルで使いやすい特性を活かして、WSH上でWindows環境での操作や処理を効率的に行うことを可能としています。
VBScriptのスクリプトファイルの作成はWindows標準のメモ帳やテキストエディタでプログラムを記述すればよく、特別な開発環境などは必要ありません。
VBScriptの柔軟性とWSHの環境を活かして、Windows環境でのファイルの存在の確認・コピー・移動・削除などを簡単に実現することができます。
また、Outlookを制御してメールを送信したり、インターネット上の情報を自動的に検索して処理したりすることも可能です。
VBScriptは他の一般的なプログラミング言語に比べて、言語自体が持っている機能は非常に少ないですが、Windows環境で容易に実行できることから、プログラミングに慣れていない人でも利用しやすいことも特徴として挙げられます。
VBScriptとVBAの違いとは
VBScriptと混同しやすいVBA(Visual Basic for Applications)との違いを解説しておきましょう。VBAはExcelやWordなどのOfficeソフトウェア上で動作するプログラム言語です。
Visual Basicがベースであり、VBScriptとも似ている部分があります。しかし、VBAはOfficeソフトウェア内でしか利用できず、単独での動作はできません。
VBAの開発はOfficeソフトウェア内で使用できるエディタであるVBE(Visual Basic Editor)で行います。VBAの動作にはExcelやWordなどのアプリケーションの起動が前提なので、VBScriptの方が手軽に実行できると言えます。
VBScriptの代替となるスクリプト言語とは
VBScriptは将来的にWindowsOSで廃止されることとなったため、VBScriptを利用しているユーザーは代替手段を検討する必要があります。ここでは、代替となるスクリプト言語について解説します。
VBScriptの移行先はPowerShellが1つの候補
VBScriptの移行先として考えられる有力な選択肢の1つが、PowerShellの利用です。Microsoftから明確なアナウンスはないものの、Windows環境におけるスクリプト実行においてはVBScriptの後継に当たると考えられる位置付けとなっています。
PowerShellはWindowsにおけるソフトウェア開発フレームワークの.NET Frameworkの機能を利用できるスクリプト環境として、Windows Server 2008およびWindows 7以降のOSに標準搭載されています。
したがって、Windowsに追加のインストールを行わずに使用することができるため、VBScriptとWSHの代替として最も移行にかかる労力を抑えることができると言えるでしょう。
【参考】:Windows PowerShell 言語仕様 3.0
【参考】:Windows PowerShell のシステム要件
VBScriptとPowerShellの違い
VBScriptとPowerShellはどちらもスクリプト言語ですが、それぞれ異なる特徴を持ちます。
VBScriptはシェル機能を持たず、処理を行い結果を返す関数を組み合わせて基本的なスクリプトを作成し、WSHで動作させます。応用的なスクリプトを書く場合は、WSHが提供するCOMオブジェクトや他のアプリケーションのCOMオブジェクトを利用します。
一方、PowerShellは .NET オブジェクトを利用できるシェル機能を持ち、コマンドレットと呼ばれる統一された呼び出し命令を使用して記述します。
コマンドレットを利用することで、VBScriptとWSHの組み合わせでは実現が困難・あるいは不可能だった操作でも、より簡潔なコードで実現が可能です。
【参考】:PowerShell とは
【参考】:コマンドレットの概要
PowerShellを利用するメリット
Powershellでは、VBScriptとWSHの組み合わせで行うことができるファイルの処理やデータの整形などのタスクの自動化、Windowsのタスクスケジューラによる定期実行を行うことももちろん可能です。
それに加えて、PowerShellではパイプライン処理が可能なため、コマンドの出力を他のコマンドに渡し、複数のコマンドを使ってより効率的で高度な処理を行うことができます。
NET Frameworkのクラス・ライブラリを活用し、.NETオブジェクトが利用できることも大きなメリットと言えます。
VBScriptからPowerShellへの移行で気を付けたいポイント
VBScriptからPowerShellへの移行では、まず構文の違いに注意が必要です。前述したとおりVBScriptは関数を組み合わせてスクリプトを組みますが、PowerShellではコマンドレットを利用しますので、PowerShellでのスクリプトの組み方を覚える必要があります。
例えば、ディレクトリを移動する場合、VBScriptではFileSystemObjectのMoveFolderメソッドを使いますが、PowerShellではSet-Locationコマンドレットを使います。
あるいは現在のディレクトリ内を一覧で表示する場合、VBScriptではFiles プロパティ、PowerShellではGet-ChildItemコマンドレットを使用します。
スクリプトファイルの違いとしては、VBScriptファイルの拡張子が「.vbs」であるのに対し、PowerShellでは「.ps1」です。
また、PowerShellのスクリプトファイルは初期状態では実行が許可されていないため、最初の1回のみですが、実行ポリシーの設定を行う必要があります。
非推奨となったVBScriptの代替案を早めに検討しよう
MicrosoftによりVBScriptが非推奨となったことにより、日頃の業務でVBScriptを使ったWindows環境の操作の自動化などを活用している方は、将来的な廃止に備えて代替案を用意しましょう。
ここまで解説した通り、Windowsに標準搭載されておりVBScriptからの移行が比較的容易なPowerShellが移行先の1つとして考えられますが、VBScriptで行っていた処理内容や移行の要件によっては、別の代替案が妥当なケースもあるかもしれません。
最善の代替案を探すために、早めに検討を開始することをおすすめします。