質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Q&A

解決済

2回答

32579閲覧

カレントディレクトリの一つ上の階層フォルダ内のファイルパスを取得する方法

iT___7

総合スコア11

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

0グッド

0クリップ

投稿2019/04/18 03:23

前提・実現したいこと

実現したいのは、
タイトルに記載しているとおり、カレントディレクトリの一つ上の階層フォルダのファイルパスを取得する方法です。

該当のソースコード

VBA

1Sub test() 2msgbox Curdir 3End Sub 4 5sub test1() 6Dim currentPath as string 7currentPath = ThisWorkbook.Path 8Msgbox currentPath 9End Sub

上記では、単純にカレントディレクトリを取得する方法をMsgboxで表示させています。
このディレクトリの一つ上の階層フォルダ内の、
例えば「test.xlsx」ファイルのパスを取得する方法を知りたいです

初歩的な質問ですみませんが、宜しくお願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

BeatStar

2019/04/18 04:27

test.xlsxはこのVBAがあるファイルでしょうか?
iT___7

2019/04/18 07:46

ありがとうございます。 文字列操作レベルでしたので、 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ってできないでしょうか。 できなければ違う方法を教えてください。
guest

回答2

0

案1:文字列操作する(末尾方向から \ を探して先頭からそこまで取る)
案2:ファイルシステムオブジェクトを使う

VBA

1Set folder = CreateObject("Scripting.FileSystemObject").GetFolder(CurDir).ParentFolder 2MsgBox folder.Drive & "\" & folder.Name

投稿2019/04/18 05:36

otn

総合スコア84555

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

目的がtest.xlsxへの正式なパス名を表示したいとかであるなら、他の回答にあるように、カレントパスから後ろの\以降を削除すればよいです。

ブックとしてオープンしたいからという目的であれば、カレントパスに..を付加すればよいかと思います。

VBA

1Set bk = Workbooks.Open(currentPath & "..\test.xlsx")

投稿2019/04/18 06:16

編集2019/04/18 06:17
ttyp03

総合スコア16998

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問