【Excel VBA】環境変数の取得(Environ)

りゅう
こんにちは!りゅう(@ryupong_b)です。
今回は、「環境変数の取得方法」について解説していきます。
はじめに

環境変数の取得方法について解説していきます。
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ドライブかの情報を取得したいときもあるかと思っています。
そういった際に、本記事の知識を活用いただけると思っています。
この記事が、読者さまのお力になれれば嬉しいです!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

大手外資系コンサルティングファーム勤務。ExcelVBA歴は8年。金融関係のプロジェクトにて約100万レコードを処理するマクロの開発実績あり。ExcelVBAの基礎・応用情報を発信中。

コメント

コメントする

CAPTCHA