■ 最新の投稿

【VBA×WScript.Shell】環境変数を取得・設定するマクロの書き方

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

Comments

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です