Einführung in die Typtoleranz von Parametern in VBA im Rahmen der Lehre des Programmierens mit VBA. (VBA Typanpassung VBA.Strings.Chr VBA Parameter VBA implizite Typwandlung VBA Funktionsargument VBA Argument VBA Funktion VBA), Lektion, Seite 721163
https://www.purl.org/stefan_ram/pub/vba_typtoleranz_von_parametern_de (Permalink) ist die kanonische URI dieser Seite.
Stefan Ram
VBA-Kurs

Aufrufwandlung in VBA 

Es wird nicht verlangt, daß der Typ eines Arguments  dem Typ des Parameters  immer gleicht. Vielmehr ist es oft auch möglich, ein Argument von einem anderen Typ als dem des Parameters zu verwenden. Der Wert wird dann in einen entsprechenden Wert des Parametertyps uminterpretiert. Trotzdem ist es am besten, ein Argument anzugeben, dessen Typ dem Typ des entsprechenden Parameters gleicht.

Integer-Parameter

In diesem Abschnitt beschäftigen wir uns mit Parametern vom Typ »Integer«.

Als Beispiel verwenden wir hier die Funktion »VBA.Information.RGB«.

Die Funktion »VBA.Information.RGB« (Proklamation, vereinfacht)
Function RGB( Red As Integer, Green As Integer, Blue As Integer )As Integer

Solange man für das zweite und dritte Argument den Wert »0« angibt, ist das Ergebnis dieser Funktion für kleine Zahlen der Wert des ersten Arguments.

Die genaue Bedeutung dieser Funktion ist hier nicht weiter wichtig, da es nur darum geht, zu illustrieren, welchen Datentyp der Ausdruck haben kann, der als erstes Argument verwendet wird.

Integer-Parameter und Integer-Argumentausdruck

Natürlich kann für einen Integer-Parameter ein Integer-Argumentausdruck verwendet werden. Der Wert des Integer-Argumentausdruck wird dann direkt für den Integer-Parameter herangezogen.

Direktbereich
? VBA.Information.RGB( 2, 0, 0 )
2

Integer-Parameter und Double-Argumentausdruck

für einen Integer-Parameter kann auch ein Double-Argumentausdruck verwendet werden. Der Wert des Double-Argumentausdruck wird gerundet  und dann für den Integer-Parameter herangezogen.

Direktbereich
? VBA.Information.RGB( 2.1, 0, 0 )
 2 
? VBA.Information.RGB( 2.4, 0, 0 )
 2 
? VBA.Information.RGB( 2.5, 0, 0 )
 2 
? VBA.Information.RGB( 2.51, 0, 0 )
 3 
? VBA.Information.RGB( 2.99, 0, 0 )
 3 
? VBA.Information.RGB( 3.0, 0, 0 )
 3 
? VBA.Information.RGB( 3.1, 0, 0 )
 3 

Da es keinen Sinn hat, Nachkommastellen anzugeben, die dann gar nicht verwendet werden und die Rundung zu unerwarteten Ergebnissen führen kann, sollte in der Regel darauf verzichtet werden, einen Double-Argumentausdruck für einen Integer-Parameter anzugeben. Es ist nicht unbedingt hilfreich, wenn VBA  dies toleriert und keine Fehlermeldung ausgibt, da man so nicht auf die versehentliche Verwendung eines unpassenden Typs aufmerksam gemacht wird.

Integer-Parameter und String-Argumentausdruck

Auch ein String-Argumentausdruck darf bei einem Integer-Parameter verwendet werden. Wenn dieser ein Integer-Numerale enthält. so wird dies als Integer-Wert interpretiert.

Direktbereich
? VBA.Information.RGB( "2", 0, 0 )
 2 

Auch ein einzelnes Vorzeichen ist dabei im allgemeinen erlaubt. (Die Fehlermeldung ergibt sich bei dieser speziellen Funktion nur, weil negative Werte an dieser Stelle nicht erlaubt sind.)

Direktbereich
? VBA.Information.RGB( "-2", 0, 0 )
⚠ Laufzeitfehler '5': Ungültiger Prozeduraufruf oder ungültiges Argument
Eine „Prozedur“ ist ein Unterprogramm, hier also eine Funktion. Deutsch „Prozedur“ = Englisch “procedure ”.

Es ist auch möglich, ein Double-Numerale in einem String-Argumentausdruck zu verwenden. Der sich ergebende Double-Wert wird dann weiterverwendet, wie oben im Abschnitt „Integer-Parameter und Double-Argumentausdruck“ beschrieben.

