Einführung in Funktionen mit mehreren Parameteren in VBA im Rahmen der Lehre des Programmierens mit VBA. (VBA Argumente VBA String VBA Left VBA), Lektion, Seite 721113
https://www.purl.org/stefan_ram/pub/vba_funktion_mit_mehreren_parametern_de (Permalink) ist die kanonische URI dieser Seite.
Stefan Ram
VBA-Kurs

Mehrere Parameter in VBA 

Einleitendes Beispiel

Neben den unären  Operatoren (wie Vorzeichen) gibt es ja auch binäre  Operatoren, welche zwei  Operanden akzeptieren. Genauso gibt es auch binäre Funktionen, welche zwei Argumente  akzeptieren.

Mit der folgenden Eingabe werden die fünf  ersten Zeichen der Zeichenfolge »abcdefghijklmnopqrstuvwxyz« ermittelt.

Direktbereich
? VBA.Strings.Left$( "abcdefghijklmnopqrstuvwxyz", 5 )
abcde

»VBA.Strings.Left$«

Die Funktion »VBA.Strings.Left$« ergibt so viele Zeichen vom ersten Argumentwert, wie durch den zweiten Argumentwert angegeben werden. Der erste Argumentwert ist also ein Text, während der zweite eine Zahl ist. Es ergibt sich also zunächst folgende Dokumentation mit zwei  Parameterbeschreibungen.

Left (Objektkatalog) (vereinfacht)
Function Left$( Text As String, Length As Integer )As String
Element von VBA.Strings

Wir werden im folgenden die Syntax  solcher Parameterlisten  etwas detaillierter beschreiben.

Typangaben

Unter einer „Typangabe“ verstehen wir eine der lexikalischen Einheiten »Integer«, »Double« oder »String«.

Typangabe (Syntaxdiagramm)
Typangabe
.-------.
-----.--->( Integer )---.--->
| '-------' ^
| .------. |
'--->( Double )----'
| '------' |
| .------. |
'--->( String )----'
'------'

Parameterbeschreibung

In der Dokumentation von Funktionen findet man Beschreibungen von Parameter. In der folgenden Dokumentation der Funktion »Left$« finden sich beispielsweise zwei Parameterbeschreibungen, nämlich »Text As String« und »Length As Integer«.

Left (Objektkatalog) (vereinfacht)
Function Left$( Text As String, Length As Integer ) As String

Unter einer Parameterbeschreibung  verstehen wir einen Bezeichner, dem noch eine Typangabe folgen kann. Beispielsweise ist »Text As String« eine Parameterbeschreibungen, aber auch schon »Text« alleine wäre eine Parameterbeschreibung.

Parameterbeschreibung
Parameterbeschreibung
.------------------------.
.------------. | .--. .-----. v
--->| Bezeichner |---'--->( As )--->| Typ |---'--->
'------------' '--' '-----'

Parameterlisten

In der folgenden Dokumentation der Funktion »VBA.String.Left$« finden sich die Parameterliste »Text As String, Length As Integer«.

Left (Objektkatalog) (vereinfacht)
Function Left$( Text As String, Length As Integer ) As String

Als Parameterliste  bezeichnen wir eine kommagetrennte Liste  von Parameterbeschreibungen,

Parameterliste
Parameterliste
.----------------------------------------.
| |
| .-----------------------. V
---'---.--->| Parameterbeschreibung |---.---'--->
^ '-----------------------' |
| .-. |
'--------------( , )-------------'
'-'
Parameterliste (Beispiel)
Text As String, Length As Integer

Es sind nicht nur Funktionen mit bis zu zwei  Parametern möglich, vielmehr können Funktionen beliebig viele  Parameter haben.

Parameter und Argumente

Beim Schreiben des Aufrufs der Funktion müssen genau so viele  Argumente angegeben werden wie Parameter in der Dokumentation stehen.

Die Zuordnung der Argumentwerte zu den Parametern erfolgt über deren gemeinsame Reihenfolge : Das erste  Argument wird dem ersten  Parameter zugeordnet, das zweite  dem zweiten  Parameter und so weiter. Bei der Inkarnation der Funktion wird dann der Wert jedes Parameters durch den Wert des entsprechenden Argumentausdrucks festgelegt. Der Aufruf »VBA.Strings.Left$( "abcdefghij", 5 )« legt beispielsweise den Wert »"abcdefghij"« für den Parameter »Text« und den Wert »5« für den Parameter »Length« fest.

Dokumentation der Semantik

