Диалоговое окно openfiledialog на VBA (в PowerPoint) начальный каталог


Пожалуйста, помогите мне сделать мой OpenFileDialog показ каталога проекта PowerPoint.

Я пытался .InitialDirectory = "C:\", но это не работает. Могу ли я адаптировать это к vba ? Спасибо.

1 2

1 ответ:

Это почти скопировано из справки Powerpoint VBA. Он использует FileDialog вместо OpenFileDialog (который я с трудом нашел в отношении PowerPoint). Он устанавливает InitialFileName в C:\ так, что он будет запрашивать в этом месте. Просто поместите это в модуль, он должен быть легко модифицирован в соответствии с вашими конкретными потребностями:

Sub fileDialogExample()
    'Declare a variable as a FileDialog object.
    Dim fd As FileDialog
    'Declare a variable for the directory path.
    Dim directory As String
    'Set the directory path
    directory = "C:\"
    'Create a FileDialog object as a File Picker dialog box.
    Set fd = Application.FileDialog(msoFileDialogFilePicker)

    'Declare a variable to contain the path
    'of each selected item. Even though the path is aString,
    'the variable must be a Variant because For Each...Next
    'routines only work with Variants and Objects.
    Dim vrtSelectedItem As Variant

    'Use a With...End With block to reference the FileDialog object.
    With fd
        'Change the initial directory\filename
        .InitialFileName = directory
        'Use the Show method to display the File Picker dialog box and return the user's action.
        'The user pressed the button.
        If .Show = -1 Then

            'Step through each string in the FileDialogSelectedItems collection.
            For Each vrtSelectedItem In .SelectedItems

                'vrtSelectedItem is aString that contains the path of each selected item.
                'You can use any file I/O functions that you want to work with this path.
                'This example displays the path in a message box.
                MsgBox "The path is: " & vrtSelectedItem

            Next vrtSelectedItem
        'The user pressed Cancel.
        Else
        End If
    End With

    'Set the object variable to Nothing.
    Set fd = Nothing



End Sub