構文
Environ({envstring | number}))
envstring・・・取得したい環境変数名
number ・・・取得したい環境変数番号(1~255までで指定)
※envstringもしくはnumberどちらかは入力必須
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インストールディレクトリ |
コメント
Macの環境変数を取得する関数または方法はないのでしょうか?
この辺が参考になりそうですね。
Function GetUserNameMac() As String
Dim sMyScript As String
sMyScript = “set userName to short user name of (system info)” & vbNewLine & “return userName”
GetUserNameMac = MacScript(sMyScript)
End Function