Скачиваний:
44
Добавлен:
25.04.2015
Размер:
297.69 Кб
Скачать

SOLVAY FLUOR GmbH

Excel/VBA

Das ImportVB6-Modul ist nicht nur ein einfaches Demonstrationsobjekt. Es gewährleistet Zugang zu sämtlichen Stoffdatenfunktionen des SOLKANE®-Pakets, wobei die Stoffdatenfunktionen in MS EXCEL ebenso einfach wie eine beliebige mathematische Funktion eingesetzt werden. ImportVB6 ist bereits ein sehr leistungsfähiges Werkzeug zur einfachen und schnellen Lösung selbst komplexer Probleme.

Hinweise:

1.Sie können den EXCEL-Funktionsassistenten (Menü ”Einfügen/Funktion...”, Kategorie ”Benutzerdefiniert”) verwenden, um die öffentlichen Funktionen des ImportVB6-Moduls sehr einfach in Arbeitsblätter einzufügen.

2.Falls Sie EXCEL-Arbeitsmappen mit ImportVB6 oder einem von Ihnen bearbeiteten VBModul weitergeben, sollten Sie das VB-Modul gegen evtl. unerwünschte Eingriffe schützen.

3.Der Einsatz eines Add-Ins (siehe nachfolgenden Abschnitt) ist eine bequemere und sicherere Alternative zu dem offenen VB-Modul.

Installation:

1.Sol_Ex.xls (Ordner Sol_Excel) auf die Festplatte Ihres Rechners kopieren (Zielordner ist beliebig).

2.Falls noch nicht erledigt: REF_CALC32.DLL und VAR_LIB32.DLL in das Verzeichnis ”...Windows/System” (empfohlen) kopieren.

3.MS Excel starten und Sol_Ex.xls öffnen. Fertig.

Add-In ”SOLKANE.XLA”

Das Add-In SOLKANE.xla ist eine kompilierte Fassung des VB-Moduls ”ImportVBA”. Im Gegensatz zu dem offenen VB-Modul kann sein Inhalt nicht angezeigt oder bearbeitet werden. Die implementierten Routinen sind daher vor fremdem Zugriff sicher.

Ein installiertes und aktiviertes Add-In wird beim Start von MS EXCEL automatisch geladen. Die implementierten öffentlichen Funktionen stehen dann in allen Arbeitsmappen zur Verfügung. Ebenso wie beim VB-Modul können die öffentlichen Funktionen auch mit Unterstützung des EXCEL-Funktionsassistenten in Arbeitsblätter eingefügt werden.

Die via SOLKANE.xla bereitgestellten Funktionen sind im Anhang zusammengefasst. Hinsichtlich der DLL-Standorte gelten die im Abschnitt “Installation” dargelegten Regeln. Das Add-In sollte im EXCEL-MAKRO-Ordner1 abgelegt sein.

Installation:

1 Die konkrete Position des MAKRO-Ordners ist nicht einheitlich. Suchen Sie nach xla-Dateien oder markanten Add-In-Objekten, wie z.B. den EXCEL-Solver, um den MAKRO-Ordner zu finden.

SFLU-AK I/10.07/20/D

-11-

SOLVAY FLUOR GmbH

Excel/VBA

1.SOLKANE.xla (Ordner Sol_Excel) in den EXCEL-MAKRO-Ordner (z.B. C:\...\EXCEL\MAKRO) auf der Festplatte Ihres Rechners kopieren.

2.Falls noch nicht erledigt: REF_CALC32.DLL und VAR_LIB32.DLL in das Verzeichnis ”...Windows/System” (empfohlen) kopieren.

3.MS Excel starten.

4.Add-In-Manager öffnen (Menü ”EXTRAS/Add-In-Manager...”)

5.Eintrag ”Solkane” aktivieren. (Falls der Eintrag nicht sichtbar ist, befindet sich SOLKANE.xla nicht im empfohlenen Ordner.)

6.Add-In-Manager schließen. Fertig.

SFLU-AK I/10.07/20/D

-12-

SOLVAY FLUOR GmbH Excel/VBA

Anhang: Funktionsdeklarationen für EXCEL-Add-In ”SOLKANE.XLA”

Nr.

Funktion

Ph

 

 

Deklaration

Ergebnis

 

