【ExcelVBA】フルパスをファイル名とパス名に分割する

ExcelVBA, 文字列の操作

フルパスをファイル名とパス名に分割

ファイルが存在するのなら

Sub Sample()
  
  Dim STR As String
  
  STR = "Z:\opencv\opencv331\sources\data\readme.txt"
 
  Debug.Print Dir(STR) 'ファイル名
  Debug.Print Replace(STR, Dir(STR), "") 'パス名
 
End Sub
※ファイルが実際に存在していることが前提です。

結果:イミディエイト画面
readme.txt
Z:\opencv\opencv331\sources\data\
※ファイル名と同名のフォルダ名(拡張子も含む)が存在しないことを前提にしています。

ファイルが存在するのか分からないとき

Sub Samplde()
  
    Dim STR As String
    STR = "Z:\opencv\opencv331\sources\data\readme.txt"
   
    Dim FSO, ファイル名 As String, パス名 As String
    Set FSO = CreateObject("Scripting.FileSystemObject")
    ファイル名 = FSO.GetFileName(STR)
    パス名 = FSO.GetParentFolderName(STR)
    Set FSO = Nothing
    
    Debug.Print パス名
    Debug.Print ファイル名
 
End Sub

結果:イミディエイト画面
readme.txt
Z:\opencv\opencv331\sources\data