或阿呆のブログ

Pythonを好んで使っているプログラマです。Ruby,Perl,PowerShell,VBAなどでもたまに書いています。おバカなことが大好きです。

Excel VBAで環境変数の一覧を表示する。 #Excel #VBA

サンプルコード

Public Function print_path()
    Dim path_array() As String
    path_array = Split(Environ("Path"), ";")
    If Not Not path_array Then
        For i = 0 To UBound(path_array)
            Debug.Print path_array(i)
        Next
    End If
End Function

コメント

配列の宣言

    Dim path_array() As String

このように変数名の最後に()を付けると配列の宣言になる。

Split

Splitは第一引数で与えられた文字列をセパレーターで区切り配列で返却する。
例えば、"1,2,3"という文字列があったら、","でSplitしてやれば、array(0)=1,array(1)=2,array(2)=3の配列となる。

Environ("Path")

Environ関数によって環境変数の値を読みだせる。PathにPathが格納されるので(日本語能力低くてすみません)。Environ("Path")としてやれば、Pathの値が読みだせる。

Not Not

配列の要素数を求めるUBoundという関数があるが、配列が空の場合エラーとなる。なので、配列が空かどうかを事前にチェックしてあげる必要がある。VBAの場合、配列が空かどうかを判定する関数は無い・・・。そして、Not Notという意味のわからない述語で判定出来る。

実行結果

?print_path()
C:\Program Files\Microsoft Office\Office12\
C:\Perl\site\bin
C:\Perl\bin
C:\Ruby200\bin
C:\Program Files\NVIDIA Corporation\PhysX\Common
C:\Windows\system32
C:\Windows
C:\Windows\System32\Wbem
C:\Windows\System32\WindowsPowerShell\v1.0\
C:\Program Files\QuickTime\QTSystem\
C:\Program Files\nodejs\
C:\Python27
C:\Python27\Scripts
C:\Program Files\Brackets\command
C:\Strawberry\c\bin
C:\Strawberry\perl\site\bin
C:\Strawberry\perl\bin
C:\Program Files\sakura
C:\Program Files\Java\jre7\bin
C:\Users\oneshot\AppData\Roaming\npm