Witam
Znalazłem kilka postów na różnych forach, ale nie mogę tego zrobić...
Poniższe makro, pochodzące z kilku fragmentów kodu, eksportuje właściwości Description, Number i Reference plików SLDPRT do programu Excel.
Jednak makro nie trafia do podfolderów i nie mogę tam wejść!
Czy ktoś byłby na tyle uprzejmy, aby pomóc mi ukończyć kod?
Z góry dzięki,
Przyciemnij część jako SldWorks.ModelDoc2
Przyciemnij obiekt jako
Dim fs Jako obiekt
Przyciemnij bieżącą ścieżkę jako ciąg
Przyciemnij podfolder jako obiekt
Funkcja SelectFolder(opcjonalny tytuł jako ciąg, opcjonalny topFolder jako ciąg) jako ciąg
Dim objShell As New Shell32.Shell
Dim objFolder As Shell32.Folder
'Jeśli użyjesz 16384 zamiast 1 w następnym wierszu, pliki są również wyświetlane
Ustaw objFolder = objShell.BrowseForFolder(0, Tytuł, 1, FolderGłówny)
jezeli nie objfolder to nic to nic to
SelectFolder = objFolder.Items.Item.Path
Zakończ jeżeli:
Zakończ funkcję
Sub main()
Ustaw swApp = Application.SldWorks
Ustaw fs = CreateObject("Scripting.FileSystemObject")
filename = InputBox("nazwa_pliku: ")
filename = nazwa pliku & ".csv"
Ustaw a = fs. CreateTextFile("C:\Users\***********\Desktop\" & nazwa pliku, Prawda)
Widoczność = swApp.DocumentVisible(False, swDocPART)
a.writeline ("Numer" & ";" & "Opis" & ";" & "Odniesienie")
'Wybór folderu + odzyskiwanie pliku .sldprt
Currentpath = SelectFolder("Wybierz folder", "")
Jeśli bieżąca ścieżka = "" to
Zakończ jeżeli:
Currentpath = Bieżąca ścieżka & "\"
FileName = Dir(Bieżąca ścieżka & "*.sldprt")
Koniec fazy
Wykonaj while FileName <> ""
Ustaw część = swApp.OpenDoc(Bieżąca ścieżka i nazwa_pliku, swDocPART)
Opis = Part.GetCustomInfoValue("", "Opis")
Numer = Part.GetCustomInfoValue("", "Liczba")
Odniesienie = Part.GetCustomInfoValue("", "odniesienie")
a.writeline (Numer&";" & Opis &";" & Odniesienie)
swApp.CloseDoc Nazwa pliku
nazwa_pliku = katalog
Pętla
Widoczność = swApp.DocumentVisible(True, swDocPART)
Koniec subwoofera