質問

Dim testfile As String
testfile = C:\test\aaa.xls
とします。
この時、testfileのディレクトリ名だけを取り出したいのですが、
どのようにすればよろしいでしょうか?
結果としては、
testdir = C:\test\
のような感じです。

一発でディレクトリ名を返してくれる関数はありますか?
それとも、フルパスの右側から1文字ずつ検索して"\"を~しか方法がないのでしょうか?

よろしくお願いします。

通報する

回答 (2件)

>testfileのディレクトリ名だけを取り出したい
 どのようにして「testfile」を設定しているかによって、ヤリカタも変わってくるかと存じます。

>フルパスの右側から1文字ずつ検索して"\"を
testdir = Left(testfile, InStrRev(testfile, "\"))

>一発でディレクトリ名を返してくれる関数
 もともとの「testfile」という「String」が
Set testbook = ThisWorkbook
testfile = testbook.FullName
というようなことで設定されているのでしたら、
testdir = testbook.Path & "\"

 また、実在のファイルでしたら、
testdir = Replace(testfile, Dir(testfile), "")

 ちなみに
testfile = C:\test\aaa.xls
ではなくて、
testfile = "C:\test\aaa.xls"
ですね。

この回答へのお礼

ご回答ありがとうございます。

>testdir = Left(testfile, InStrRev(testfile, "\"))

こちらで解決しました。
朝早くからご回答いただき、本当に感謝しています。
繰り返しになりますが、ありがとうございました。

この回答への補足

#1様、#2様

早速のご回答、ありがとうございます。
また、言葉足らずでスミマセンでした。

まず、testfile = "C:\test\aaa.xls"です。
そして、"C:\test\aaa.xls"はダイアログボックスから選択したフルパスなのです。
この文字列"C:\test\aaa.xls"からファイル名"aaa.xls"を除いた"C:\test\"を取得したいのです。
※もちろん、ダイアログボックスからの選択ですから状況によりパスは変動します

よろしくお願いします。

testdir = Replace(testfile , "aaa.xls" , "")
と言うこと?

この回答へのお礼

ご回答ありがとうございました。

#2さんの回答で解決できました。
ですが、早々にご回答いただいたことには大変感謝しております。
※私の言葉足らずがありまして、申し訳ありませんでした

このQ&Aは役に立ちましたか?0 件

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

新しく質問する

注目の記事

おしトピアプリ登場記念!コメントで最大1万円分のギフト券があたる!

話題のトピックにさくっとコメントできる「おしトピ」にAndroid版アプリに続きiPhoneアプリも登場! どちらかのアプリをダウンロードして指定のオーダーにコメントした方に抽選で最大1万分のアマゾンギフト券をプレゼント! フジテレビ出身のフリーアナウンサー長谷川豊氏の質問にも回答受付中!


新しく質問する

このカテゴリの人気Q&Aランキング

毎日見よう!教えて!gooトゥディ