ray88’s diary

お仕事で困ったとき用の自分用の覚書

フルパスからファイル名とフォルダパスを取得する

■まずは、単純に取得する方法

Sub testGetFileInfo()

  'フルパスからファイル名を取得
  strFileName = Dir(strTempFilePath)

  'フルパスからフォルダパスを取得
  strFolderPath = Replace(strTempFilePath, strFileName, "")

End Sub

■FileSystemObjectを使用して取得する方法
※FileSystemObjectを事前バインディングする際は参照設定の
Microsoft Scripting Runtime」にチェックを入れる

Sub testGetFileInfo()

 Dim objFile As Object
 Dim TargetPath As String
 Dim fileName As String
 Dim FolderPath As String
 '------------------------------------------------------------------
  '遅延バインディングの場合
  Dim objFSO As Object
  Set objFSO = CreateObject("Scripting.FilesystemObject")
 '------------------------------------------------------------------
  '参照設定済の場合
  'Dim objFSO As Object
 '------------------------------------------------------------------
 TargetPath = "C:\テスト.xlsx"

 '拡張子ありのファイル名取得
 fileName = objFSO.GetFileName(TargetPath)

 '変数に対象ファイルを格納
 Set objFile = objFSO.GetFile(TargetPath)

 'フォルダパス取得
 FolderPath = objFile.ParentFolder

 MsgBox "ファイル名 : " & fileName & vbCrLf & _
           "フォルダパス: " & FolderPath

End Sub

f:id:ray88:20200112154043p:plain