![]() |
Select Folder - Simples Method
What is the best method to allow the user to select a folder?
I have found some example pieces of code to do this but they all seem to involve a lot of code. Is there an equivalent of the .GetOpenFilename function for Folders? or do you use this method then remove the selected filename from the string? |
Select Folder - Simples Method
With Excel XP you can use
With Application.FileDialog(msoFileDialogFolderPicker) .Show MsgBox .SelectedItems(1) End With with earlier versions Private Declare Function SHGetPathFromIDList Lib "shell32.dll" _ Alias "SHGetPathFromIDListA" _ (ByVal pidl As Long, _ ByVal pszPath As String) As Long Private Declare Function SHBrowseForFolder Lib "shell32.dll" _ Alias "SHBrowseForFolderA" _ (lpBrowseInfo As BROWSEINFO) As Long Private Type BROWSEINFO hOwner As Long pidlRoot As Long pszDisplayName As String lpszTitle As String ulFlags As Long lpfn As Long lParam As Long iImage As Long End Type '------------------------------------------------------------- Function GetFolder(Optional ByVal Name As String = _ "Select a folder.") As String '------------------------------------------------------------- Dim bInfo As BROWSEINFO Dim path As String Dim oDialog As Long bInfo.pidlRoot = 0& 'Root folder = Desktop bInfo.lpszTitle = Name bInfo.ulFlags = &H1 'Type of directory to Return oDialog = SHBrowseForFolder(bInfo) 'display the dialog 'Parse the result path = Space$(512) GetFolder = "" If SHGetPathFromIDList(ByVal oDialog, ByVal path) Then GetFolder = Left(path, InStr(path, Chr$(0)) - 1) End If End Function -- HTH Bob Phillips "Andibevan" wrote in message ... What is the best method to allow the user to select a folder? I have found some example pieces of code to do this but they all seem to involve a lot of code. Is there an equivalent of the .GetOpenFilename function for Folders? or do you use this method then remove the selected filename from the string? |
All times are GMT +1. The time now is 09:55 AM. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com