Odzyskiwanie właściwości

Witam wszystkich, szukam możliwości odzyskania właściwości " tytułu " i " słów kluczowych " moich plików Solidworks
Powiedziałem sobie, że to będzie proste z Power Query i presto.
i presto, to nie działa


pomysł polegał na pobraniu tych dwóch właściwości moich plików stałych z katalogu w tabeli Excela
działa to częściowo, mogę odzyskać wiele właściwości, ale nie ten, gdy Windows mi je pokazuje
przez VBA, też szukałem, ale nic przekonującego (poza tym nie jestem ekspertem od VBA)
Nie mam też narzędzi do wizualizacji
Czy jest to wykonalne? i w jaki sposób

Dziękuję

Witam

O ile się nie mylę, nie jest dostępny za pośrednictwem interfejsów API systemu Windows. Należy spojrzeć na stronę menedżera dokumentów w interfejsach API Solidworks

3 polubienia

Dobra, będę tak wyglądał
szkoda, bo Windows wyświetla je dobrze

Witam
@SOFAME, czy chcesz mieć te właściwości w Excelu z Solidworks lub Windows (Excel)?

Powiedzmy, że chciałem to zrobić z systemu Windows, ale oczywiście nie było to wykonalne
więc tak na pewno od SolidWorks.

W załączeniu znajduje się przykład, który może zainspirować
Warunek wstępny
1, Otwórz oprogramowanie ze wszystkimi dokumentami, z których chcesz wyodrębnić informacje (alternatywa dla przeglądania folderu, a następnie otwarcia wszystkich dokumentów według VBA)
2, Otwórz plik Excel
3, strumień makro
4, Wypełnij odniesienie " SOLIDWORKS 20** typ/polecenie/biblioteka stałych " w Narzędzia >odniesienie.
5, Zapytaj o odpowiednią wersję SW.

Option Explicit
Dim swapp As SldWorks.SldWorks
Dim swmodel As ModelDoc2

Sub test()
    Set swapp = GetObject("", "sldworks.application.26")    '2022   >   30
                                                            '2021   >   29
                                                            '2020   >   28
                                                            '...
    Dim row As Long
    row = 1
    Cells(row, 1).Value = "Title"
    Cells(row, 2).Value = "Author"
    Cells(row, 3).Value = "Key words"
        
    Set swmodel = swapp.GetFirstDocument
    While Not swmodel Is Nothing
        If swmodel.Visible Then
            row = row + 1
            Cells(row, 1).Value = swmodel.GetTitle()
            Cells(row, 2).Value = swmodel.SummaryInfo(swSumInfoAuthor)
            Cells(row, 3).Value = swmodel.SummaryInfo(swSumInfoKeywords)
        End If
        Set swmodel = swmodel.GetNext
    Wend
    
End Sub

Wynik
Capture_SUMMARYINFO

(Jeśli chcesz uwzględnić wszystkie komponenty (podzespół) złożeń, komponentów odniesienia, po prostu usuń warunek widoczności, bardzo wygodnie jest otworzyć złożenie, a wszystko zostanie uwzględnione w Excelu :wink:)

Oczywiście idealnym rozwiązaniem byłoby użycie docmanagera, jeśli masz klucz, będzie to bardziej optymalne, ponieważ bardziej konieczne będzie otwieranie wszystkiego za pomocą oprogramowania,

W przeciwnym razie, aby uzyskać pełną wersję programu Excel, znalazłem to

Sub test2()
    Dim sfile As Variant
    Dim oshell As Object
    Dim odir As Object
    Set oshell = CreateObject("shell.application")
    Set odir = oshell.Namespace("C:\Users\dell\Desktop\test")
    
    Dim row As Long
    row = 1
    Cells(row, 1).Value = "Title"
    Cells(row, 2).Value = "Author"
    Cells(row, 3).Value = "Key words"

    For Each sfile In odir.Items
        'For i = 0 To 40
            'Debug.Print i & "   :    " & odir.getdetailsof(sfile, i)
        'Next
        row = row + 1
        Cells(row, 1).Value = odir.getdetailsof(sfile, 0)
        Cells(row, 2).Value = odir.getdetailsof(sfile, 20)
        Cells(row, 3).Value = odir.getdetailsof(sfile, 18)
    Next
End Sub

Prosty i wydajny (pozostaje tylko zarządzanie typami plików, lub w przypadku, gdy folder zawiera inne pliki niż solidworks) :wink:

Dziękuję za te odpowiedzi, przyjrzę się tej sprawie i będę na bieżąco informował

Być może źle zinterpretowałem "tytuł", najwyraźniej nie jest to gettitle(), ale raczej summaryinfo(swsuminfotitle), dla 2. przykładu wskazówka dotycząca mojej konfiguracji Windows 10 i 21