Die Dokumentation einer Funktion beschreibt auch, wie der Wert des Aufrufs einer festgelegt wird. Sie gibt also die Semantik eines Aufrufs dieser Funktion an. Der Wert des Aufrufs einer Funktion hängt oft von den Werten der Argumente ab und manchmal auch von anderen Umständen. Die Dokumentation beschreibt, wie  der Wert des Aufrufs der Funktion von den Werten der Argumente und von anderen Umständen abhängt.

Im Falle der Funktion »VBA.Strings.Left$« wird die Semantik beispielsweise durch den Text „Gibt einen Wert vom Typ String zurück, der eine bestimmte Anzahl von … [u.s.w]“ (gekürzt) aus ihrer Dokumentation bekannt gemacht.

Syntax

Das folgende Syntaxdiagramm für Aufrufe stellt die Möglichkeit mehrerer durch ein Komma getrennter Argumente dar.

Mehrere Argumente werden als Ausdruckliste in die runden Aufrufklammern geschrieben und durch ein Komma getrennt. Dieses Komma stellt eine lexikalische Einheit dar, wie man auch dem folgenden Syntaxdiagramm entnehmen kann.

Aufrufausdruck (Syntaxdiagramm)

Ausdruckliste
.---------------------------.
| .----------. v
---'---.--->| Ausdruck |---.---'--->
^ '----------' |
| .-. |
'-------( , )<------'
'-'

Ausdruck
.-------. .-. .---------------. .-.
--->| Name |--->( ( )--->| Ausdruckliste |--->( ) )--->
'-------' '-' '---------------' '-'

Ausdruckliste (Beispiel)
"abcdefghijklmnopqrstuvwxyz", 5
Aufrufausdruck (Beispiel)
VBA.Strings.Left$( "abcdefghijklmnopqrstuvwxyz", 5 )

Semantik

Bei der Auswertung eines Aufrufausdrucks werden zuerst alle Argumentausdrücke von links nach rechts ausgewertet. Anschließend wird die durch den Funktionsnamen angegebenen Funktion mit den im vorigen Schritt ermittelten Werten der Argumente verbunden. Solch eine Verbindung einer Funktion mit konkreten Argumentwerten  zur Laufzeit (nicht bloß mit den Argumentausdrücken ) wird auch eine Inkarnation  (der Funktion) genannt, genauso wird auch die Herstellung dieser Verbindung genannt. Die Inkarnation wird dann ausgeführt (also als Programm gestartet), diese Ausführung der Inkarnation wird hier auch Funktionsoperation  genannt.

Aussprache

Im allgemeinen spricht man »f(x,y)« als „f von x und y.“.

Typregeln

Der Typ des Aufrufs einer Funktion steht – wie schon früher behandelt – in der Dokumentation vor dem Namen der Funktion.

Damit eine Argumentliste mit einer Parameterliste verträglich ist, müssen die beisen Listen gleich viele Einträge haben und die Typen der Argumente müssen mit den Typen der jeweiligen Parameter verträglich sein (so wie dies bei einem Aufruf mit einem Argument schon behandelt wurde).

Im Aufruf »VBA.Strings.Left$( "abcdefghij", 5 )« wird beispielsweise das Argument »"abcdefghij"« zur Festlegung des Wertes des Parameters »Text« verwendet. Der Parameter »Text« hat den Typ »String«. Daher muß der Argumenttyp nun so mit dem Parametertyp verträglich sein, wie dies zuvor schon bei der Behandlung von Funktionen mit einem  Parameter erklärt wurde. Der Datentyp des Arguments »"abcdefghij"« ist »String«, der Datentyp des Paramters »Text« ist ebenfalls »String«. Für den zweiten Parameter gilt Entsprechendes. Daher erfüllt der Aufrufausdruck »VBA.Strings.Left$( "abcdefghij", 5 )« die dokumentierten Typanforderungen der Funktion.

Ausdrücke (Zusammenfassung)

Ein Ausdruck ist

Begriffshierarchie der Ausdrücke


Ausdruck
|
|
.--------------------------:-------------------------------------.-------------------------------------.
| | | |
Literal Operatorausdruck Aufruf Name
(einfacher Ausdruck), (komplexer Ausdruck), | (einfacher Ausdruck)
z.B.: 65 oder "abc" z.B.: -65 oder 2 + 3 .------------------'------------------. z.B.: x
| |
Aufruf Aufruf
ohne Argumentausdruecke mit Argumentausdruecken
(einfacher Ausdruck), (komplexer Ausdruck),
z.B.: f() z.B.: f( x )

Übungsfragen

?   Verständnis von Fachbegriffen

