EXCEL VBA 利用していないファイル名を取得
一時ファイルを作るときに、利用されていないファイル名を探すことはありませんか?
このプログラムは、指定フォルダ内で利用されていないファイル名を探します。
イメージ図
Debug.Print nstr利用していないファイル名を取得("c:\", "bat") 'c:\2022_08_17_18_07_27_1.bat Debug.Print nstr利用していないファイル名を取得("C:\ARU", "bat") 'C:\ARU\2022_08_17_18_16_04_1.bat Debug.Print nstr利用していないファイル名を取得("C:\ARU\", "bat") 'C:\ARU\2022_08_17_18_16_04_1.bat Debug.Print nstr利用していないファイル名を取得("c:", "bat") 'c:\2022_08_17_18_17_14_1.bat Debug.Print nstr利用していないファイル名を取得("c", "bat") 'LEN(0)の文字列 Debug.Print nstr利用していないファイル名を取得("c:\nai", "bat") 'LEN(0)の文字列
下記のソースコードも追加してください。
●EXCEL VBA ファイルの存在確認 - pgbigorokuのブログ
●
EXCEL VBA フォルダの存在確認 - pgbigorokuのブログ
●
EXCEL VBA フォルダ名とファイル名からフルパスにする - pgbigorokuのブログ
' ' 機能 : 利用していないファイル名を取得 ' ' 返り値 : 存在していないファイル名(フルパス) ' ' 引き数 : ByVal pstrこのフォルダ名配下に作る As String 使用していないファイルを作るフォルダ ' ByRef pstr拡張子 As String 新しく作るファイルの拡張子(.があっても無くてもOK) ' 機能説明 : ワイルドカードは使えません ' ' ' 備考 : 引き数「pstrこのフォルダ名配下に作る」が有効なフォルダではない場合、戻り値はLEN(0)の文字列とする。 ' ' この関数のURL :https://pgbigoroku.hatenablog.com/entry/2022/08/17/094450 ' ' この関数を利用するために必要な関数:https://pgbigoroku.hatenablog.com/entry/2022/08/17/005434 ' https://pgbigoroku.hatenablog.com/entry/2022/08/17/005046 ' https://pgbigoroku.hatenablog.com/entry/2022/08/17/093728 ' バージョン :2022/8/16 ' Public Function nstr利用していないファイル名を取得(ByVal pstrこのフォルダ名配下に作る As String, ByRef pstr拡張子 As String) As String Dim intFor As Integer Dim strDate As String Dim strtempFilename As String Dim str拡張子 As String If Left(pstr拡張子, 1) = "." Then pstr拡張子 = pstr拡張子 Else pstr拡張子 = "." & pstr拡張子 End If If nblnフォルダの存在確認(pstrこのフォルダ名配下に作る) = True Then strDate = Format(Now, "yyyy_mm_dd_hh_mm_ss_") For intFor = 1 To 9999 strtempFilename = nstrフルパスにする(pstrこのフォルダ名配下に作る, strDate & CStr(intFor) & pstr拡張子) If nblnファイル存在確認(strtempFilename) = True Then Else nstr利用していないファイル名を取得 = strtempFilename Exit Function End If Next nstr利用していないファイル名を取得 = "" Else nstr利用していないファイル名を取得 = "" End If End Function