Eingabe

 

 

 

 

 

 

 

 

1.

2.

 

3.

0

Versionsbezeichnung

 

Function X_revision

() As String

X_revision

-

-

 

-

 

 

 

 

 

 

 

 

 

 

1

Molare Masse

 

Function X_molmas

(ByVal Refr As String) As Double

X_molmas

Refr

-

 

-

 

 

 

 

 

 

[g/mol]

 

 

 

 

 

 

 

 

 

 

 

 

 

2

Tripelpunkttemperatur

 

Function X_freez (ByVal Refr As String) As Double;

X_freez [K]

Refr

-

 

-

 

 

 

 

 

 

 

 

 

3

Kritische Temperatur

 

Function X_tc (ByVal Refr As String) As Double

X_tc [K]

Refr

-

 

-

 

 

 

 

 

 

 

 

 

4

Kritischer Druck

 

Function X_pc (ByVal Refr As String) As Double

X_pc [Pa]

Refr

-

 

-

 

 

 

 

 

 

 

 

 

5

Kritisches Volumen

 

Function X_vc (ByVal Refr As String) As Double

X_vc

Refr

-

 

-

 

 

 

 

 

 

[m³/kg]

 

 

 

 

 

 

 

 

 

 

 

 

 

 

6

Siedepunktdruck p’(T)

B

Function X_p_b

(ByVal Refr As String, ByVal T As Double) As Double

X_p_b [Pa]

Refr

T [K]

 

-

 

 

 

 

 

 

 

 

 

 

7

Taupunktdruck p” T)

D

Function X_p_d

(ByVal Refr As String, ByVal T As Double) As Double

X_p_d [Pa]

Refr

T [K]

 

-

 

 

 

 

 

 

 

 

 

8

Siedepunkttemperatur t’(p)

B

Function X_t_b (ByVal Refr As String, ByVal p As Double) As Double

X_T_b [K]

Refr

p [Pa]

 

-

 

 

 

 

 

 

 

 

 

 

9

Taupunkttemperatur t’(p)

D

Function X_t_d

(ByVal Refr As String, ByVal p As Double) As Double

X_T_d [K]

Refr

p [Pa]

 

-

 

 

 

 

 

 

 

 

 

 

10

Spez. Volumen, Flüss. v’(T)

F

Function X_v_l

(ByVal Refr As String, ByVal T As Double) As Double

X_v_l

Refr

T [K]

 

-

 

 

 

 

 

 

[m³/kg]

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

-13-

SOLVAY FLUOR GmbH Excel/VBA

(Fortsetzung)

Nr

Funktion

Ph

 

Deklaration

Ergebnis

 

Eingabe

 

 

 

 

 

 

1.

2.

3.

11

Spez. Volumen v(T,p)

G

Function X_v_v

(ByVal Refr As String, ByVal T As Double,

X_v_v [m³/kg]

Refr

T [K]

p [Pa]

 

 

 

ByVal p As Double) As Double

 

 

 

 

 

 

 

 

 

 

 

 

12

Druck p(T,v)

G

Function X_p_v_v (ByVal Refr As String, ByVal T As Double,

X_p_v_v [Pa]

Refr

T [K]

v [m³/kg]

 

 

 

ByVal v As Double) As Double

 

 

 

 

 

 

 

 

 

 

 

 

13

Temperatur T(p,v)

G

Function X_t_v_v (ByVal Refr As String, ByVal p As Double,

X_T_v_v [K]

Refr

p [Pa]

v [m³/kg]

 

 

 

ByVal v As Double) As Double

 

 

 

 

 

 

 

 

 

 

 

 

 

14

Spez. Enthalpie h’(T)

F

Function X_h_l

(ByVal Refr As String, ByVal T As Double) As Double

X_h_l [J/kg]

Refr

T [K]

-

 

 

 

 

 

 

 

 

 

15

Spez. Enthalpie h(T,p)

G

Function X_h_v

(ByVal Refr As String, ByVal T As Double,

X_h_v [J/kg]

Refr

T [K]

p [Pa]

 

 

 

ByVal p As Double) As Double

 

 

 

 

 

 

 

 

 

 

 

 

16

Spez. Enthalpie h(T,v)

G

