← コード一覧へ戻る
実務パス・拡張子

フルパスからパスを抜き出す

Windows形式のフルパス文字列からファイル名を除き、親フォルダーのパスを取得します。

実行前に確認

  • 文字列の解析だけで、存在確認は行いません。フォルダーパスだけを渡すと、そのフォルダーの親が返る点に注意してください。
  • WindowsのFileSystemObjectを使用します。参照設定は不要です。

1サンプルコード

Sub Example4002()
    On Error GoTo Failed
    Dim fso As Object
    Set fso = CreateObject("Scripting.FileSystemObject")
    Dim fullPath As String
    fullPath = "C:\Data\sample.xlsx"
    MsgBox fso.GetParentFolderName(fullPath)
    Exit Sub
Failed:
    MsgBox "処理を中止しました: " & Err.Description
End Sub

図で見る操作の流れ

イメージ図

概念図:パスの文字列から親の部分だけを取り出します。

  1. 入力文字列

    C:\Data\sample.xlsx

  2. マクロ:文字列解析

    GetParentFolderNameで最後の名前を除く

  3. 結果

    C:\Data をメッセージ表示

実在のファイルやフォルダーは変化しません。存在確認も行いません。

コードの処理を説明する模式図です。実際の画面や実行結果を撮影したものではありません。

使い方・実行手順を確認する4つの手順で、コードの使い方を確認できます
  1. 1

    Windows版のデスクトップExcelで練習用ブックを.xlsm形式で保存します。Alt+F11→[挿入]→[標準モジュール]に、この例だけを貼り付けます。

  2. 2

    fullPathをファイル名まで含むパスへ変更します。

  3. 3

    実行するSubの内側にカーソルを置き、F5キーを押します。

  4. 4

    例のままならC:\Dataと表示します。C:\sample.xlsxなら親フォルダーはC:\です。

使っている機能の公式ドキュメント(Microsoft Learn)