【MOS】【Microsoft Office Excel】【マクロ/VBA】ファイルパスからファイル名・ファイルのフォルダパスを取得する方法
あるファイルのフルパス(フォルダパス+ファイル名)が、特定のセルに入力されているとします。
マクロ(VBA)を使って上記フルパスを ファイル名 と ファイルのフォルダパス に分割して表示する方法は以下のとおりです。
条件設定)
ファイルのフルパスが表示されているセル … Sheet1シートのA1セル
ファイル名を入力するセル … Sheet1シートのA2セル
ファイルのフォルダパスを入力するセル … Sheet1シートのA3セル
Sub Get_FileName_And_FilePath() '==================================================================================== ' ファイルのフルパスからファイル名とファイルのフォルダパスを取得して表示するマクロ '==================================================================================== ThisWorkbook.Activate '// ファイルパスからファイル名を取得する。 Dim filePath As String, fileName As String filePath = Worksheets("Sheet1").Range("A1").Value 'A1セルを変数(filePath)に代入 fileName = Dir(filePath) 'ファイル名を変数(fileName)に代入 '// ファイルの存在確認 If fileName = "" Then '// ファイルがなければメッセージを表示して終了 MsgBox "指定されたファイルは存在しません。", vbExclamation Else '// ファイルがあればB1セルにファイル名を入力 Worksheets("Sheet1").Range("A2").Value = fileName '// フォルダパスを変数(fileFolderPath)に代入 Dim fileFolderPath As String fileFolderPath = Replace(filePath, fileName, "") '// フォルダパスをC1セルに入力 Worksheets("Sheet1").Range("A3").Value = fileFolderPath '//メッセージを表示して終了 End If End Sub
ワンポイント
Dir関数は、引数に指定したファイルが存在したときにファイル名を返す関数です。Replace関数は引数に指定した文字列を置換する関数です。置換後の文字列を「""」空白にすれば、置換前の文字列を削除することができます。