関数・メソッド

環境変数の値を取得する【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

環境変数の一覧

環境変数名取得できる値の内容
ALLUSERSPROFILEAll Usersのプロファイルパス
APPDATAアプリケーションデータフォルダ
COMMONPROGRAMFILESプログラムファイル用の共通ディレクトリ
COMPUTERNAMEコンピュータ名
COMSPECcmd.exe(コマンドプロンプト)のフルパス
FP_NO_HOST_CHECKMicrosoft 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ユーザプロファイル
WINDIRWindows OSインストールディレクトリ

関連記事

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

コメント

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

    • Attention Required! | Cloudflare


      この辺が参考になりそうですね。
      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

タイトルとURLをコピーしました