|
Option Explicit
'空き容量を取得するWindowsAPI
Private Declare Function GetDiskFreeSpaceEx Lib "kernel32" _
Alias "GetDiskFreeSpaceExA" (ByVal lpDirectoryName As String, lpFreeBytesAvailableToCaller As Currency, _
lpTotalNumberOfBytes As Currency, lpTotalNumberOfFreeBytes As Currency) As Long
'空き容量を取得を実行
Public Sub ExGetDiskFreeSpace(Drive As String, freeBytesAvailable As Currency, _
totalNumberOfBytes As Currency, totalNumberOfFreeBytes As Currency)
GetDiskFreeSpaceEx Drive, freeBytesAvailable, totalNumberOfBytes, totalNumberOfFreeBytes
'通貨型を10000倍すると取得する数値となる
freeBytesAvailable = freeBytesAvailable * 10000
totalNumberOfBytes = totalNumberOfBytes * 10000
totalNumberOfFreeBytes = totalNumberOfFreeBytes * 10000
End Sub
Private Sub CommandButton1_Click()
'調べるフォルダ名
Dim sDir As String
'ユーザーが利用可能な空き容量
Dim freeBytesAvailable As Currency
'ディスク総容量
Dim totalNumberOfBytes As Currency
'ディスクの空き容量
Dim totalNumberOfFreeBytes As Currency
Dim s1 As String
sDir = "c:\"
ExGetDiskFreeSpace sDir, freeBytesAvailable, totalNumberOfBytes, totalNumberOfFreeBytes
'結果表示
Range("B8") = "ドライブ:" & sDir & vbCrLf & _
"利用可能な" & vbCrLf & _
"空容量: " & Format$(Format$(freeBytesAvailable, "#,##0"), "@@@@@@@@@@@@@@@ Byte") & vbCrLf & _
"総容量: " & Format$(Format$(totalNumberOfBytes, "#,##0"), "@@@@@@@@@@@@@@@ Byte") & vbCrLf & _
"空容量: " & Format$(Format$(totalNumberOfFreeBytes, "#,##0"), "@@@@@@@@@@@@@@@ Byte")
End Sub
[実行結果]

|
|