VBAでWindows Script Hostを利用する

Visual Basic for Applications (VBA)

VBA:Visual Basic for Applicationsで「Windows Script Host」を利用する方法。「Windows Script Host」を利用することでデスクトップのパスや、MS-DOSコマンドを実行したりすることが簡単にできるようになります。

1つめの方法は、CreateObject関数で「Windows Script Host」オブジェクトを生成する方法。この場合はオブジェクトを生成するコードを記述するだけで利用できますが、コードヒントなどの入力支援機能は利用できません。

''デスクトップのパスを取得
Dim wsh_ As Variant, desktopPath_ As String
Set wsh_ = CreateObject("WScript.Shell")
desktopPath_ = wsh_.SpecialFolders("Desktop")
Set wsh_ = Nothing

もうひとつの方法は、参照設定を行って、参照設定オブジェクトを生成する方法です。こちらはコードヒントなどの入力支援機能を利用することができますが、参照設定を行わないと使えません。

''デスクトップのパスを取得
Dim wsh_ As New IWshRuntimeLibrary.WshShell, desktopPath_ As String
desktopPath_ = wsh_.SpecialFolders("Desktop")
Set wsh_ = Nothing

Windows Script Hostの参照設定

  1. ちなみに参照設定はツール-参照設定をクリックして、
    ツール - 参照設定をクリック

  2. 表示されるダイアログから、Windows Script Host Object Modelにチェックを入れる。
    「Windows Script Host Object Model」にチェックを入れる