前提・実現したいこと
実現したいのは、
タイトルに記載しているとおり、カレントディレクトリの一つ上の階層フォルダのファイルパスを取得する方法です。
該当のソースコード
VBA
1Sub test() 2msgbox Curdir 3End Sub 4 5sub test1() 6Dim currentPath as string 7currentPath = ThisWorkbook.Path 8Msgbox currentPath 9End Sub
上記では、単純にカレントディレクトリを取得する方法をMsgboxで表示させています。
このディレクトリの一つ上の階層フォルダ内の、
例えば「test.xlsx」ファイルのパスを取得する方法を知りたいです
初歩的な質問ですみませんが、宜しくお願い致します。
test.xlsxはこのVBAがあるファイルでしょうか?
https://dobon.net/vb/dotnet/file/pathcanonicalize.html
このあたりを参考にされると良いかもしれません。
https://www.sejuku.net/blog/31263
文字列操作レベルなら InStrRev もお勧めです。
ありがとうございます。
文字列操作レベルでしたので、
InStrRevを使用しました。
'''VBA
sub sample1()
Dim stCurrentPath As String, stMasterCompoPath As String
stCurrentPath = ThisWorkbook.Path
stMasterCompoPath = Left(stCurrentPath, InStrRev(stCurrentPath, "\") - 1) & "\test.xlsx"
MsgBox stMasterCompoPath
end Sub
'''
こちらのコードで、
現在のカレントディレクトリフォルダパスの一つ上の階層フォルダ内の「test.xlsx」は取得できました。
やりたいことは、
一つ下の階層のExcelファイル「test2.xlsx」の「sheet1」からCurrentRegionをCopyし、
一つ上の階層のExcelファイル「test1.xlsx」の「sheet1」へ値のみ”A1”セルから貼り付けるマクロです。
そのために、一つ上の階層のファイルパスの取得をご質問しましたが、
絶対パスでは、ブックに値をPasteってできないでしょうか。
できなければ違う方法を教えてください。
https://teratail.com/questions/17489
こちらに全く同じ質問がありました。
こちらを参考にいたします。

回答2件
あなたの回答
tips
プレビュー