[リストへもどる]
一括表示

投稿時間:2004/01/05(Mon) 21:27
投稿者名:もちお
URL :
タイトル:
フォルダの選択
フォルダ選択ダイアログを表示し、
ユーザーにより選択されたフォルダ位置を取得したいのですがどのような手法を使用すれば良いのでしょうか?
過去ログにAPIを使用すれば可能とされているのですが、
出来れば簡単な方法(コンポーネントの使用等)で解決したいのでアドバイス宜しくお願いします。

投稿時間:2004/01/05(Mon) 23:26
投稿者名:魔界の仮面弁士
Eメール:
URL :
タイトル:
Re: フォルダの選択
> フォルダ選択ダイアログを表示し、
> ユーザーにより選択されたフォルダ位置を取得したいのですがどのような手法を使用すれば良いのでしょうか?

ShellオブジェクトのBrowseForFolderメソッドを使うか、もしくは、
SHBrowseForFolder APIを使うという手があります。
物理フォルダだけではなく、仮想フォルダ(≠ディレクトリ)も取得可能です。


BrowseForFolderメソッドを使うのであれば、たとえばこんな感じで。

Private Sub Command1_Click()
    Dim F As Object
    
    With CreateObject("Shell.Application")
        Set F = .BrowseForFolder(Me.hWnd, "タイトル", 0)
        If F Is Nothing Then
            MsgBox "キャンセル"
        Else
            MsgBox F.self.Path
            Set F = Nothing
        End If
    End With
End Sub

なお、古い環境の場合、Folderオブジェクトのselfプロパティが使用できません。
その場合は、「F.self.Path」の替わりに「F.Items().Item.Path」で代用してみてください。

投稿時間:2004/01/06(Tue) 14:42
投稿者名:もちお
URL :
タイトル:
Re^2: フォルダの選択
御返答有難う御座います。
見栄えを重視し、APIを使用する手法で解決致しました。