Navegar na pasta para selecionar a pasta usando VBA no Microsoft Excel

Anonim

Neste artigo, criamos um procedimento que é usado para exibir a caixa de diálogo, que é usado para navegar pela pasta para selecionar a pasta.

Este código pode ser usado junto com outras macros onde a seleção da pasta é necessária no tempo de execução.

Explicação lógica

Neste artigo, fizemos referência a duas funções de API para exibir a caixa de diálogo para navegar na pasta.

Quando selecionamos qualquer pasta específica usando o navegador de pastas, a caixa de diálogo retorna o caminho da pasta selecionada.

Siga abaixo para o código

 Opção Explicit 'Declarando tipo de dados do usuário' Usado pela função GetFolderName Tipo privado 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 'Declarando referência à função API Private Declare Função SHGetPathFromIDList Lib "shell32.dll" _ Alias ​​"SHGetPathFromIDListA" (ByVal pidl As Long, ByVal pszPath As String) As Long Private Declare a função SHBrowseForFolder Lib "shell32.dll" _ Alias ​​"SHBrowseForFolderA (Msg As String) As String 'Retorna o nome da pasta selecionada pelo usuário Dim bInfo As BROWSEINFO, caminho As String, r As Long Dim X As Long, pos As Integer bInfo.pidlRoot = 0' Tipo de diretório a retornar bInfo .ulFlags = & H1 'Exibir a caixa de diálogo X = SHBrowseForFolder (bInfo)' Analisar o caminho do resultado = Space $ (512) 'Chamar função API r = SHGetPathFromIDList (ByVal X, caminho ByVal)' Código para excluir espaços extras no fim do nome da pasta return If r Then pos = InStr (path, Chr (0)) GetFolderName = Left (path, pos - 1) Else GetFolderName = "" End If End Function Sub TestGetFolderName () Dim FolderName As String 'Chamando a função GetFolderName FolderName = GetFolderName ("Selecione uma pasta") If FolderName = "" Then MsgBox "Você não selecionou uma pasta." Else MsgBox "Você selecionou esta pasta:" & FolderName End If End Sub 

Se você gostou deste blog, compartilhe com seus amigos no Facebook. Além disso, você pode nos seguir no Twitter e no Facebook.

Gostaríamos muito de ouvir de você, diga-nos como podemos melhorar nosso trabalho e torná-lo melhor para você. Escreva para nós no site de e-mail