Browsefolder Kullanımı

21/05/2020, 09:27

accessman

iki farklı fonksiyon var sizce hangisi daha kullanışlıdır
Function BrowseFolder(Title As String, _
                        Optional InitialFolder As String = vbNullString, _
                        Optional InitialView As Office.MsoFileDialogView = msoFileDialogViewList) As String

    Dim V As Variant
    Dim InitFolder As String
   
    With Application.FileDialog(msoFileDialogFolderPicker)
        .Title = Title
        .InitialView = InitialView
        If Len(InitialFolder) > 0 Then
            If Dir(InitialFolder, vbDirectory) <> vbNullString Then
                InitFolder = InitialFolder
                If Right(InitFolder, 1) <> "\" Then
                    InitFolder = InitFolder & "\"
                End If
                .InitialFileName = InitFolder
            End If
        End If
        .Show
        On Error Resume Next
        Err.Clear
        V = .SelectedItems(1)
        If Err.Number <> 0 Then
            V = vbNullString
        End If
    End With
    BrowseFolder = CStr(V)
End Function
diğeri de şu

Function BrowseForFolder(Optional OpenAt As Variant) As Variant

    Dim ShellApp As Object

    'Create a file browser window at the default folder
    Set ShellApp = CreateObject("Shell.Application"). _
    BrowseForFolder(0, "Please choose a folder", 0, OpenAt)

    'Set the folder to that selected.  (On error in case cancelled)
    On Error Resume Next
    BrowseForFolder = ShellApp.self.Path
    On Error GoTo 0

    'Destroy the Shell Application
    Set ShellApp = Nothing

    'Check for invalid or non-entries and send to the Invalid error
    'handler if found
    'Valid selections can begin L: (where L is a letter) or
    '\\ (as in \\servername\sharename.  All others are invalid
    Select Case Mid(BrowseForFolder, 2, 1)
    Case Is = ":"
        If Left(BrowseForFolder, 1) = ":" Then GoTo Invalid
    Case Is = "\"
        If Not Left(BrowseForFolder, 1) = "\" Then GoTo Invalid
    Case Else
        GoTo Invalid
    End Select

    Exit Function

Invalid:
    'If it was determined that the selection was invalid, set to False
    BrowseForFolder = False
End Function
21/05/2020, 12:24

feraz

Genelde ilk olan tercih ediliyor.
Ben ilk koddaki gibi kullanıyorum.Ayrıca ikinci gibi shell ilede kendi dosyamda kullanmıştım yerine göre.Yani duruma göre değişiyor.

Ve kodları neden uzun yapmış hazırlayan onuda anlamadım.Kodlar dosya penceresi açıyor değil mi?
21/05/2020, 13:31

accessman

teşekkürler