3431x
001293
2016-08-02

COM Interface in VBA | 1. Opening RFEM, Creating and Saving Model, Closing RFEM

The first part of the post about the COM interface describes opening and closing RFEM. VBA programming language is used in Excel; however, the program sequence is the same as for programming with C#. First, it is necessary to add the corresponding reference in VBA to recognize the commands for the interface. The image on the left shows an example of RFEM 5.

Then, the source code for a simple program. You can create the interface for the model first, then open the program using the model. After saving, the program is closed.

It is always best to use the error handler in order to detect and display possible input/output problems. If there is a problem, the license is unlocked again so you can access RFEM/RSTAB. Further explanations can be found in the source code.

Sub CreateModel()

' First, an interface
' to a new model is created.
Dim iModel As RFEM5.model
Set iModel = New RFEM5.model

' Here, the model name is defined,
' either the content of cell B2 of sheet Table1
' or, if empty, "test.rf5".
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

' Transfer of the model name to the interface.
iModel.SetName(modelName)

' It is possible to specify a model description here.
iModel.SetDescription("description")

' Error handling routine.
On Error GoTo e

Dim iApp As RFEM5.Application
' Interface to the program is open.
' (Program has started.)
Set iApp = iModel.GetApplication

' COM license and program access are blocked.
iApp.LockLicense

' Program is displayed in the foreground.
iApp.Show

' Model is saved at "C:\temp" .
iModel.Save("C:\temp\" & modelName)

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

' COM license is unblocked, program access possible again.
iModel.GetApplication.UnlockLicense
' Program is closed.
iApp.Close

End Sub


Author

Mr. Günthel provides technical support for our customers.

Links