Function X_h_v_v (ByVal Refr As String, ByVal T As Double,

X_h_v_v [J/kg]

Refr

T [K]

v [m³/kg]

 

 

 

ByVal v As Double) As Double

 

 

 

 

 

 

 

 

 

 

 

 

 

17

Spez. Entropie s’(T)

F

Function X_s_l

(ByVal Refr As String, ByVal T As Double) As Double

X_s_l [J/kgK]

Refr

T [K]

-

 

 

 

 

 

 

 

 

 

18

Spez. Entropie s(T,p)

G

Function X_s_v

(ByVal Refr As String, ByVal T As Double,

X_s_v [J/kgK]

Refr

T [K]

p [Pa]

 

 

 

ByVal p As Double) As Double

 

 

 

 

 

 

 

 

 

 

 

 

19

Spez. Entropie s(T,v)

G

Function X_s_v_v (ByVal Refr As String, ByVal T As Double,

X_s_v_v

Refr

T [K]

v [m³/kg]

 

 

 

ByVal v As Double) As Double

[J/kgK]

 

 

 

 

 

 

 

 

 

 

 

 

-14-

SOLVAY FLUOR GmbH Excel/VBA

(Fortsetzung)

Nr.

Funktion

Ph

 

Deklaration

Ergebnis

 

Eingabe

 

 

 

 

 

 

1.

2.

3.

20

Temperatur T(p,s)

G

Function X_f_entro (ByVal Refr As String, ByVal p As Double,

X_f_entro [K]

Refr

p [Pa]

s [J/kgK]

 

 

 

ByVal s As Double) As Double

 

 

 

 

 

 

 

 

 

 

 

 

21

Temperatur T(p,h)

G

Function X_f_entha (ByVal Refr As String, ByVal p As Double,

X_f_entha [K]

Refr

p [Pa]

h [J/kg]

 

 

 

ByVal h As Double) As Double

 

 

 

 

 

 

 

 

 

 

 

 

22

Spez. Wärmekapazität cP’(T)

F

Function X_cp_l (ByVal Refr As String, ByVal T As Double) As Double

X_cp_l

Refr

T [K]

-

 

 

 

 

 

[J/kgK]

 

 

 

 

 

 

 

 

 

 

 

 

23

Spez. Wärmekapazität cV’(T,p)

G

Function X_cv

(ByVal Refr As String, ByVal T As Double,

X_cv [J/kgK]

Refr

T [K]

p [Pa]

 

 

 

ByVal p As Double) As Double

 

 

 

 

 

 

 

 

 

 

 

 

24

Spez. Wärmekapazität cV’(T,v)

G

Function X_cv_v (ByVal Refr As String, ByVal T As Double,

X_cv_v

Refr

T [K]

v [m³/kg]

 

 

 

ByVal v As Double) As Double

[J/kgK]

 

 

 

 

 

 

 

 

 

 

 

 

25

Spez. Wärmekapazität cP’(T,p)

G

Function X_cp

(ByVal Refr As String, ByVal T As Double,

X_cp [J/kgK]

Refr

T [K]

p [Pa]

 

 

 

ByVal p As Double) As Double

 

 

 

 

 

 

 

 

 

 

 

 

26

Spez. Wärmekapazität cP’(T,v)

G

Function X_cp_v (ByVal Refr As String, ByVal T As Double,

X_cp_v

Refr

T [K]

v [m³/kg]

 

 

 

ByVal v As Double) As Double

[J/kgK]

 

 

 

 

 

 

 

 

 

 

 

27

Oberflächenspannung (T)

F

Function X_sigma_l (ByVal Refr As String, ByVal T As Double)

X_sigma_l

Refr

T [K]

-

 

 

 

As Double

 

[N/m]

 

 

 

 

 

 

 

 

 

 

 

 

-15-

SOLVAY FLUOR GmbH Excel/VBA

(Fortsetzung)

Nr.

 

Funktion

Ph

 

Deklaration

Ergebnis

 

Eingabe

 

 

 

 

 

 

 

1.

2.

3.

28

Wärmeleitfähigkeit (T)

F

Function X_lambda_l

(ByVal Refr As String, ByVal T As Double)

X_lambda_l

Refr

T [K]

-

 

 

 

 

As Double

 

[W/(m K)]

 

 

 

 

 

 

 

 

 

 

 

 

29

