こんにちは。
私には、コードが何を求めているのか、ご説明では正確には分かりません。
>"開く"ボタンにて対象ファイルをマウスにて選択することによって、絶対パスが変更する。等
fn = Application.FileDialog(msoFileDialogOpen).Show
' or
'fn = Application.Dialogs(xlDialogOpen).Show
をお使いになっているのかな?
>どのような手法でもかまいません。
'----------------------------------
Sub getFolderName1()
Dim myPath As String
With Application.FileDialog(msoFileDialogFolderPicker)
If .Show = False Then Exit Sub
myPath = .InitialFileName
MsgBox myPath
End With
End Sub
'----------------------------------
Sub getFolderName2()
Dim fn As String
ChDir ThisWorkbook.Path '最初のフォルダに移動
fn = Application.GetOpenFilename("すべてのファイル(*.*),*.*")
If fn = "False" Then Exit Sub
myPath = Mid$(fn, 1, InStrRev(fn, "\"))
MsgBox myPath
End Sub
'------------------------------------
他には、こんな方法もあります。
Sub Sample_ShowFolder()
Dim objSh As Object
Set objSh = CreateObject("Shell.Application"). _
BrowseForFolder(0, "フォルダを選んでください", 0, "c:\")
If Not objSh Is Nothing Then
MsgBox objSh.Items.Item.Path
End If
Set objSh = Nothing
End Sub
フォルダを取得する方法は、他にも、Win32 APIがあります。