#055 Systemフォルダのパスを取得するには? VBA、API

Windowsやアプリケーションが使用するDLLやドライバなどがインストールされているWindows\Systemフォルダのパスを取得するには、WindowsAPIの「GetSystemDirectory」関数を使用します。

まず標準モジュールに次のコードを記述します。"Declare"の前に"Private"を付けることによってフォームのモジュールにも記述できます。
Declare Function GetSystemDirectory Lib "kernel32" Alias "GetSystemDirectoryA" _
                          (ByVal lpBuffer As String, ByVal nSize As Long) As Long

サンプルプロシージャ:
Function GetWinSysPath() As String
  Const MAX_PATH = 260  'フォルダ名の長さの最大値
  Dim strBuffer  As String * MAX_PATH 'フォルダ名を受け取るバッファ
  Dim lngRet As Long

  'API関数を呼び出し
  lngRet = GetSystemDirectory(strBuffer, Len(strBuffer))

  If lngRet > 0 Then
    '正常に取得されたら返り値の後続の Null を取り除いて返します
    '("C:\WINDOWS\SYSTEM" などが返る.....必要なら最後に¥を付けます)
    GetWinSysPath = Left(strBuffer, InStr(strBuffer, vbNullChar) - 1)
  Else
    '取得できなければ長さゼロの文字列を返します
    GetWinSysPath = ""
  End If

End Function
| Index | Prev | Next |



T'sFactory
Accessで動く生産管理DB
Ureru Express
Webで使う販売顧客管理
Access開発&アドバイス
DB開発やテクニカルアドバイス
Copyright © T'sWare All rights reserved