こんにちは、Ryoです。
あまり聞きなれない言葉ですが、PCには環境変数というものがあり、これはOS(オペレーティングシステム)へ設定値などを保存したり、参照したりするためのものです。VBAではEnviron関数を使用することで環境変数の値を取得することができますので、今回はその内容について書いていきます。
1.サンプル概要
主な環境変数項目を表内に書いていますが、サンプルコードを実行してそこに結果を表示してみます。

実行結果としては以下の通り、環境変数を取得して表示されます。

2.サンプルコード
Sub Sample1()
'OS情報の取得
Cells(2, 2).Value = Environ("OS")
'PATH環境変数の取得
Cells(3, 2).Value = Environ("PATH")
'プライマリ(第一優先)ローカルドライブ情報
Cells(4, 2).Value = Environ("HOMEDRIVE")
'既存のユーザー用ディレクトリ情報
Cells(5, 2).Value = Environ("HOMEPATH")
'tempディレクトリ情報
Cells(6, 2).Value = Environ("TEMP")
'ユーザー名情報
Cells(7, 2).Value = Environ("USERNAME")
'システムディレクトリ情報
Cells(8, 2).Value = Environ("WINDIR")
'デスクトップパス情報
Cells(9, 2).Value = Environ("UserProfile") & "\Desktop"
'コンピューター名
Cells(10, 2).Value = Environ("COMPUTERNAME")
End Sub
このように環境変数を取得するにはEnviron関数を使用します。
構文:Environ({envstring|number})
引数envstring(環境変数名)、または引数number(環境変数が指定されている番号)を指定し使用しますが、本サンプルでは環境変数名を指定する形になっています。
また、このEnviron関数は値が取得できない場合「””」(長さ0の文字列)を返します。
| 環境変数名など | 取得される情報 |
| OS | オペレーティングシステム |
| PATH | PATH環境変数 |
| HOMEDRIVE | プライマリローカルドライブ |
| HOMEPATH | 既存のユーザー用ディレクトリ |
| TEMP | tempディレクトリ |
| USERNAME | ユーザー名 |
| WINDIR | システムディレクトリ |
| COMPUTERNAME | コンピューター名 |
ちなみに「デスクトップパス」を取得したい場合はサンプルコード内に記述している通りEnviron(“UserProfile”) & “\Desktop”とすればOKです。
サンプルコードはそれぞれの環境変数を指定して取得、その情報をセルへ書き込むだけの簡単なものですから特に難しいこともないですね。
3.まとめ
今回は環境変数の値を取得する内容について書いてみたのは、私が普段VBAで作成する際にデータの一時的な保存などにデスクトップを使用することが多々あり、その時にパスを取得したるするので、どうせならEnviron関数について簡単に書いてみようと思った次第です。
利用頻度は少ないと思いますが、このようなこともできるということを知っておくと今後幅も広がりますので良いと思います。
以上、環境変数の値を取得する方法についてでした!今回の記事が何かの参考になれば幸いです。
Ryo

