• 締切済み

ExcelVBAで前後のパスとパス名を取得したい。

Excel2000のVBAで現在いるフォルダの前後のフォルダ名とパス名を取得したいです。(できればさらに何階層か前後のフォルダも)取得できる関数はありますでしょうか。無ければ何かいい方法を教えてほしいです。お願いします。

  • siog
  • お礼率50% (7/14)

みんなの回答

  • X-Terra
  • ベストアンサー率48% (25/52)
回答No.1

カレントパスは、 CurDir("C") などを使います。("C"は、Cドライブということ。) 上位のフォルダ名は、カレントパスを"\"で遡ればよいかと思います。 下位フォルダについては・・ Dir関数を使うと良いでしょう。 Dir(currentDir,vbDirectory) で、下位ディレクトリ(の最初のもの)がわかります。 (vbNormal(1)/ vbReadOnly(1)/ ... / vbDirectory(16)などがあります。) 複数の下位ディレクトリを扱う場合、Dir関数を(引数なしで)何回も使います。

siog
質問者

お礼

回答ありがとうございます。 早速試してみます。

関連するQ&A

  • VBAでパスを取得しファイル名を入力するには

    EXCEL2003です。同じフォルダにVBAマクロとデータのcsvファイルがあります。このとき、マクロでパスを取得し、次にcsvファイル名を手入力あるいはそのフォルダの詳細表示からファイルをクリックすればデータを取り込めるようにしたいのですが、どなたかマクロを教えてくれないでしょうか。か。

  • ExcelVBA:自己のBook名を取得したい

    WindowsXP-Proです。 Excelヴァージョンは2003です。 ExcelVBAでコーディングしています。 で、自分自身(つまり、このVBAコードを記述しているExcel本体)のBook名を取得したいのですが、何か関数は用意されていますでしょうか? 自分自身のBook名を取得したい理由は、VBAコードを記述しているExcel本体のファイル名(Book名)の名前が変更されても、VBAが正常に機能するように、今現在のBook名を取得したいのです。 複数のExcelファイルを、このVBAで操作しているため、 Workbooks("本体のBook名").Activate を用いており、仮にファイル名(本体のBook名)の名前が変更されても、VBAが正常に機能できるように、"本体のBook名"部分を固定ではなく、可変で持てるようにしたいからです。

  • 共有フォルダ名のパスの取得

    お世話になります。 C++ 6.0 MFCで開発しております。 自分の共有フォルダ名から、その共有フォルダのパスを取得したいのですが それができるような関数はあるのでしょうか? 大変お手数ですが、何卒よろしくお願いします。

  • VBAでアカウント名を取得する方法

    VBAで処理したEXCELブックをデスクトップに自動保存しようとしています。VBAで現在作業中のユーザーアカウント名を自動で取得する方法を教えていただきたいのですが。 デスクトップ上にブックを保存するには、パスを記述すればよいのですが、現在PC毎にユーザーアカウントを設定しユーザー名が異なっています。 このため、PC毎にこのユーザー名をデスクトップへのパスに入れ込まなければなりません。毎回キーボードからこのユーザー名を入力する方法もありますが、自動的にユーザー名を取得し、正しいパスを指定する方法を検討しています。 どなたか、VBAでこのユーザー名を取得する方法が有れば教えていただきたいのですが。 よろしくお願いいたします。

  • LBoundでフォルダ名を取得したい。

    マクロで、フォルダ名を取得したいのですが、 どのように取得すればよいでしょうか? ThisWorkbook.Pathでパスを取得して \C:\***\△△△\○○○\XXX.xls だとすると、「△△△」だけを入力したいのです。 「△△△」は必ずCドライブから2階層下に あります。 パス名 = ThisWorkbook.Path tmp = Split(パス名, "\") MsgBox tmp(LBound(tmp)) としたところ「D」とうドライブ名が取得できたので MsgBox tmp(LBound(tmp,2))としてみたのですが、うまく 「△△△」の部分が取得できません。 よろしくお願いいたします。

  • パス名の変換

    フォルダ選択ダイアログで取得したパス名 ex.c:\program files を関数で使おうとすると c:\\program files に直すようだと分かったのですが 何かいい関数、もしくは方法はないでしょうか? よろしくお願いします

  • フォルダ内のフォルダ名を取得したい。

    VBAで Filename = Dir(Path, vbNormal)を使用すると、ファイル名が取得されます。(VBA一部掲載) フォルダ内の直下のフォルダ名のみ取得したいときはどうすれば、よいでしょうか。 宜しくお願いします。

  • FileSystemObjectでのパス名の取得

    お世話になります。 VBScriptでフォルダ内のファイルコピーのスクリプトを作っているのですが、FileSystemObjectを使用してネットワーク共有してある日本語のフォルダ名(Getfolder)を取得すると文字化けして取得できません。 Dim fso,fo set fso = CreateObject("Scripting.FileSystemObject") set fo = fso.getfolder(フォルダパス) WScript.Echo fo.path <---フォルダのパスを表示 なにか解決する方法はありますでしょうか? ちなみに、ローカルドライブの日本語フォルダは正常に取得できました。

  • 上位ディレクトリ名(フォルダ名)を取得するには?

    phpファイルが入っている、2階層上位のディレクトリ名(フォルダ名)を取得したいと思っています。 例 http://~.com/aaa/bbb/ccc/test.php test.phpが本体です。 ここから2階層上位のディレクトリ名、ここでは「bbb」を取得するような事はできないでしょうか? test.phpの中に、2階層上位のディレクトリ名を記述したいと思っています。 具体的に言うと、 $name = "●●●"; 上記の●●●に、2階層上位のディレクトリ名を入れたいです。 同じようなファイルが多数あり、「bbb」には様々なフォルダ名があり、test.phpの1つ1つを書き換えるのに手間がかかるので、ディレクトリ名を自動的に取得できれば助かります。 phpの知識がほとんどないため、お力をお借りできればと思い、質問させて頂きました。 アドバイスをお願い致します。

    • ベストアンサー
    • PHP
  • Access 自分の居る場所のパス

    こんにちは。 方法があるのかどうかもわかりませんが、もしあれば是非教えてくださいm(_ _)m 環境は WindowXP / Access2000 です。 VBA上にて、現在起動しているMDB(ようするに自分)が存在している場所 (パス)を取得するにはどうしたらいいのでしょうか? このMDBはまったく任意の場所に置かれる可能性があり、あらかじめパスを 持っておく事ができません。 具体的にはあるフォルダに、A.MDB と B.MDB が置いてあり A.MDB からShell関数を使って、B.MDBを起動するという処理を行いたいのです。 ですのでShell関数で、起動するB.MDBをフルパスで指定する為に まず自分(A.MDB)が置かれているフォルダまでのパスを取得したいのです。 Dir関数などで、B.MDBを検索して起動する方法もありかと思いますが、 B.MDBというファイルが複数存在していた場合にも、確実に 自分と同じフォルダにあるB.MDBを起動したいのです。 同じフォルダにあるので、ためしにパスを指定せずに起動しようとしましたが やっぱりダメでした^^; もし取得できる方法がお分かりでしたら教えてください。 よろしくお願いいたします。

専門家に質問してみよう