Wärmeleitfähigkeit (T,p)

G

Function X_lambda_v

(ByVal Refr As String, ByVal T As Double,

X_lambda_v

Refr

T [K]

p [Pa]

 

 

 

 

ByVal v As Double) As Double

[W/m K]

 

 

 

 

 

 

 

 

 

 

 

30

Adiabatenexponent (T,p)

G

Function X_kappa (ByVal Refr As String, ByVal T As Double,

X_kappa

Refr

T [K]

p [Pa]

 

 

 

 

ByVal p As Double) As Double

[-]

 

 

 

 

 

 

 

 

 

 

 

 

31

Adiabatenexponent (T,v)

G

Function X_kappa_v

(ByVal Refr As String, ByVal T As Double,

X_kappa_v

Refr

T [K]

v [m³/kg]

 

 

 

 

ByVal v As Double) As Double

[-]

 

 

 

 

 

 

 

 

 

 

 

32

Schallgeschwindigkeit vs(T,p)

G

Function X_vs (ByVal Refr As String, ByVal T As Double,

X_vs

Refr

T [K]

p [Pa]

 

 

 

 

ByVal p As Double) As Double

[m/s]

 

 

 

 

 

 

 

 

 

 

 

33

Dynamische Viskosität (T)

F

Function X_visc_l (ByVal Refr As String, ByVal T As Double)

X_visc_l

Refr

T [K]

-

 

 

 

 

As Double

 

[Pa s]

 

 

 

 

 

 

 

 

 

 

 

34

Dynamische Viskosität (T,p)

G

Function X_visc_v (ByVal Refr As String, ByVal T As Double,

X_visc_v

Refr

T [K]

p [Pa]

 

 

 

 

ByVal p As Double) As Double

[Pa s]

 

 

 

 

 

 

 

 

 

 

 

 

 

Legende:

Ph: Phase

 

 

 

 

 

 

 

 

 

B: Siedepunkt

 

D: Taupunkt

 

 

 

 

 

 

 

F: Flüssigkeit

 

G: Gasphase

 

 

 

 

 

-16-

SOLVAY FLUOR GmbH Excel/VBA

Anhang: Modul ImportVBA - Importvereinbarungen für VBA/ MS EXCEL-Add-In

' ----------------------------------------------------------------------

EXCEL-Version: EXCEL 7

' Modul ImportVBA in Sol_Ex.xls

' Version 1.0

März 1999

' Solvay Fluor und Derivate GmbH

'Beispiel zur Nutzung von Funktionen aus REF_CALC32.DLL

'in MS EXCEL als Makro-Modul oder in Form eines Add-Ins.

'Die Implementation besteht aus zwei Schritten:

'1. Import von Funktionen aus REF_CALC32.DLL

'2. Erstellen in EXCEL auswertbarer Funktionen unter Verwendung der

'importierten Funktionen.

'----------------------------------------------------------------------

'Schritt 1: Import von Funktionen aus REF_CALC32.DLL.

'Die in "REF_CALC" definierten Funktionen geben als Ergebnis lediglich

'einen bool´schen Parameter zurück. Das eigentliche Ergebnis der

'Berechnung wird in einem Parameter der Parameterliste übergeben. Damit 'kann die originale Funktion nicht unmittelbar in einem EXCEL-Arbeits-'

'blatt eingesetzt werden. Diese Funktionen werden deshalb als

'"Private" deklariert, damit sie für den Anwender nicht sichtbar sind.

Option Explicit

Option Base 1

Private Declare Function S_revision Lib "REF_CALC32.DLL" _ (ByRef Version As String) As Boolean

Private Declare Function S_molmas Lib "REF_CALC32.DLL" _ (ByVal Refr As String, ByRef Molmas As Double) As Boolean

Private Declare Function S_freez Lib "REF_CALC32.DLL" _ (ByVal Refr As String, ByRef tfreez As Double) As Boolean

Private Declare Function S_tc Lib "REF_CALC32.DLL" _ (ByVal Refr As String, ByRef Tcrit As Double) As Boolean

Private Declare Function S_pc Lib "REF_CALC32.DLL" _ (ByVal Refr As String, ByRef Pcrit As Double) As Boolean

Private Declare Function S_vc Lib "REF_CALC32.DLL" _ (ByVal Refr As String, ByRef Vcrit As Double) As Boolean

