3433x
001293
02.08.2016

Interface COM en VBA | 1. Ouverture de RFEM, création et enregistrement du modèle, fermeture de RFEM

La première partie de la publication sur l'interface COM décrit l'ouverture et la fermeture de RFEM. Le langage de programmation VBA est utilisé dans Excel. Cependant, la séquence du programme est la même que pour la programmation avec C#. Tout d'abord, il est nécessaire d'ajouter la référence correspondante dans VBA pour reconnaître les commandes pour l'interface. La figure à gauche montre un exemple dans RFEM 5.

Puis, ajoutez le code source pour un programme simple. Vous pouvez d'abord créer l'interface pour le modèle, puis ouvrir le programme à l'aide du modèle. Le programme est fermé après la sauvegarde.

Il est toujours bon d'utiliser le gestionnaire d'erreur afin de détecter et d'afficher les éventuels problèmes d'entrée/de sortie. En cas de problème, la licence est de nouveau déverrouillée afin que vous puissiez accéder à RFEM/RSTAB. Vous trouverez d'autres explications dans le code source.

Sub CreateModel()

' Tout d'abord, une interface
' est créée au nouveau modèle.
Dim iModel As RFEM5.model
Set iModel = New RFEM5.model

' Le nom du modèle est défini ici, avec
' soit le contenu de la cellule B2 de la feuille du Tableau 1
' soit "test.rf5" si celui-ci est vide.
Dim modelName As String

If IsEmpty(Worksheets( "Table1").Range( "B2").Value) Then
modelName = "test01.rf5"
Else
modelName = CStr(Worksheets( "Table1").Range( "B2").Value)
End If

' Transfert du nom du modèle à l'interface.
iModel.SetName(modelName)

' Il est possible d'ajouter une description du modèle ici.
iModel.SetDescription( "description")

' Routine de la gestion d'erreur.
On Error GoTo e

Dim iApp As RFEM5.Application
' L'interface est ouverte dans le programme.
' (Le programme a démarré.)
Set iApp = iModel.GetApplication

' L'accès à la licence COM et au programme est bloqué.
iApp.LockLicense

' Le programme est affiché en arrière-plan.
iApp.Show

' Le modèle est sauvegardé dans"C:\temp" .
iModel.Save("C:\temp\" & modelName)

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

' La licence COM est débloquée, le programme est de nouveau accessible.
iModel.GetApplication.UnlockLicense
' Le programme est fermé.
iApp.Close

End Sub


Auteur

M. Günthel fournit une assistance technique aux clients de Dlubal Software.

Liens