Kako izbrati mapo (direktorij) ?

Pomoč pri izdelavi makrov
Odgovori
Buba
Prispevkov: 85
Pridružen: Sr Mar 12, 2008 11:49 am
Kraj: Maribor

Kako izbrati mapo (direktorij) ?

Odgovor Napisal/-a Buba »

Izdelal sem makro, ki kot vhodni podatek potrebuje ime mape v računalniku. Ali obstaja kak kontrolnik, ki zna prebrati imena map, diskov? (Nekaj takega kot DirListBox, DriveListBox v VB6.)
Kako jih naložiš v računalnik, da jih Excel prepozna?

Lep dan!
Buba
admin
Site Admin
Prispevkov: 3687
Pridružen: Sr Jul 20, 2005 10:06 pm

Odgovor Napisal/-a admin »

Zaradi dopusta malce zapoznel odgovor, pa vendar:

Koda: Izberi vse

Option Explicit

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


Declare Function SHGetPathFromIDList Lib "shell32.dll" _
        Alias "SHGetPathFromIDListA" (ByVal pidl As Long, ByVal pszPath As String) As Long

Declare Function SHBrowseForFolder Lib "shell32.dll" _
        Alias "SHBrowseForFolderA" (lpBrowseInfo As BROWSEINFO) As Long

'
' www.matjazev.net
' februar 2009

Function IzberiMapo()
  Dim dirInfo As BROWSEINFO
  Dim path As String
  Dim izbran As Long, info As Long, pos As Integer

  IzberiMapo = ""
  
  dirInfo.pidlRoot = 0&
  dirInfo.lpszTitle = "Izberite mapo..."
  dirInfo.ulFlags = &H1
  info = SHBrowseForFolder(dirInfo)

  path = Space$(512)
  izbran = SHGetPathFromIDList(ByVal info, ByVal path)
  If izbran Then
    pos = InStr(path, Chr$(0))
    IzberiMapo = Left(path, pos - 1)
  End If
End Function

lp,
Matjaž Prtenjak
Administrator
Buba
Prispevkov: 85
Pridružen: Sr Mar 12, 2008 11:49 am
Kraj: Maribor

Odgovor Napisal/-a Buba »

Hvala za odgovor!
Bom poizkusil kako stvar dela, pa se javim.
Zgleda precej zapleteno.
Buba
Odgovori