Заполнение формы списка с файлами и миниатюрами - PullRequest
0 голосов
/ 16 апреля 2019

Я пытаюсь создать надстройку для powerpoint, которая позволяет пользователю выбрать каталог в раскрывающемся списке, а затем получает список слайдов powerpoint с миниатюрами, отображаемыми в форме списка.Затем пользователь должен иметь возможность выбрать эскиз и добавить слайды в текущую презентацию, над которой он / она работает.(что-то вроде личного доступа к библиотеке слайдов непосредственно из Power Point).

У меня есть общий код для заполнения списка.Но получите TypeError, которую я не знаю, как исправить.

Private Sub CommandButton1_Click()

    Dim fs, f, f1, fc, s As String
    Dim folderspec As String

    folderspec = "U:\PowerPointFiles\"

    Set fs = CreateObject("Scripting.FileSystemObject")
    Set f = fs.GetFolder(folderspec)
    Set fc = f.SubFolders

    ComboBox1.Clear

    For Each f1 In fc
        ComboBox1.AddItem f1.Name

    Next f1

    'ComboBox1.Activate    --> doesnt' work

    'Application.SendKeys "^{F4}" --> doesnt' work

End Sub


Private Sub ComboBox1_Change()

    Dim fs, f, f1, MyFiles, s As String
    Dim MyFolder As String

    MyFolder = "U:\Methoden\power point trials\Addin Projekte\Slide Library Addin\" & ComboBox1

    MyFiles = Dir(MyFolder & "\*.pptx")

    ListView1.ListItems.Clear

    Do While MyFiles <> ""

        ListView1.ListItems.Add (MyFiles)  --> Type mismatch
        MyFiles = Dir

    Loop


End Sub

Результатом должен быть список файлов .ppt в ListView, включая ссылки.Из этого мне нужно создать код для добавления миниатюр.

Ответы [ 2 ]

0 голосов
/ 17 апреля 2019

Я нашел решение:

Private Sub ComboBox1_Change()

Dim strLoad As String
Dim lvwItem As ListItem
Dim MyFolder As String

ListView1.ListItems.Clear

MyFolder = "U:\Methoden\power point trials\Addin Projekte\Slide Library Addin\" & ComboBox1
strLoad = Dir(MyFolder & "\*.*")

Do While strLoad > vbNullString

   Set lvwItem = ListView1.ListItems.Add(, , strLoad)

   strLoad = Dir
Loop

End Sub
0 голосов
/ 16 апреля 2019

Извините ... пропустил тот факт, что вы уже отметили проблемную строку кода.

Я прокомментировал несколько строк вашего исходного кода и добавил небольшие изменения:

Private Sub CommandButton1_Click()

' You don't use all these variables, so no need to dim them here
'    Dim fs, f, f1, MyFiles, s As String
Dim MyFiles As String
    Dim MyFolder As String

    'MyFolder = "U:\Methoden\power point trials\Addin Projekte\Slide Library Addin\" & ComboBox1
' Substituted a folder that exists on my system and changed the filespec
' form *.PPTX to *.* to ensure some results at my end while testing.
MyFolder = "C:\Temp"

    MyFiles = Dir(MyFolder & "\*.*")

'    ListView1.ListItems.Clear
ListBox1.Clear
    Do While MyFiles <> ""

        'ListView1.ListItems.Add (MyFiles) '--> Type mismatch
ListBox1.AddItem (MyFiles)
        MyFiles = Dir

    Loop

End Sub
...