WedX - журнал о программировании и компьютерных науках

Заполнение формы списка файлами и миниатюрами

Я пытаюсь создать надстройку для 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, включая ссылки. Из этого мне нужно создать код для добавления миниатюр.

16.04.2019

  • Каков точный текст сообщения об ошибке и в какой строке оно появляется? 16.04.2019
  • ListView1.ListItems.Add (MyFiles) --> Несоответствие типов 16.04.2019

Ответы:


1

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

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

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
16.04.2019
  • Я понимаю, что мне нужно использовать ListView вместо ListBox, чтобы позже добавить миниатюру. Можете ли вы адаптировать код для использования формы ListView вместо формы ListBox? Здесь я застреваю. 17.04.2019

  • 2

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

    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
    
    17.04.2019
  • @Steve Rindsberg: Любая идея, как я могу отображать миниатюры в этом списке? 17.04.2019
  • Не то, что мне приходилось делать, но я, вероятно, начал бы с этого: mrexcel.com/forum/excel-questions/ 17.04.2019
  • Новые материалы

    Я хотел выучить язык программирования MVC4, но не мог выучить его раньше, потому что это выглядит сложно…
    Просто начните и учитесь самостоятельно Я хотел выучить язык программирования MVC4, но не мог выучить его раньше, потому что он кажется мне сложным, и я бросил его. Это в основном инструмент..

    Лицензии с открытым исходным кодом: руководство для разработчиков и создателей
    В динамичном мире разработки программного обеспечения открытый исходный код стал мощной парадигмой, способствующей сотрудничеству, инновациям и прогрессу, движимому сообществом. В основе..

    Объяснение документов 02: BERT
    BERT представил двухступенчатую структуру обучения: предварительное обучение и тонкая настройка. Во время предварительного обучения модель обучается на неразмеченных данных с помощью..

    Как проанализировать работу вашего классификатора?
    Не всегда просто знать, какие показатели использовать С развитием глубокого обучения все больше и больше людей учатся обучать свой первый классификатор. Но как только вы закончите..

    Работа с цепями Маркова, часть 4 (Машинное обучение)
    Нелинейные цепи Маркова с агрегатором и их приложения (arXiv) Автор : Бар Лайт Аннотация: Изучаются свойства подкласса случайных процессов, называемых дискретными нелинейными цепями Маркова..

    Crazy Laravel Livewire упростил мне создание электронной коммерции (панель администратора и API) [Часть 3]
    Как вы сегодня, ребята? В этой части мы создадим CRUD для данных о продукте. Думаю, в этой части я не буду слишком много делиться теорией, но чаще буду делиться своим кодом. Потому что..

    Использование машинного обучения и Python для классификации 1000 сезонов новичков MLB Hitter
    Чему может научиться машина, глядя на сезоны новичков 1000 игроков MLB? Это то, что исследует это приложение. В этом процессе мы будем использовать неконтролируемое обучение, чтобы..


    Для любых предложений по сайту: [email protected]