如何在VBA中获取临时文件名
使用VBA开发应用程序时,可能会需要在磁盘上创建一个临时目录或文件,本文提供一个在VBA中创建临时文件的函数Get_Temp_File_Name。它使用到了Windows API函数中的GetTempFileName函数,同时支持对返回的文件名的前缀及扩展名设置。
Option Explicit '================================ ' VBA中获取临时文件名 ' ' '================================ Private Declare Function GetTempPath Lib "kernel32" _ Alias "GetTempPathA" _ (ByVal nBufferLength As Long, _ ByVal lpBuffer As String) As Long Private Declare Function GetTempFileName Lib "kernel32" _ Alias "GetTempFileNameA" _ (ByVal lpszPath As String, _ ByVal lpPrefixString As String, _ ByVal wUnique As Long, _ ByVal lpTempFileName As String) As Long Public Function Get_Temp_File_Name( _ Optional sPrefix As String = "VBA", _ Optional sExtensao As String = "") As String Dim sTmpPath As String * 512 Dim sTmpName As String * 576 Dim nRet As Long Dim F As String nRet = GetTempPath(512, sTmpPath) If (nRet > 0 And nRet < 512) Then nRet = GetTempFileName(sTmpPath, sPrefix, 0, sTmpName) If nRet <> 0 Then F = Left$(sTmpName, InStr(sTmpName, vbNullChar) - 1) If sExtensao > "" Then Kill F If Right(F, 4) = ".tmp" Then F = Left(F, Len(F) - 4) F = F & sExtensao End If Get_Temp_File_Name = F End If End Function Sub Test_Get_Temp_File_Name() Debug.Print Get_Temp_File_Name End Sub