フルパスからファイル名、パスを取得する
2016/03/23
フルパスからファイル名のみを取得する
フルパスからファイル名を取得するには、Dir 関数 が便利です。ただし、対象となるファイルが存在しない場合は、取得することができません。
    その場合は、まず、InStrRev 関数 を使ってフルパスの最後の「\」の位置を取得します。最後の「\」の後が、ファイル名となるので、Mid 関数 を使って取得します。
フルパスからパス名のみを取得する
ファイル名がわかれば、Replace 関数 を使ってフルパスからファイル名を削除して取得することができます。
FSO を使用してフルパスからパス・ファイル名を取得する
FSO(FileSystemObject) を使用して、フルパスからパス、ファイル名を取得することができます。パスを取得するには、GetParentFolderName メソッド を使用します。ファイル名を取得するには、GetFileName メソッド を使用します。
    FSO に関しては、ファイルシステムオブジェクトの使い方 を参照してください。
ConvertFormula メソッド 使用例
サンプルVBAソース 1
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | Sub Sample1_GetFileName()     Dim TargetFilePathName As String     Dim FileName As String     Dim FilePath As String     TargetFilePathName = "C:\MyDocuments\Sample.txt"     If Dir(TargetFilePathName) <> "" Then         'ファイルが存在する場合         FileName = Dir(TargetFilePathName)     Else         'ファイルが存在しない場合         FileName = Mid(TargetFilePathName, InStrRev(TargetFilePathName, "\") + 1)     End If     FilePath = Replace(TargetFilePathName, FileName, "")     MsgBox "パス:" & FilePath & vbCrLf & "ファイル名:" & FileName End Sub | 
実行結果 1
サンプルVBAソース 2(FSO 使用)
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | Sub Sample2_GetFileName()     'FileSystemObject オブジェクトを使用する方法     Dim myFSO As Object     Dim TargetFilePathName As String     Dim FileName As String     Dim FilePath As String     TargetFilePathName = "C:\MyDocuments\Sample.txt"     Set myFSO = CreateObject("Scripting.FileSystemObject")     FileName = myFSO.GetFileName(TargetFilePathName)     FilePath = myFSO.GetParentFolderName(TargetFilePathName)     MsgBox "パス:" & FilePath & vbCrLf & "ファイル名:" & FileName End Sub | 
実行結果 2
関連記事
-  
              
- 
      「ファイル」ダイアログボックスを表示・設定(FileDialog オブジェクト)FileDialog オブジェクト FileDialog オブジェクト のメソッ … 
-  
              
- 
      「ファイルを開く」ダイアログボックス(FindFile メソッド)FindFile メソッド 「ファイルを開く」ダイアログボックスを表示します。G … 
-  
              
- 
      ファイルを削除(Kill ステートメント)ファイルを削除する ファイルを削除するには、Kill ステートメント を使用しま … 
-  
              
- 
      組み込みダイアログボックスの引数一覧組み込みダイアログボックスの引数一覧 Excel の組み込みダイアログボックスを … 
-  
              
- 
      Excelでテキストファイルを開く(OpenText メソッド)Excelでテキストファイルを開く OpenText メソッドで、テキストファイ … 
-  
              
- 
      開いているファイルの読み取り位置または書き込み位置を設定(Seek ステートメント)Seek ステートメント Open ステートメント で開いているファイルで、次に … 
-  
              
- 
      テキストファイル:データを書き込む(Put ステートメント)Put ステートメント Open ステートメント をランダムアクセスモード(Ra … 
-  
              
- 
      FileDialog オブジェクトを取得する(FileDialog プロパティ)FileDialog プロパティ FileDialog オブジェクト を取得しま … 
-  
              
- 
      ファイルのタイムスタンプを取得(FileDateTime 関数)ファイルのタイムスタンプを取得 ファイルのタイムスタンプを取得するには、File … 
-  
              
- 
      ディレクトリまたはフォルダの作成(MkDir ステートメント)ディレクトリまたはフォルダの作成 新しいディレクトリまたはフォルダを作成するには … 
 
        

