Otwieranie pliku z Excela

Próbuję otworzyć plik oprogramowania z makra programu Excel.

Używam następującego kodu:

Dim swApp       As SldWorks.SldWorks
Dim swModel     As SldWorks.ModelDoc2
Dim retval      As String
Dim xlApp       As Excel.Application
Dim xlWB        As Excel.Workbook
Dim exSheet     As Excel.Worksheet
Dim i           As Integer
Dim bool        As Boolean
Dim boolstatus  As Boolean
Dim myBool As Boolean
Dim myError As Long, myWarning As Long

Sub Bouton1_Cliquer()
 
myBool = Shell("C:\Program Files\SOLIDWORKS Corp\SOLIDWORKS\SLDWORKS.exe ", vbNormalFocus)
 
Set swApp = CreateObject("SldWorks.Application")
Set swModel = swApp.OpenDoc("C:\Users\nouveau\Documents\mapiece.SLDPRT", swDocPART)
Set swApp = Nothing: Set swModel = Nothing
 
End Sub

Otwieranie oprogramowania jest w porządku, ale plik mypiece.sldprt nie otwiera się. Brak komunikatu o błędzie.

Używam oprogramowania SW 2015.

Czy możesz mi powiedzieć, co jest nie tak?

Witam;

Twoja prośba i załączony kod wprawiają mnie w zakłopotanie.
Co dokładnie chcesz zrobić?
Otworzyć określony dokument z makrem z Solidworks (Solidworks API)?
lub
Użyj programu Excel, aby otworzyć dokument z listy (za pomocą przycisku Makro? ?
....
W obu przypadkach: preferuj polecenie Opendoc6("Lokalizacja i nazwa pliku do otwarcia",swdocpart,swOpenDocOptions_Silent,"")
Przykład tutaj: https://help.solidworks.com/2015//Open_Document_Example_VB.htm?verRedirect=1
A informacje o zamówieniu tutaj:https://help.solidworks.com/2015/opendoc6.html

Pozdrowienia

1 polubienie

Próbuję otworzyć dokument Solidworks za pomocą przycisku w pliku programu Excel

Próbowałem również funkcji "opendoc6", ale bez powodzenia.

Set swModel = swApp.OpenDoc6("C:\Users\nouveau\Documents\mapiece.SLDPRT", 2, 1, "", myError, myWarning)

Czy może to wynikać z opcji, które mam problem  ze zdefiniowaniem? Tutaj tryb tylko do odczytu. Idealnie byłoby otworzyć w trybie tylko do odczytu i cichym.

Ze swojej strony mam ten kod do dostosowania (pokój 5, pokój 6 i pokój  MEP mają zostać zastąpione przez twoją potrzebę). Przetestowane i zatwierdzone

Sub EssaiSW()

 Dim swApp As SldWorks.SldWorks
    Dim swModelUn As SldWorks.ModelDoc2
    Dim swModelDeux As SldWorks.ModelDoc2

    If swApp Is Nothing Then
        Set swApp = CreateObject("SLDWORKS.application")
        swApp.Visible = True
    Else
        Set swApp = Application.SldWorks
        MsgBox "Ouverture de Solidworks par Excel=Ok"
    End If

    Set swDocSpecification = swApp.GetOpenDocSpec("C:\Users\sebastien.denis\Desktop\Pièce5.sldprt")
    Set swModelUn = swApp.OpenDoc7(swDocSpecification)
    MsgBox swModelUn.GetTitle
    
    Set swDocSpecification = swApp.GetOpenDocSpec("C:\Users\sebastien.denis\Desktop\Pièce5.slddrw")
    Set swModelUn = swApp.OpenDoc7(swDocSpecification)
    MsgBox swModelUn.GetTitle
    
    swApp.CloseDoc swModelUn.GetTitle
    
    Set swModelUn = swApp.ActiveDoc
    MsgBox swModelUn.GetTitle
    
    'Set swDocSpecification = swApp.GetOpenDocSpec("C:\Users\sebastien.denis\Desktop\Pièce6.sldprt")
    'Set swModelDeux = swApp.OpenDoc7(swDocSpecification)
    
    'swApp.CloseDoc swModelUn.GetTitle

    'MsgBox swModelDeux.GetTitle
    
    'swApp.CloseDoc swModelDeux.GetTitle
    
    
End Sub

.

1 polubienie

Świetnie, to działa.

Kontynuuję mój kod ;)