教えて!ExcelVBA!

ExcelVBAの基礎知識・書き方について紹介します。

ExcelVBAでWindowsAPIを使いWindowsディレクトリのパスを取得する方法

API宣言

WindowsAPI(関数)を使うためには、事前に宣言が必要となります。

Declare Function GetWindowsDirectory Lib "kernel32" _
    Alias "GetWindowsDirectoryA" (ByVal lpBuffer As String, ByVal uSize As Long) As Long

解説

この宣言では、GetWindowsDirectory関数(Windowsディレクトリのパスを取得)が使用できる様になります。

プログラミング例

具体的なプログラミング例を紹介します。

Sub Windowsディレクトリを取得()
    Dim バッファー As String
    Dim サイズ As Long
    Dim 結果 As Long
    バッファー = String(260, 0) ' 260文字分の空のバッファーを作成
    サイズ = Len(バッファー)
    結果 = GetWindowsDirectory(バッファー, サイズ)
    If 結果 > 0 Then
        バッファー = Left(バッファー, 結果)
        MsgBox "Windowsディレクトリは: " & バッファー
    Else
        MsgBox "ディレクトリの取得に失敗しました"
    End If
End Sub

上記のプログラムは、Windowsディレクトリを取得し表示する内容となります。

まとめ

WindowsAPI関数:GetWindowsDirectoryを使用し、Windowsのディレクトリを取得する方法について紹介しました。