Direktbereich
? VBA.Information.RGB( "2.5", 0, 0 )
 2 
? VBA.Information.RGB( "2.51", 0, 0 )
 3 

Erst, wenn der Text in einer Zeichenfolge insgesamt nicht mehr als ein Numerale interpretiert werden kann, gibt es wirklich einmal eine Fehlermeldung.

Direktbereich
? RGB( "2a", 0, 0 )
⚠ Laufzeitfehler '13': Typen unverträglich
? RGB( "a", 0, 0 )
⚠ Laufzeitfehler '13': Typen unverträglich

Double-Parameter

Die Situation bei einem Double-Parameter ist im wesentlich wie bei einem Integer-Parameter. Für einen Double-Parameter können also Argumente vom Typ »Integer«, »Double« und »String« angegeben werden. Deren Werte werden dann nach Möglichkeit als Double-Werte interpretiert. Anders als bei einem Integer-Parameter wird aber dabei nicht gerundet, sondern die Nachkommastellen werden soweit wie möglich als Teil des Wertes verwendet. Wir zeigen dies im folgenden an Hand der Funktion »VBA.Math.Sqr«.

Die Funktion »VBA.Math.Sqr« (Proklamation, vereinfacht)
Function Sqr( Number As Double )
Direktbereich
? VBA.Math.Sqr( 2.0 )
 1.4142135623731 
? VBA.Math.Sqr( 2 )
 1.4142135623731 
? VBA.Math.Sqr( "2.0" )
 1.4142135623731 

String-Parameter

Für einen String-Parameter können auch Double- und Integer-Argumente angegeben werden. Sie werden dann in einen Zeichenfolge umgewandelt, ähnlich wie dies geschieht, wenn eine Zahl ausgegeben wird, allerdings ohne daß dabei Leerzeichen hinzugefügt werden. Wir zeigen dies im folgenden an Hand der Funktion »VBA.Strings.StrReverse«, welche die Umkehrung der Argumentzeichenfolge ergibt.

Die Funktion »VBA.Strings.StrReverse« (Proklamation, vereinfacht)
Function StrReverse( Expression As String )
Direktbereich
? VBA.Strings.StrReverse( "ac" )
ca
? VBA.Strings.StrReverse( 123 )
321
? VBA.Strings.StrReverse( 123.45 )
54.321

Parameter- und Argumenttypen

Die folgende Tabelle zeigt, welche Argumenttypen für bestimmte Parametertypen zulässig sind.

Tabelle

Parametertyp erlaubter Argumenttyp

Double Double, Integer, numerischer String
Integer Double, Integer, numerischer String
String Double, Integer, String

Übungsfragen

?   Ausdrücke lesen

Dokumentation von »VBA.Information.Err« (vereinfacht)
Function Err()
Element von VBA.Information
Dokumentation von »VBA.Math.Sin« (vereinfacht)
Function Sin( Number As Double )
Element von VBA.Math

Welcher der folgenden Aufrufe ist erlaubt?

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 stefanram721163 stefan_ram:721163 VBA Typanpassung VBA.Strings.Chr VBA Parameter VBA implizite Typwandlung VBA Funktionsargument VBA Argument VBA Funktion VBA VBA implizite Datentypwandlung, VBA implizite Datentypumwandlung, VBA implizite Typwandlung, VBA implizite Typumwandlung, VBA implizite Datentypwandlungen, VBA implizite Datentypumwandlungen, VBA implizite Typwandlungen, VBA implizite Typumwandlungen, VBA 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,, Softwareentwicklung, Software-Entwicklung, Software Entwicklung, Softwareprogrammierung, Software-Programmierung, Software Programmierung, Softwareherstellung, Software-Herstellung, Software Herstellung, Softwareerstellung, Software-Erstellung, Software Erstellung, Softwareengineering, Software-Engineering, Software Engineering, Softwareenginering, Software-Enginering, Software Enginering, Softwaremethodik, Software-Methodik, Software Methodik, Programmiermethodik, Programmier-Methodik, Programmier Methodik, Softwaredidaktik, Software-Didaktik, Software Didaktik, Methodik des Programmierens, Didaktik des Programmierens, Fachdidaktik des Programmierens, Fach-Didaktik des Programmierens, Programmieren, Programmierung, Computer Science, Informatik, Informatik, Informationspädagogik, Informationspaedagogik, Programmierer, programmieren, Quellcode, Quelltext, Quelle, Quellen, Informatiker, Fachinformatiker, Entwickler, mit Stil, mit Stiel, mit Still, , 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, slrprd721163, slrprddef721163, 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_typtoleranz_von_parametern_de