関数・メソッド

環境変数の値を取得する【Environ関数】【ExcelVBA】

構文

Environ({envstring | number})) 

envstring・・・取得したい環境変数名
number  ・・・取得したい環境変数番号(1~255までで指定)
※envstringもしくはnumberどちらかは入力必須
Environ関数はWindowsが保持している環境変数(OS名やユーザー名等)を取得する関数です。

Environ関数のサンプルコード

Public Sub test_Environ()
    
    '■通常使用方法 ※コメントは表示例でPCにより結果は異なる
    MsgBox Environ("COMPUTERNAME")  'DESKTOP-XXXX
    MsgBox Environ("USERNAME")      'USER
    MsgBox Environ("username")      'USER
    
    MsgBox Environ(1)               'ALLUSERSPROFILE=C:\ProgramData
    MsgBox Environ(2)               'APPDATA=C:\Users\USER\AppData\Roaming

    '■設定されていない環境変数を指定すると空("")の文字列が戻り、エラーとはならない
    MsgBox Environ("aaa")
    
    '■引数を指定せず省略するとエラーとなる(引数は省略できません)
    'MsgBox Environ()
    '■1~255以外の値を入力するとエラーとなる(実行時エラー5 プロシージャーの呼び出し、または引数が不正です)
    MsgBox Environ(256)

End Sub

環境変数の一覧

環境変数名 取得できる値の内容
ALLUSERSPROFILE All Usersのプロファイルパス
APPDATA アプリケーションデータフォルダ
COMMONPROGRAMFILES プログラムファイル用の共通ディレクトリ
COMPUTERNAME コンピュータ名
COMSPEC cmd.exe(コマンドプロンプト)のフルパス
FP_NO_HOST_CHECK Microsoft FrontPage用の環境変数、謎です…
HOMEDRIVE ホームドライブ
HOMEPATH ログインしているユーザーのホームディレクトリのパス
LOGONSERVER ログオンしているサーバの名前
NUMBER_OF_PROCESSORS 使用しているPCのプロセッサー数
OS オペレーティングシステム名
PATH 環境変数Pathに設定されているパス一覧
PATHEXT 拡張子なしで実行できるファイル一覧
PROCESSOR_ARCHITECTURE プロセッサーアーキテクチャ
PROCESSOR_IDENTIFIER プロセッサーの説明
PROCESSOR_LEVEL プロセッサーのモデル番号
PROCESSOR_REVISION プロセッサーのリビジョン番号
PROGRAMFILES プログラムファイルの共通ディレクトリ
PROMPT コマンドプロンプトに表示する文字列指定
SESSIONNAME セッション名
SYSTEMDRIVE システムのドライブレター
SYSTEMROOT システムのルートディレクトリ
TEMP アプリケーションのテンポラリーフォルダパス
TMP アプリケーションのテンポラリーフォルダパス
USERDOMAIN ログオンしているドメイン名
USERNAME ログオンしているユーザー名
USERPROFILE ユーザプロファイル
WINDIR Windows OSインストールディレクトリ

関連記事

共有のエクセルファイルを誰が開いたか記録する【ExcelVBA】

コメント

  1. Macの環境変数を取得する関数または方法はないのでしょうか?