Private Declare Function S_p_b Lib "REF_CALC32.DLL" _

(ByVal Refr As String, ByVal T As Double, ByRef p_b As Double) _ As Boolean

Private Declare Function S_t_b Lib "REF_CALC32.DLL" _

(ByVal Refr As String, ByVal p As Double, ByRef T_b As Double) _ As Boolean

Private Declare Function S_p_d Lib "REF_CALC32.DLL" _

(ByVal Refr As String, ByVal T As Double, ByRef p_d As Double) _ As Boolean

Private Declare Function S_t_d Lib "REF_CALC32.DLL" _

(ByVal Refr As String, ByVal p As Double, ByRef T_d As Double) _ As Boolean

-17-

SOLVAY FLUOR GmbH

Excel/VBA

Private Declare Function S_v_l Lib "REF_CALC32.DLL" _

 

(ByVal Refr As String, ByVal T As Double, ByRef v_l As Double) _

 

As Boolean

 

Private Declare Function S_v_v Lib "REF_CALC32.DLL" _

(ByVal Refr As String, ByVal T As Double, ByVal p As Double, _ ByRef v_v As Double) As Boolean

Private Declare Function S_p_v_v Lib "REF_CALC32.DLL" _ (ByVal Refr As String, ByVal T As Double, ByVal v As Double, _ ByRef p_v_v As Double) As Boolean

Private Declare Function S_t_v_v Lib "REF_CALC32.DLL" _ (ByVal Refr As String, ByVal p As Double, ByVal v As Double, _ ByRef t_v As Double) As Boolean

Private Declare Function S_h_l Lib "REF_CALC32.DLL" _

(ByVal Refr As String, ByVal T As Double, ByRef h_l As Double) _ As Boolean

Private Declare Function S_h_v Lib "REF_CALC32.DLL" _

(ByVal Refr As String, ByVal T As Double, ByVal p As Double, _ ByRef h_v As Double) As Boolean

Private Declare Function S_h_v_v Lib "REF_CALC32.DLL" _ (ByVal Refr As String, ByVal T As Double, ByVal v As Double, _ ByRef h_v_v As Double) As Boolean

Private Declare Function S_s_l Lib "REF_CALC32.DLL" _

(ByVal Refr As String, ByVal T As Double, ByRef s_l As Double) _ As Boolean

Private Declare Function S_s_v Lib "REF_CALC32.DLL" _

(ByVal Refr As String, ByVal T As Double, ByVal p As Double, _ ByRef s_v As Double) As Boolean

Private Declare Function S_s_v_v Lib "REF_CALC32.DLL" _ (ByVal Refr As String, ByVal T As Double, ByVal v As Double, _ ByRef S_v_v As Double) As Boolean

Private Declare Function S_f_entro Lib "REF_CALC32.DLL" _ (ByVal Refr As String, ByVal p As Double, ByVal s As Double, _ ByRef f_entro As Double) As Boolean

Private Declare Function S_f_entha Lib "REF_CALC32.DLL" _ (ByVal Refr As String, ByVal p As Double, ByVal h As Double, _ ByRef f_entha As Double) As Boolean

Private Declare Function S_cp_l Lib "REF_CALC32.DLL" _

(ByVal Refr As String, ByVal T As Double, ByRef cp As Double) As Boolean

Private Declare Function S_cv Lib "REF_CALC32.DLL" _

(ByVal Refr As String, ByVal T As Double, ByVal p As Double, _ ByRef cv As Double) As Boolean

Private Declare Function S_cv_v Lib "REF_CALC32.DLL" _

(ByVal Refr As String, ByVal T As Double, ByVal v As Double, _ ByRef cv_v As Double) As Boolean

Private Declare Function S_cp Lib "REF_CALC32.DLL" _

(ByVal Refr As String, ByVal T As Double, ByVal p As Double, _ ByRef cp As Double) As Boolean

-18-

SOLVAY FLUOR GmbH

Excel/VBA

Private Declare Function S_cp_v Lib "REF_CALC32.DLL" _

(ByVal Refr As String, ByVal

T As Double, ByVal v As Double, _

ByRef cp As Double) As Boolean

Private Declare Function S_sigma_l Lib "REF_CALC32.DLL" _

