Inhalte

# Funktion CallByName

Ruft eine Unterroutine anhand ihres Zeichenfolgennamens auf.

### Syntax:

      CallByName(Objekt As Object, ProgName As String, Aufruftyp As Integer [,Arg0 [,Arg1 …]])

### Rückgabetyp:

result: Eine optionale Variable, die das Ergebnis der aufgerufenen Methode oder Eigenschaft enthält.

### Parameter:

Objekt: Ein Basismodul, eine Instanz ClassModule oder ein UNO-Dienst, der Eigenschaften oder Methoden enthält.

ProgName: Die aufgerufene Funktion, Sub oder Eigenschaft.

Aufruftyp: Die Art der durchgeführten Aktion wie "Get", "Let", "Method" und "Set".

Arg0, Arg1 …: Die optionalen Parameter für Function, die als Positionsargumente angegeben werden.

Argumente werden in genau derselben Reihenfolge bereitgestellt, die in der Methodensignatur definiert ist. Schlüsselwortargumente sind nicht möglich.

Wert | Beschreibung für CallType
--- | ---
1 | Method: Ruft eine Prozedur als Funktion oder Subroutine auf.
2 | Get: Liest eine Eigenschaft oder einen Variableninhalt.
4 | Let: Weist einem Eigenschaft oder einer Variablen einen Inhalt zu.
8 | Set: Weist einer Variablen Object oder Variant einen Referenzwert zu.

### Beispiel:

1. Ein Modul Calc.Maths enthält eine Funktion Multiply, die eine variierende Liste von Zahlen erwartet.

2. Informationen von ScriptForge.Platform.Architecture werden abgerufen.

3. Eigenschaft DisplayDirectory des UNO-Diensts com.sun.star.ui .dialogs.FilePicker wird auf das Home-Verzeichnis des Benutzers gesetzt, sein Inhalt wird zweimal gelesen.

      Sub CallByName_example
          Const _Method = 1, _Get = 2, _Let = 4, _Set = 8

          BasicLibraries.loadLibrary("Calc") ' Calc.Maths-Benutzer-library.module
          Dim cm As Object : cm = Calc.Maths
          MsgBox CallByName(cm, "Multiply", _Method, 3, 45, 1, 89)		' 12015
          MsgBox CallByName(cm, "Multiply", _Method, 1.85e15, 44, 10^8)	' 8.14E+24

          GlobalScope.BasicLibraries.loadLibrary("ScriptForge")
          Dim p As Object : p = CreateScriptService("ScriptForge.Platform")
          MsgBox CallByName(p, "Architecture", _Get) ' 32bit/64bit

          Dim uno As Object : uno = CreateUnoService("com.sun.star.ui.dialogs.OfficeFilePicker")
          Dim fs As Object  : fs  = CreateScriptService("ScriptForge.FileSystem")
          CallByName(uno, "DisplayDirectory", _Let, fs.HomeFolder)
          MsgBox CallByName(uno, "DisplayDirectory", _Get)
          var = CallByName(uno, "getDisplayDirectory", _Get)
      End Sub

### Modul Calc.Maths

      Option Compatible ' Module Calc.Maths
      Option Explicit

      Public Function Multiply(ParamArray args() As Double) As Variant
          ''' Multipliziert eine variable Zahlenliste '''
          Dim ndx As Integer
          If UBound(args) >= 0 Then
              Multiply = 1.0
              For ndx = 0 To UBound(args)
                  Multiply = Multiply * args(ndx)
              Next ndx
          End If
      End Function 'Calc.Maths.Multiply()

Verwandte Themen

Anweisung Call

Dienst ScriptForge.Platform

Anweisung "Option Compatible"

Anweisung Option ClassModule