← コード一覧へ戻る
実務Excel・Windows連携

Windowsのフォルダー選択画面を開く(Shell)

Shell.ApplicationのBrowseForFolderで、ファイルシステム上のフォルダーを選びます。

実行前に確認

  • 特殊な仮想フォルダーを通常のパスとして扱わないよう確認しています。ファイルの作成・削除はしません。
  • 公式仕様とコードを照合した例です。Excel実機での実行は未検証です。業務ブックではなくコピーで試してください。

1サンプルコード

Option Explicit
Sub PracticeAdvanced8006()
    Dim sh As Object, folder As Object
    On Error GoTo Failed
    Set sh = CreateObject("Shell.Application")
    Set folder = sh.BrowseForFolder(0, "練習用フォルダーを選んでください", 1)
    If folder Is Nothing Then Exit Sub
    If Not folder.Self.IsFileSystem Then
        MsgBox "通常のフォルダーを選んでください。"
        Exit Sub
    End If
    MsgBox folder.Self.Path
    Exit Sub
Failed:
    MsgBox "フォルダー選択を利用できません: " & Err.Description
End Sub

図で見る操作の流れ

イメージ図

準備、実行する操作、確認する結果の順で示しています。

  1. 準備

    Windows専用の例です。選ぶだけなので練習用フォルダーにファイルは不要です。

  2. 操作

    Shell.ApplicationのBrowseForFolderで、ファイルシステム上のフォルダーを選びます。

  3. 結果

    選択したフォルダーのパスが表示されます。キャンセルなら表示せず終了します。

特殊な仮想フォルダーを通常のパスとして扱わないよう確認しています。ファイルの作成・削除はしません。

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

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

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

  2. 2

    Windows専用の例です。選ぶだけなので練習用フォルダーにファイルは不要です。

  3. 3

    PracticeAdvanced8006を実行し、通常のフォルダーを選ぶかキャンセルします。

  4. 4

    選択したフォルダーのパスが表示されます。キャンセルなら表示せず終了します。

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