(ByVal Refr As String, ByVal

T As Double, ByRef sigma_l As Double) _

As Boolean

 

Private Declare Function S_lambda_l Lib "REF_CALC32.DLL" _

(ByVal Refr As String, ByVal

T As Double, ByRef lambda_l As Double) _

As Boolean

 

Private Declare Function S_lambda_v Lib "REF_CALC32.DLL" _

(ByVal Refr As String, ByVal

T As Double, ByVal p As Double, _

ByRef lambda_v As Double) As

Boolean

Private Declare Function S_kappa Lib "REF_CALC32.DLL" _

(ByVal Refr As String, ByVal

T As Double, ByVal p As Double, _

ByRef kappa As Double) As Boolean

Private Declare Function S_kappa_v Lib "REF_CALC32.DLL" _

(ByVal Refr As String, ByVal

T As Double, ByVal v As Double, _

ByRef kappa_v As Double) As Boolean

Private Declare Function S_vs Lib "REF_CALC32.DLL" _

(ByVal Refr As String, ByVal

T As Double, ByVal p As Double, _

ByRef vs As Double) As Boolean

Private Declare Function S_visc_l Lib "REF_CALC32.DLL" _

(ByVal Refr As String, ByVal

T As Double, ByRef visc_l As Double) _

As Boolean

 

Private Declare Function S_visc_v Lib "REF_CALC32.DLL" _ (ByVal Refr As String, ByVal T As Double, ByVal p As Double, _ ByRef visc_v As Double) As Boolean

-19-

SOLVAY FLUOR GmbH

Excel/VBA

'----------------------------------------------------------------------

'Schritt 2: Aufstellen in EXCEL-Arbeitsblättern nutzbarer Funktionen

'Im ersten Schritt wurden die via "REF_CALC" bereitgestellten

'Funktionen deklariert.

'Nun sind die dem Nutzer zugänglichen Funktionen zu deklarieren, die

'folgende Anforderungen erfüllen sollen:

'1. Die Funktionen müssen von einem passenden Typ sein (z.B. ein Real-

'Typ), damit das Ergebnis der Berechnung über den Funktionsnamen

'zurückgeben werden kann.

'2. Die unabhängigen Parameter müssen in der Parameterliste übergeben

'werden. Die Parameterliste kann leer sein (), wenn keine Parameter

'zu übergeben sind.

'3. Die unabhängigen Parameter müssen als Wertkopie (ByVal) übergeben

'werden.

'4. Die Funktion muß die gewünschte (private) Importfunktion intern

'aufrufen.

'5. Das Ergebnis der Berechnung muß dem Funktionsnamen zugewiesen

'werden.

'6. Der Name der jeweiligen Funktion ist beliebig. Er muß sich

'lediglich von den in Schritt 1 deklarierten Importfunktionen

'unterscheiden. In den folgenden Beispielen ist lediglich der

'Vorsatz "S_" im Funktionsnamen durch "X_" ersetzt.

'----------------------------------------------------------------------

Dim ReturnVal As Boolean

' Globale Variable

Function X_revision() As String

ReturnVal = S_revision(revision)

End Function

Function X_molmas(ByVal Refr As String) As Double

ReturnVal = S_molmas(Refr, molmas)

End Function

Function X_freez(ByVal Refr As String) As Double

ReturnVal = S_freez(Refr, freez)

End Function

Function X_tc(ByVal Refr As String) As Double

ReturnVal = S_tc(Refr, tc)

End Function

Function X_pc(ByVal Refr As String) As Double

ReturnVal = S_pc(Refr, pc)

End Function

Function X_vc(ByVal Refr As String) As Double

ReturnVal = S_vc(Refr, vc)

End Function

Function X_p_b(ByVal Refr As String, ByVal T As Double) As Double ReturnVal = S_p_b(Refr, T, p_b)

End Function

Function X_t_b(ByVal Refr As String, ByVal p As Double) As Double ReturnVal = S_t_b(Refr, p, t_b)

End Function

Function X_p_d(ByVal Refr As String, ByVal T As Double) As Double ReturnVal = S_p_d(Refr, T, p_d)

End Function

Function X_t_d(ByVal Refr As String, ByVal p As Double) As Double

-20-

Соседние файлы в папке Sol_Excel