Attribute VB_Name = "xGetTempFileName関数"





' @(h) xGetTempFileName関数.bas                          ver 1.0 ( '98.10.08  )

' @(s)
'  ユニークな一時ファイルの名前とパスを返す関数モジュール
'  本モジュールはテスト用コードモジュールです。
'
Option Explicit
Public Const MAX_PATH = 255
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
Attribute GetTempFileName.VB_ProcData.VB_Invoke_Func = " \n14"

Sub xGetTempFileNameのテスト()  'ExcelまたはVisual Basicで実行してください。
Attribute xGetTempFileNameのテスト.VB_ProcData.VB_Invoke_Func = " \n14"
    MsgBox "(" & xGetTempFileName(xGetTempPath(), "S") & ")"        'ok
    MsgBox "(" & xGetTempFileName(xGetTempPath(), "SA") & ")"       'ok
    MsgBox "(" & xGetTempFileName(xGetTempPath(), "SAM") & ")"      'ok
    MsgBox "(" & xGetTempFileName(xGetTempPath(), "SAMG") & ")"     'sam まで ok
End Sub

' @(f)
'
' 機能      : ユニークな一時ファイルの名前とパスを返す関数
'
' 返り値    : テンポラリパス名。
'
' 引き数    : lpszPath$         - テンポラリファイルで使用するディレクトリ名。
'             lpPrefixString$   - ファイル名の接頭辞。最初の3文字が接頭辞として使用される。
'
' 機能説明  : ユニークな一時ファイルの名前とパスを返す関数
'
' 備考      : 特になし
'
Function xGetTempFileName(lpszPath$, lpPrefixString$) As String
Attribute xGetTempFileName.VB_ProcData.VB_Invoke_Func = " \n14"
    Dim rcl&, wUnique&, lpTempFileName$
    
    wUnique& = 0
    lpTempFileName$ = String$(MAX_PATH, 0)
    rcl& = GetTempFileName(lpszPath$, lpPrefixString$, wUnique&, lpTempFileName$)
    xGetTempFileName = Left(lpTempFileName$, InStr(lpTempFileName$, Chr$(0)) - 1)
End Function