- 締切済み
EXCEL VBA 親ディレクトリの参照方法
教えてください。 下記のフォルダとファイルがあります。 C:\........\main\DIR\excel1.xls c:\........\main\dir2\excel2.CSV \mainの下にDIR,DIR2がありますが、常に\mainの場所は不定です。 DIRの下にあるEXCEL1.xlsにあるブックにマクロ記述をして、 EXCEL2.CSVを書き出すマクロを書きたいのですが・・・ ActiveWorkbook.pathにてディレクトリは参照できるのですが、 簡単にこの親のディレクトリを参照できる方法はないでしょうか?
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- imogasi
- ベストアンサー率27% (4737/17069)
(1)Application.Path (2)CurDir (3)ActiveWorkBook。Path 保存前 空白 保存後読み出したもの 保存フォルダ (4)何かファイルを書き出そうとしているが、そのファイルの収納場所 のうち(4)ですね。 絶対的に、文字列でコードの中で指定し、それと(2)(3)は関連付けて考えなくて良いのでね。 (A)文字列から (B)今あるところから の(A)らしいが。 それならInStrRev関数(使えないバージョンではInStr関数を使って やや複雑)で解決すると思いますがそれでよいのでしょうか。(#1のご回答)文字列の切り出しの問題。 またVBScript式(FSO)では objFS.GetParentFolderName (#2のご回答) で直下(子)から、直上(親)を順次辿れます。 文字列の切り出しでもあり、フォルダーファイル実態の親名。
- KenKen_SP
- ベストアンサー率62% (785/1258)
FileSystemObject の GetParentFolderName が使えますよ。 With CreateObject("Scripting.FileSystemObject") sPath = .GetParentFolderName(ThisWorkbook.Path) End With sPath = sPath & "\dir2\excel2.CSV" MsgBox sPath
- misatoanna
- ベストアンサー率58% (528/896)
簡単に参照するコマンドはわかりませんが、 myPath = ActiveWorkbook.Path 親 = Left(myPath, InStrRev(myPath, "\") - 1) などでも……