

VBAを使ってWindowsの「環境変数」を操作したい場面は意外とあります。たとえば「ユーザー名」や「一時フォルダのパス」など、システムに依存する情報を動的に取得したいときです。
この記事では、WScript.Shellを利用して環境変数の取得と設定を行う方法を紹介します。
■ 参照設定なしで使える!
CreateObjectでWScript.Shellを呼び出す
Dim wsh As Object
Set wsh = CreateObject("WScript.Shell")
■ 参照設定ありで使える!
WScript.Shellを呼び出す
参照設定 → 「Windows Script Host Object Model」 を追加します。

Dim wsh As WshShell
Set wsh = New WshShell
例:環境変数を取得する方法
Dim userName As String
userName = wsh.ExpandEnvironmentStrings("%USERNAME%")
MsgBox "ログオンユーザー名は:" & userName


例:環境変数を設定する方法
' ユーザー環境変数にMY_VARを追加
wsh.Environment("USER")("MY_VAR") = "HelloVBA"
Dim tmp As String
tmp = wsh.Environment("USER")("MY_VAR")
MsgBox "環境変数 MY_VAR:" & tmp





コメントを残す