Šajā rakstā mēs esam izveidojuši procedūru, kas tiek izmantota dialoglodziņa parādīšanai, ko izmanto, lai pārlūkotu mapi mapes izvēlei.
Šo kodu var izmantot kopā ar citiem makro, kur izpildlaika laikā ir jāizvēlas mape.
Loģisks skaidrojums
Šajā rakstā mēs esam norādījuši uz divām API funkcijām, lai parādītu pārlūkošanas mapes dialoglodziņu.
Kad mēs izvēlamies kādu konkrētu mapi, izmantojot mapju pārlūku, dialoglodziņš atgriež izvēlētās mapes ceļu.
Lūdzu, sekojiet tālāk norādītajam kodam
Opcija Skaidrs 'Lietotāja datu veida deklarēšana', ko izmanto funkcija GetFolderName Privātais tips 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 'Deklarējot atsauci uz API funkciju Funkcija SHGetPathFromIDList Lib "shell32.dll" _ Pseidonīms "SHGetPathFromIDListA" (ByVal pidl cik ilgi, ByVal pszPath kā virkne) kā garā privātā deklarēšanas funkcija SHBrowseForFolder Lib "shell32.dll" _ Alias "SHBrowseForFolderAFF (Msg kā virkne) Kā virkne 'Atgriež lietotāja izvēlētās mapes nosaukumu Dim bInfo Kā BROWSEINFO, ceļš kā virkne, r tik ilgi, cik garš X, tikpat kā vesels skaitlis bInfo.pidlRoot = 0' Atgriežamā direktorija veids bInfo .ulFlags = & H1 'Parādīt dialoglodziņu X = SHBrowseForFolder (bInfo)' Pars the result path = Space $ (512) 'Calling API function r = SHGetPathFromIDList (ByVal X, ByVal path)' Kods papildu atstarpju dzēšanai mapes nosaukuma beigas atgriešanās Ja r Tad pos = InStr (ceļš, Chr (0)) GetFolderName = Pa kreisi (ceļš, pos - 1) Else GetFolderName = "" End If End Function Sub TestGetFolderName () Dim FolderName As String 'Calling function GetFolderName FolderName = GetFolderName ("Izvēlieties mapi") If FolderName = "" Tad MsgBox "Jūs neizvēlējāties mapi." Else MsgBox "Jūs izvēlējāties šo mapi:" & FolderName End If End Sub
Ja jums patika šis emuārs, kopīgojiet to ar saviem draugiem Facebook. Varat arī sekot mums Twitter un Facebook.
Mēs labprāt uzklausītu jūsu viedokli, dariet mums zināmu, kā mēs varam uzlabot savu darbu un padarīt to labāku jums. Rakstiet mums e -pasta vietnē