Zu einer (hypothetischen) binären Funktion »k« wird erklärt: „Der Wert von »k« ist der Wert des ersten Arguments.“. Welchen Wert hat demnach »k( 3, 2 )«? Welchen Wert hat »k( k( 5, 1 ), k( 4, 9 ))«?

?   Reihenfolge von Operationen

In welcher Reihenfolge werden die vier Operationen (Funktionen oder Operatoren) bei der Auswertung des folgenden Ausdrucks ausgeführt?

Ausdruck
VBA.Strings.Left$( VBA.Strings.UCase$( "abcdef" ), VBA.Math.Sqr( 2 + 2 ))

?   Verträglichkeit von Parameterlisten und Argumentlisten

Welche der folgenden Paare von Parameterlisten und Argumentlisten sind verträglich?

(Das heißt: Welche der folgenden Argumentlisten sind beim Aufruf einer Funktion möglich, deren Dokumentation die darüberstehende Parameterliste hat?)

Paar 0

Parameterliste
A As Integer, X As Double
Argumentliste
2, 3

Paar 1

Parameterliste
A As Integer, X As String
Argumentliste
2, "3", 3

Paar 2

Parameterliste
A As Integer, X As Double, C As Integer
Argumentliste
2, "double", 2

?   Dokumentation verstehen

Dokumentation von »VBA.Math.Round« (vereinfacht)
Function Round( Number as Double, Digits As Integer ) As Double
Element von VBA.Math
Rundet auf Digits  Nachkommastellen.

Die folgenden Frage sollen an Hand der obenstehenden Dokumentation beantwortet werden:

Übungsaufgaben

/   Ausgabe eines Ergebnisses

Schreiben Sie eine VBA-Eingabe, welche das Ergebnis eines Aufrufs der Funktion »VBA.Math.Round« ausgibt. Ist das Ergebnis mit der Dokumentation verträglich?

Reserveaufgaben

/   Ermittlung der Hypotenuse zweier Katheten

Schreiben Sie eine VBA-Eingabe, welch mit der Funktion »VBA.Strings.Right$« die fünf am weitesten rechts stehenden Zeichen aus der Zeichenfolge »abcdefg« ausgibt.

/   Ermittlung des RGB-Wertes dreier Werte

Schreiben Sie eine VBA-Eingabe, welche mit der Funktion »VBA.Information.RGB« den RGB-Wert für die Werte 1, 2 und 3 ausgibt. (Die genaue Bedeutung dieses Wertes ist bei dieser Aufgabe nicht wichtig, es geht nur darum, den Aufruf korrekt zu schreiben.)

