環境変数の取得方法について解説していきます。
OSバージョンでの制御や、マクロ実行者のディレクトリ情報などを取得する際に活用できますので、ぜひ最後までお付き合いください。
- 環境変数とは何かが分かります。
- 環境変数の確認手順が分かります。
- Excel VBAでの環境変数の取得方法が分かります。
環境変数について理解されている方は、目次より「Environ関数の概要」からご参照ください。
環境変数とは
環境変数とは、OSやユーザごとに保持している変数のことです。
OSのバージョンや、ユーザ名、Tempディレクトリのパスなどが格納されているため、マクロ実行者のOSやユーザ情報を取得することが可能です。
主な環境変数について
主な環境変数を、一部抜粋して列挙しました。
以下以外の環境変数もありますので、環境変数の確認方法については後述します。
主な環境変数
# | 変数名 | 説明 |
1 | OS | OSのバージョン |
2 | USERNAME | ユーザ名 |
3 | TEMP | Tempディレクトリ |
4 | COMPUTERNAME | コンピュータ名 |
5 | HOMEDRIVE | ホームドライブ |
6 | NUMBER_OF_PROCESSOR | プロセッサ数 |
次項では、環境変数の確認手順を解説していきます。
環境変数の確認手順
コマンドプロンプトの起動
Windowsスタートメニューに、[コマンドプロンプト]と入力し、検索結果から[コマンドプロンプト]を選択します。
setコマンドの実行
コマンドプロンプトが起動したら、[set]と入力し、[Enter]キーを押下します。
以下が環境変数の一覧イメージです。
出力結果は以下の通りとなっています。
出力結果
環境変数名=値
Environ関数について
ExcelVBAにおいて、環境変数の取得を取得する際はEnviron関数を使用します。
Environ関数の詳細は以下の通りです。
構文
構文は以下の通りです。
引数には、envstringかnumberのどちらかを指定します。
Environ( { envstring | number } )
引数
# | 引数 | 説明 |
1 | envstring | 環境変数名を指定します |
2 | number | 環境変数ごとに1~255の番号が割り当てられており、その数値を指定します。 ※256以上の数値を指定するとエラーとなります。 |
数値については、どの環境変数がどの数値であるかが不明なので…
全環境変数をループする必要があれば数値の引数は活用できるかなという印象です。
戻り値
環境変数の内容をString型にて返却します。
引数にて、存在しない環境変数の情報が指定されていた場合は、””(ブランク)が返却されます。
サンプルコード
以下は、マクロ本体の一番左のシート A1セルにOS名を、A2セルに1番目の環境変数を書き出すサンプルコードです。
Public Sub testEnviron()
' Worksheet(1)のA1セルに環境変数 "OS"を書き出し
ThisWorkbook.Worksheets(1).Range("A1").Value = Environ("OS")
' Worksheet(1)のA2セルに 1番目の環境変数を書き出し
ThisWorkbook.Worksheets(1).Range("A2").Value = Environ(1)
End Sub
最後に
いかがでしたでしょうか。
「サポートするOSのバージョン」が決まっていれば、OSのバージョンを取得する必要があったりします。
あと、「ファイルの保存先ディレクトリをどうしよう」という場合でも、ホームドライブがCドライブか、Dドライブかの情報を取得したいときもあるかと思っています。
そういった際に、本記事の知識を活用いただけると思っています。
この記事が、読者さまのお力になれれば嬉しいです!
コメント