#183 | ドライブのボリューム名を得るには? | VBA、API | |
Accessを使って、ディスク上のドライブやファイル情報をデータベース化して管理したいような場合に使える方法です。Windows APIの「GetVolumeInformation」関数を使うことによって、指定したドライブのボリューム名を取得することができます。 まず標準モジュールのDeclarationsセクションに次のコードを記述します。"Declare"の前に"Private"を付けることによってフォームのモジュールにも記述できます。 Declare Function GetVolumeInformation Lib "kernel32" Alias _
"GetVolumeInformationA" _ (ByVal lpRootPathName As String, _ ByVal lpVolumeNameBuffer As String, _ ByVal nVolumeNameSize As Long, _ lpVolumeSerialNumber As Long, _ lpMaximumComponentLength As Long, _ lpFileSystemFlags As Long, _ ByVal lpFileSystemNameBuffer As String, _ ByVal nFileSystemNameSize As Long) As Long 以下は、「Cドライブ」のボリューム名を取得して、メッセージボックスに表示する例です。適当なプロシージャに組み込んで使ってください。また、変数strRootPathを引数、変数strVolNameを返り値とするFunctionプロシージャとして作っておくと、いろいろと汎用的に使えると思います。 Dim strRootPath As String
Dim strVolName As String * 128 Dim lngVolSerNum As Long Dim lngMaxComponentLen As Long Dim lngFSFlags As Long Dim strFSName As String * 128 'ボリューム名を取得したいドライブのルートディレクトリを指定します strRootPath = "C:\" 'ボリュームに関する情報を取得します '変数strVolNameにボリューム名が返されます GetVolumeInformation strRootPath, strVolName, Len(strVolName), _ lngVolSerNum, lngMaxComponentLen, _ lngFSFlags, strFSName, Len(strFSName) '後続のNullを取り除いて、ボリューム名をメッセージ表示します MsgBox Left$(strVolName, InStr(strVolName, vbNullChar) - 1) |
|||
|
Copyright © T'sWare All rights reserved |