Создать функцию, которая использует Application.FileDialog
.FileDialog
является модальным.
Эта функция вернет выбор папки пользователя, если она была сделана, или пустую строку, если они нажали кнопку отмены на FileDialog
.
Public Function FolderSelection() As String
Dim objFD As Object
Dim strOut As String
strOut = vbNullString
'msoFileDialogFolderPicker = 4
Set objFD = Application.FileDialog(4)
If objFD.Show = -1 Then
strOut = objFD.SelectedItems(1)
End If
Set objFD = Nothing
FolderSelection = strOut
End Function
Я думаю, что вы можете использовать эту функцию всобытие нажатия вашей командной кнопки.
Dim strChoice As String
strChoice = FolderSelection
If Len(strChoice) > 0 Then
Me.TextBoxName = strChoice
Else
' what should happen if user cancelled selection?
End If
Если вы обеспокоены тем, что Microsoft может когда-нибудь удалить объект FileDialog
из Office, вы можете использовать вместо этого метод Windows API: Диалог BrowseFolder .