Начните с создания модуля (в окне VBA, на левой панели, щелкните правой кнопкой мыши, Вставьте ..., Модуль). Затем переместите вашу функцию GetFolder()
в этот модуль, объявленный как public
Option Explicit
Public Function GetFolder() As String
Dim fldr As FileDialog
Dim sItem As String
Set fldr = Application.FileDialog(msoFileDialogFolderPicker)
With fldr
.Title = "Select a Folder"
.AllowMultiSelect = False
.InitialFileName = Application.DefaultFilePath
If .Show <> -1 Then GoTo NextCode
sItem = .SelectedItems(1)
End With
NextCode:
GetFolder = sItem
Set fldr = Nothing
End Function
Тогда в вашей форме вы хотите что-то, что вызовет процедуру. Обычно мы делаем это с помощью кнопки.
Итак, добавьте кнопку в форму. Затем дважды щелкните по кнопке (или щелкните правой кнопкой мыши и «код»), и она создаст для нее событие щелчка.
В коде события кнопки вызовите процедуру GetFolder
:
Option Explicit
Private Sub CommandButton1_Click()
Dim strFolder As String
strFolder = GetFolder()
MsgBox strFolder
End Sub