3435x
001293
2.8.2016

Rozhraní COM ve VBA 1 | Otevření programu RFEM, vytvoření a uložení modelu, zavření programu RFEM

V prvním příspěvku k rozhraní COM se budeme zabývat otevřením a zavřením programu RFEM. V Excelu se používá programovací jazyk VBA; Průběh programu je však stejný jako při programování v C#. Aby VBA rozpoznal příkazy k tomuto rozhraní, je nejdříve potřeba přidat příslušný odkaz. In der Abbildung ist links das Beispiel anhand von RFEM 5 zu sehen.

Následuje zdrojový kód pro jednoduchý program. Nejdříve vytvoříme rozhraní k modelu a poté z modelu program otevřeme. Po uložení se program opět zavře.

Vždy lze použít chybovou rutinu pro zachytávání a zobrazování případných vstupních nebo výstupních chyb. Navíc se také v případě problému znovu licence odblokuje a RFEM/RSTAB je opět přístupný. Další vysvětlení najdeme ve zdrojovém kódu.

Sub CreateModel()

' Nejdříve se vytvoří
' rozhraní k novému modelu.
Dim iModel As RFEM5.model
Set iModel = New RFEM5.model

' Nyní se stanoví název modelu,
' buď obsah buňky B2 z listu Tabulky1
' nebo, pokud je prázdná, "test.rf5".
Dim modelName As String

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

' Předání názvu modelu na rozhraní.
iModel.SetName(modelName)

' Zde lze uvést popis modelu.
iModel.SetDescription("popis")

' Chybová rutina.
On Error GoTo e

Dim iApp As RFEM5.Application
' Rozhraní k programu se otevře.
' (Program se spustí.)
Set iApp = iModel.GetApplication

' Licence COM a přístup k programu se zablokuje.
iApp.LockLicense

' Program se zobrazí v popředí.
iApp.Show

' Model se uloží pod "C:\temp" .
iModel.Save("C:\temp\" & modelName)

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

' COM licence se odblokuje, přístup k programu je opět možný.
iModel.GetApplication.UnlockLicense
' Program se zavře.
iApp.Close

End Sub


Autor

Ing. Günthel zajišťuje technickou podporu zákazníkům.

Odkazy