環境変数の値を取得する(Environ関数)|Excel VBA |
Environ関数を利用すると、Windowsの環境変数を取得することが可能です。Environ関数は、環境変数に割り当てられた文字列を返します。 また、指定した環境変数が存在しない場合、長さ0の文字列("")を返します。
構文 Environ(Expression)
設定項目 | 内容 |
---|---|
Expression | 環境変数の名前を表す文字列か環境変数のエントリ番号を表す値を指定 |
また、主な環境変数の名前は、下記の通りです。
環境変数の名前 | 説明 |
---|---|
PATH | PATH環境変数 |
OS | オペレーティングシステム |
HOMEDRIVE | プライマリ ローカル ドライブ |
HOMEPATH | 既定のユーザー用ディレクトリ |
TEMP | tempディレクトリ |
USERNAME | ユーザー名 |
WINDIR | システムディレクトリ |
次のサンプルは、環境変数"USERNAME"の情報を取得します。Environ関数を利用して取得した環境変数の値が、"USERNAME="で始まるかを確認し、始まる場合は、そのエントリ番号とユーザー名をメッセージボックスに表示します。
● サンプル ●Sub Sample()
Dim environmentString As String
Dim i As Long
i = 1
Do
environmentString = Environ(i)
If Left(UCase(environmentString), 9) = "USERNAME=" Then
MsgBox "環境変数のエントリ番号は、" & i & vbCrLf _
& "ユーザー名は、" _
& Mid(environmentString, 10, Len(environmentString)) & " です。"
Exit Do
End If
i = i + 1
Loop Until Environ(i) = ""
End Sub
● ポイント ●
環境変数の名前は、環境によって、大文字小文字が異なる場合があります。 ここでは、どちらで記述されていても対応できるように、UCase関数を利用して、取得した環境変数の文字列を大文字に変換してから文字列"USERNAME"と比較しています。