View Single Post
  #4   Report Post  
Posted to microsoft.public.excel.programming
Dave Peterson Dave Peterson is offline
external usenet poster
 
Posts: 35,218
Default API Function Call - GetFreeDiskSpace

Another option:

Option Explicit
Sub testme()

Dim myDriveLetter As String


' With a reference (tools|references) to microsoft scripting runtime
' Dim FSO As Scripting.FileSystemObject
' Dim myDrive As Scripting.Drive
' Set FSO = New Scripting.FileSystemObject

' without that reference
Dim FSO As Object
Dim myDrive As Object
Set FSO = CreateObject("scripting.filesystemobject")

myDriveLetter = "C"
Set myDrive = FSO.GetDrive(myDriveLetter)
MsgBox Format(myDrive.freeSpace, "0,000")


End Sub

sub testme02()
'or just this:
Dim myDriveLetter As String

myDriveLetter = "C"
MsgBox CreateObject("scripting.filesystemobject") _
.GetDrive(myDriveLetter).freeSpace

end sub



bill_morgan wrote:

Friends,

I am running Excel 2000 on Win XP.

I created a VBA User Defined Function that references the follwing API
function:

Private Declare Function GetDiskFreeSpace Lib "kernel32" _
(ByVal lpRootPathName As String, lpSectorsPerCluster As _
Long, lpBytesPerSector As Long, lpNumberOfFreeClusters As _
Long, lpTotalNumberOfClusters As Long) As Long

Question: Code seems to be working okay (I have serveral other API calls in
the same module), but I am getting Runtime Error 453 "Can't Find DLL Entry
Point in Kernal 32"

Has the name of the DLL changed since Win 2000? How do I need to change the
above API function declaration so that it is referencing the right DLL?

Thanks for your help ...

Bill Morgan


--

Dave Peterson