3438x
001293
2016-08-02

Interfaccia COM in VBA | 1. Apertura di RFEM, creazione e salvataggio del modello, chiusura di RFEM

La prima parte del post sull'interfaccia COM descrive l'apertura e la chiusura di RFEM. Il linguaggio di programmazione VBA è utilizzato in Excel; tuttavia, la sequenza del programma è la stessa della programmazione con C#. Dapprima, è necessario aggiungere il riferimento corrispondente in VBA per riconoscere i comandi per l'interfaccia. In der Abbildung ist links das Beispiel anhand von RFEM 5 zu sehen.

Quindi, il codice sorgente per un semplice programma. È possibile creare prima l'interfaccia per il modello e quindi aprire il programma usando il modello. Dopo il salvataggio, il programma viene chiuso.

È sempre utile utilizzare il gestore degli errori per rilevare e visualizzare i possibili problemi di input/output. Se si verifica un problema, la licenza viene sbloccata di nuovo in modo da poter accedere a RFEM/RSTAB. Ulteriori spiegazioni possono essere trovate nel codice sorgente.

Sottotitoli CreateModel ()

'In primo luogo, un'interfaccia
'viene creato un nuovo modello.
Dim iModel As RFEM5.model
Set iModel = Nuovo RFEM5.model

'Qui, il nome del modello è definito,
'o il contenuto della cella B2 del foglio Tabella1
'oppure, se vuoto, "test.rf5".
Dim modelName Come stringa

If IsEmpty (Fogli di lavoro ("Tabella1") .Range ("B2") .Valore) Quindi
modelName = "test01.rf5"
Altrimenti
modelName = CStr(Fogli di lavoro ("Tabelle1") .Range ("B2") .Valore)
End If

'Trasferimento del nome del modello nell'interfaccia.
iModel.SetName (modelName)

'Qui è possibile specificare una descrizione del modello.
iModel.SetDescription ("descrizione")

'Errore nella gestione della routine.
On Error GoTo e

Dim iApp As RFEM5.Application
'Si apre l'interfaccia con il programma.
'(Il programma è avviato.)
Set iApp = iModel.GetApplication

'La licenza COM e l'accesso al programma sono bloccati.
iApp.LockLicense

'Il programma viene visualizzato in primo piano.
iApp.Show

'Il modello viene salvato in "C: \ temp" .
iModel.Save ("C: \ temp \" & nome modello)

e: If Err.Number <> 0 Quindi MsgBox Err.Description,, Err.Source

'La licenza COM è sbloccata, è possibile accedere nuovamente al programma.
iModel.GetApplication.UnlockLicense
'Il programma è chiuso.
iApp.Close

End Sub


Autore

Il signor Günthel fornisce supporto tecnico per i clienti di Dlubal Software e si prende cura delle loro richieste.

Link