API para Selecionar Pastas
Especialista em Excel
Objetivo: Demonstrar a utilização da API de seleção de pastas do Windows com VBA.
Assim como vimos em outro post sobre API's, o Windows permite que nós utilizemos diversas de suas funções por meio de programação, que de outra forma seria muito difícil desenvolvermos.
Neste código VBA você pode chamar a tela de seleção de pastas do Windows e após selecioná-la retornar este caminho, que pode ser utilizada para definir por exemplo o local aonde serão gerados arquivos a partir da sua planilha.
Para incluir uma procedimentos ou funções globais faça conforme o artigo http://guiadoexcel.com.br/criando-funcoes-proprias-globais.
'Colocar esta parte do código no início do módulo
Public Declare Function SHBrowseForFolder Lib "shell32.dll" Alias _
"SHBrowseForFolderA" (lpBrowseInfo As BROWSEINFO) As Long
Public Declare Function SHGetPathFromIDList Lib "shell32.dll" Alias _
"SHGetPathFromIDListA" (ByVal pidl As Long, ByVal pszPath As String) _
As Long
Public 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
'Função que faz chamada da API
Public Function gfSelecionarPasta(ByVal vFolder As String, Optional Title As String, Optional hWnd) As String
Dim bi As BROWSEINFO
Dim pidl As Long
Dim folder As String
folder = String$(255, Chr$(0))
With bi
If IsNumeric(hWnd) Then .hOwner = hWnd
.pidlRoot = 0
If Title <> "" Then
.lpszTitle = Title & Chr$(0)
Else
.lpszTitle = "Select a Folder" & Chr$(0)
End If
End With
pidl = SHBrowseForFolder(bi)
If SHGetPathFromIDList(ByVal pidl, ByVal folder) Then
folder = Left(folder, InStr(folder, Chr$(0)) - 1)
Else
folder = ""
End If
If Right(folder, 1) <> "\" And Len(folder) > 0 Then folder = folder & "\"
gfSelecionarPasta = folder
End Function
'Utilização da função para mostrar em um messageBox e colocar em uma célula o caminho da pasta
Public Sub gsPasta()
Dim lPasta As String
lPasta = gfSelecionarPasta("C:", "Selecione o local aonde será gravado o arquivo:")
MsgBox "O arquivo será gravado em: " & lPasta, vbExclamation, "Local"
Cells(1, 1).Value = lPasta
End Sub
Abraço
Marcos Rieper
Planilha de Controle Financeiro no Excel
Tenha um controle bonito e completo do seu financeiro.
- Categorias e subcategorias já configuradas
- Planilhas separadas por tabela (configuração, lançamentos, resumo)
- Personalize com suas próprias categorias e ícones
Este conteúdo foi útil?
Continue lendo

O Excel Vai Acabar com a Inteligência Artificial? Entenda o Que Realmente Está Acontecendo
O Excel vai acabar com a Inteligência Artificial? Descubra como Excel e IA estão transformando o mercado de trabalho e porque é essencial.

Criar Dashboard Online com Excel e Claude ou Chatgpt
Como criar um dashboard online utilizando Excel, CSV e Inteligência Artificial com ChatGPT ou Claude. Transforme planilhas em página web.

10 recursos do Excel que quase ninguém usa, mas que aumentam muito a produtividade
Descubra 10 recursos avançados do Excel que quase ninguém usa, mas que podem economizar horas de trabalho e aumentar sua produtividade.


