同じファイル名で、パスのみを変更するしたファイル名を作成する処理を関数化。
' ------------------------------------------------------------
' 説明:ファイル名(パス付き)から、指定したパスのファイル名(パス付き)を作成
' 引数:1:変換前のファイル名
' 2:変換後のファイルパス
' 戻値:変換後のファイル名
' 補足:例 1="C:\ExcelVBA\test.txt", 2="C:\ExcelVBA\Sample\No1",
' 戻値="C:\ExcelVBA\Sample\No1\test.txt"
' ------------------------------------------------------------
Function FilenameNewPathName(in_filename As String, out_path As String) As String
Dim fso As Scripting.FileSystemObject
Dim FolderName As String
' オブジェクトを作成
Set fso = New Scripting.FileSystemObject
' 入力ファイル名、出力フォルダ名が未指定の場合は何もなしで返す
If in_filename = "" Or out_path = "" Then
FilenameNewPathName = ""
Exit Function
End If
' 新しいファイル名を作成して戻す
FilenameNewPathName = out_path & "\" & fso.GetFileName(in_filename)
End Function
【補足】
Scripting.FileSystemObject を使用しています。
初期設定では、エラーが発生するので、参照設定「Microsoft Scripting Runtime」の設定が必要です。

コメント