Seiteninformationen und Impressum   |   Mitteilungsformular  |   "ram@zedat.fu-berlin.de" (ohne die Anführungszeichen) ist die Netzpostadresse von Stefan Ram.   |   Eine Verbindung zur Stefan-Ram-Startseite befindet sich oben auf dieser Seite hinter dem Text "Stefan Ram".)  |   Der Urheber dieses Textes ist Stefan Ram. Alle Rechte sind vorbehalten. Diese Seite ist eine Veröffentlichung von Stefan Ram. Schlüsselwörter zu dieser Seite/relevant keywords describing this page: Stefan Ram Berlin slrprd slrprd stefanramberlin spellched stefanram721113 stefan_ram:721113 VBA Argumente VBA String VBA Left VBA Funktionsaufruf, Funktion, Funktionen, Argument, Argumente, Arguments, Funktionsausdruck, Funktionsaufrufe, Funktionsbenutzung, mehrfache Argumente, multiple Argumente, Aktualparameter, aktueller Parameter, eigentlicher Parameter, mehrere Parameter, mehrfache Parameter, mehrere Aktualparameter, mehrfache Aktualparameter, mehrere aktuelle Parameter, mehrfache aktuelle Parameter, mehrere eigentliche Parameter, mehrfache eigentliche Parameter, mehrere tatsächliche Parameter, mehrfache tatsächliche Parameter, source, source code,sourcecode, Programmier sprache VBA, VBA Programm VBA Sprache VBA Die Programmiersprache VBA Visual Basic for Applications, VisualBasic for Applications, Visual Basic for Aplications, VisualBasic for Aplications, VBA, V.B.A., V B A,, Einführung, Einfuehrung, Einführungen, Einfuehrungen, eLearning-Modul, e-Learning-Modul, eLearning-Module, e-Learning-Module, Kurs Berlin, Kurse Berlin, Kursus, Vortrag, Vorträge, Vortraege, Lehrgang, Lehrgänge, Lehrgaenge, kostenloses Lehrmaterial, kostenlose Lehrmaterialien, Vorlesung, Vorlesungen, Unterrichtseinheit, Unterrichtseinheiten, kostenloses Unterrichtsmaterial im Internet, kostenlose Unterrichtsmaterialien im Internet, Ausbildung, Ausbildungen, für die Ausbildung, Fortbildung, Fortbildungen, Weiterbildung, Weiterbildungen, Schulung Berlin, Schulungen Berlin, Internetschulung, Webschulung, Kursunterlage, Kursunterlagen, trainer Berlin, Didaktik, Informatikunterricht, Primer, Skript FH, Skripte FH, Skriptum FH, Skripts FH, Script FH, Scripte FH, Scriptum FH, Scripts FH, howto, how-to, how to, Lehrbuch, Buch, Bücher, Buecher, Bericht, Crash Kurs Berlin, Crash-Kurs Berlin, Crashkurs Berlin, Report, Sachtext, Sachtexte, Übung, Übungen, Uebung, Uebungen, course, PbclevtugFgrsnaEnz, lecture note, lecture notes, Tutorial, Tutor, Tutorium, Teacher, Lehrer Berlin, Trainer Berlin, Beratung Berlin, Anleitung zum, Anleitungen zum, Einführung, Einfuehrung, Einführungen, Einfuehrungen, Handbuch für, Handbücher, Handbuecher, Support, Diplomarbeit, Facharbeit, Hausarbeit, Hausarbeiten, Werk, Werke, Text, Übungsblatt, Uebungsblatt, Lösung, Loesung, Lösungen, Loesungen, Auflösung, Aufloesung, Auflösungen, Aufloesungen, Facharbeit, Facharbeiten, Forum, Training, manual, Folie, Folien, Lehrmittel, beratung, Definition von, Allgemeine Erklärung, Allgemeine Erklaerung, Allgemeine Erklärungen, Allgemeine Erklaerung, Allgemeine Erklaerungen, Einfache Erklärung einfach, Einfache Erklaerung einfach, Einfache Erklärungen, Einfache Erklaerung, Einfache Erklaerungen, zum Thema, FAQ, FAQs, Konzept, Lernkurs, Lern-Kurs, Lernkurse, Lern-Kurse, eine kurze Erklärung, Begriff, Begriffe, Erklärung zu Begriffen, begriffbestimmung, begriffbestimmung, Begriffsbestimmung, Begriffserklärung, Begriffserklaerung, Wort, Worterklärung, Worterklaerung, Definition, Beispiel, Beispiele, Bedeutung, Bedeutungen, was bedeutet, Begriffsdefinition, für Anfänger, fuer Anfaenger, für Einsteiger, für Beginner, zum selber Lernen, handout, hand out, web based training, WBT, Net Based Training, NBT, computer based training, CBT, virtual learning environment, virtual university, für die Schule, Seminar, Seminare, Vorgehensweise, Pädagogik, Paedagogik, Akademie, Onlineacademie, Onlineakademie, Wissen, Unterrichtsvorbereitung für das Fach, Unterricht, für Lehrer, für Lehrerinnen, Referat, Referate, Hausaufgabe, Hausaufgaben, Tip, Tipp. Tipps und Tricks, Tips und Tricks, Methode, Methoden, Methodik, Funktion, Funktionsweise, Aufbau, Prinzip, Grundlage, Grundlagen, Internetschulung, Unterlage, Unterlagen, Struktur, Frage, Fragen, Antwort, Antworten, Schulunterricht, zum erlernen, was ist das?, wie?, lerne, Onlineausbildung, Onlinelehrgang, Onlinekurs, Onlinebuch, Webbuch, Academy, Fachhochschule, FH, TFH, Hochschule, Universität, Universitaet, Uni, Schule, Berufsschule, Gymnasium, Erste Schritte mit, Dozent, Dozenten, Zusammenfassung, Übersicht, Term, Fachwort, Fachbegriff, Fachbegriffe, Grundbegriff, Grundbegriffe, Lektion, Lektionen, Bedienungsanleitung, Bedienungsanleitungen, Spezialist, Spezialisten, Coaching, Coach, Fachbuch, technologie, Unterschied zwischen, Unterschiede zwischen, lehren, unterrichten, für das Studium, für Studenten, für Studentinnen, für Studierende, für Schüler, für Schülerinnen, Wie kann ich, Wie kann man, Hilfe, selber, erstellen, Erstellung, Beginner, Online-Seminar, Online-Kurs, Online-Schulung, ich, gebrauchsanweisung, gebrauchsanleitung, Bedienungsanweisung, Einweisung, Kurzinfo, Internet-Kurs, Internet-Kurse, Online-Training, Intensiv, Intensivkurs, Vortragsreihe, Präsentation, Grundzüge, Mitschrift, Mitschriften, Verständnis, verstehen, anwenden, Hintergrundwissen, Hintergrund, Hintergründe, content, Funktionsprinzip, Schritt für Schritt; E-Learning; elearning; online learning; Fernlehre, Fernlehrgang, Fernlehrgänge, Referent, Referenten, Fernkurs, Fernkurse, Fernstudium, Fernschule, Fernuniversität, Fernlehrer, Denken, Qualifizierungsmaßnahme, Qualifizierung, Qualifizierungen, Volkshochschulkurs, Volkshochschulkurse, Internet-Learning-Plattform, Online-Learning-Plattform, E-Learning-Plattform, Internetlearning-Plattform, Onlinelearning-Plattform, Elearning-Plattform, jetzt, Kochbuch, einfach erklärt, Kenntnis, Kenntniss, Kenntnisse, deutsche Hilfe, lernen und verstehen; blended learning; courseware, Profi, Profis, professionell, professionelle, professionelles, profesionell, profesionelle, profesionelles, professionel, gekonnt, für Könner, Grundkurs, Leistungskurs, Aufbaukurs, Lehrtext, Lehrtexte, Fachtext, Fachtexte, Ausarbeitung, distance learning, Online Seminar, distance education, Online Tutorium, Online Tutorien, technology-based learning, Computer based learning, CBL, Internet Based learning, IBL, Web based learning, WBL, online-learning, OL, online-training, OT, CAI, Computer Assisted Instruction, CUU, Computerunterstützter Unterricht, Computer-unterstützter Unterricht, Know how, Grundkenntnis, Grundkenntnisse, Kompetenz, Schulungsunterlagen, Insiderwissen, Rat, Lehrerinnen und Lehrer, ABC, Überblick, Arbeitsblatt, Sekundarstufe, Oberstufe, Material, Materialien, Unterrichtsentwurf, Unterrichtsentwürfe, Lerntip, Lerntips, Lerntipp, Lerntipps, ebook, schnell lernen, Lerner, Lernender, Lernende Erwachsenenbildung, Frage und Antwort, Selbststudium, Selbstudium, Umschulung, , kostenlos, kostenlose, kostenloses, kosten los, kosten lose, kosten loses, gratis, free, frei, freie, freies, privat, private, privates, homepage, home-page, home page, website, web site, webpage, web-page, web page, webpages, web-pages, web pages, webseite, Web-Seite, Webseite, Webseiten, Web-Artikel, Web Artikel, online, on-line, on line, download downloaden, down load, or, deutsch, deutsche, deutsches, deutscher, Deutschland, deutschsprachig, deutschsprachige, deutschsprachiges, german, germany, and, uebersicht, Uerbersicht, uebersichten, Uebersichten, Übersicht, übersicht, Übersichten, übersichten, Uebersicht, uebersicht, Uebersichten, uebersichten, Info, Infos zu, Information über, ueber, Informationen über, Auskunft, Auskünfte, Auskuenfte, Dienst, PbclevtugFgrsnaEnz, Angebot, Angebote, Anbieter, server, für, fuer, in, an, keyword, keywords, key word, keywords, internet, internets, net, network, net work, networks, net works, web, www, world wide web, Theorie, Praxis, Anwendung, DV, IT, glossar, fachwörterbuch it-glossar, computer lexikon, Computerlexikon, Computer-Lexikon, Lexikon, computer lexicon, Computerlexicon, Computer-Lexicon, Lexicon, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023 was ist ein, was ist das, was sind, definiere, definition, define, Inhalt, html, xhtml, free im netz, PDF Text, digital, digitale, binär, binäre, elektronisch, elektronische, fachbegriff, fachbegriffe, konzept, Begriff, allgemein, allgemeine, allgemeines, Technik, Datentechnik, Digitaltechnik, Binätechnik, online lesen; , Stefan Ram, Berlin, and, or, near, uni, online, slrprd, slrprdqxx, slrprddoc, slrprd721113, slrprddef721113, PbclevtugFgrsnaEnz Erklärung, Beschreibung, Info, Information, Hinweis,

Der Urheber dieses Textes ist Stefan Ram. Alle Rechte sind vorbehalten. Diese Seite ist eine Veröffentlichung von Stefan Ram.
https://www.purl.org/stefan_ram/pub/vba_funktion_mit_mehreren_parametern_de