Deftype-AnweisungenDeftype statements

Wird auf Modulebene verwendet, um den Standard Datentyp für Variablen, an Prozedurenübergebene Argumente und den Rückgabetyp für Function -und Property Get- Prozeduren festzulegen, deren Namen mit der beginnen angegebene Zeichen.Used at the module level to set the default data type for variables, arguments passed to procedures, and the return type for Function and Property Get procedures whose names start with the specified characters.

SyntaxSyntax

DefBool letterrange, [ letterrange ] .. .DefBool letterrange, [ letterrange ] . . .
DefByte letterrange, [ letterrange ] .. .DefByte letterrange, [ letterrange ] . . .
DefInt letterrange, [ letterrange ] .. .DefInt letterrange, [ letterrange ] . . .
DefLng letterrange, [ letterrange ] .. .DefLng letterrange, [ letterrange ] . . .
DefLngLng letterrange, [ letterrange ] .. .DefLngLng letterrange, [ letterrange ] . . . (nur auf 64-Bit-Plattformen gültig)(valid on 64-bit platforms only)
**DefLngPtr** letterrange, [ letterrange ] *..* . **DefLngPtr** letterrange, [ letterrange ] **. . .**
DefCur letterrange, [ letterrange ] .. .DefCur letterrange, [ letterrange ] . . .
DefSng letterrange, [ letterrange ] .. .DefSng letterrange, [ letterrange ] . . .
DefDbl letterrange, [ letterrange ] .. .DefDbl letterrange, [ letterrange ] . . .
DefDec letterrange, [ letterrange ] .. .DefDec letterrange, [ letterrange ] . . .
DefDate letterrange, [ letterrange ] .. .DefDate letterrange, [ letterrange ] . . .
DefStr letterrange, [ letterrange ] .. .DefStr letterrange, [ letterrange ] . . .
DefObj letterrange, [ letterrange ] .. .DefObj letterrange, [ letterrange ] . . .
DefVar letterrange, [ letterrange ] .. .DefVar letterrange, [ letterrange ] . . .

Das erforderliche letterrange -Argument weist die folgende Syntax auf: Buchstabe1 [ - Buchstabe2 ]The required letterrange argument has the following syntax: letter1 [ - letter2 ]

Mit den Argumenten letter1 und letter2 wird der Namensbereich angegeben, für den Sie einen standardmäßigen Datentyp festlegen können.The letter1 and letter2 arguments specify the name range for which you can set a default data type. Jedes Argument stellt den ersten Buchstaben der Variablen, des Arguments, der Function -Prozedur oder des Property Get- Prozedur namens dar und kann ein beliebiger Buchstabe des Alphabets sein.Each argument represents the first letter of the variable, argument, Function procedure, or Property Get procedure name, and can be any letter of the alphabet. Die Groß-/Kleinschreibung von Buchstaben wird für letterrange nicht berücksichtigt.The case of letters in letterrange isn't significant.

HinweiseRemarks

Der Name der Anweisung bestimmt den Datentyp.The statement name determines the data type.


AnweisungStatement DatentypData type
DefBoolDefBool BooleanBoolean
DefByteDefByte ByteByte
DefIntDefInt IntegerInteger
DefLngDefLng LongLong
DefLngLngDefLngLng LongLong (nur auf 64-Bit-Plattformen gültig)LongLong (valid on 64-bit platforms only)
DefLngPtrDefLngPtr LongPtrLongPtr
DefCurDefCur CurrencyCurrency
DefSngDefSng SingleSingle
DefDblDefDbl DoubleDouble
DefDecDefDec Decimal (derzeit nicht unterstützt)Decimal (not currently supported)
DefDateDefDate DateDate
DefStrDefStr StringString
DefObjDefObj ObjektObject
DefVarDefVar VariantVariant

Beispielsweise Message ist im folgenden Programm Fragment eine Zeichenfolgenvariable.For example, in the following program fragment, Message is a string variable.

DefStr A-Q
. . .
Message = "Out of stack space."

Eine DEFType -Anweisung wirkt sich nur auf das Modul aus, in dem Sie verwendet wird.A Deftype statement affects only the module where it is used. Beispielsweise wirkt sich eine DefInt -Anweisung in einem Modul nur auf den Standarddatentyp von Variablen, an Prozeduren übergebene Argumente und den Rückgabetyp für Function -und Property Get- Prozeduren aus, die in diesem Modul deklariert werden; der Standarddatentyp von Variablen, Argumenten und Rückgabetypen in anderen Modulen ist nicht betroffen.For example, a DefInt statement in one module affects only the default data type of variables, arguments passed to procedures, and the return type for Function and Property Get procedures declared in that module; the default data type of variables, arguments, and return types in other modules is unaffected. Wenn nicht explizit mit einer DEF-Typ -Anweisung deklariert wird, ist der Standarddatentyp für alle Variablen, alle Argumente, alle Function -Prozeduren und alle Property Get- Prozeduren Variant.If not explicitly declared with a Deftype statement, the default data type for all variables, all arguments, all Function procedures, and all Property Get procedures is Variant.

Wenn Sie einen Buchstabenbereich angeben, wird in der Regel der Datentyp für Variablen definiert, die mit Buchstaben in den ersten 128 Zeichen des Zeichensatzesbeginnen.When you specify a letter range, it usually defines the data type for variables that begin with letters in the first 128 characters of the character set. Wenn Sie jedoch den Buchstabenbereich A–Z angeben, legen Sie für alle Variablen den Standardwert auf den angegebenen Datentyp fest, einschließlich Variablen, die mit internationalen Zeichen aus dem erweiterten Teil des Zeichensatzes beginnen (128–255).However, when you specify the letter range A–Z, you set the default to the specified data type for all variables, including variables that begin with international characters from the extended part of the character set (128–255).

Nachdem der Bereich A-Z angegeben wurde, können Sie keine Unterbereiche von Variablen mithilfe von DEF__ -Typanweisungen erneut definieren.After the range A-Z has been specified, you can't further redefine any subranges of variables by using Deftype statements. Nachdem ein Bereich angegeben wurde, tritt ein Fehler auf, wenn Sie einen zuvor definierten Buchstaben in eine andere DEF-Typ -Anweisung einfügen.After a range has been specified, if you include a previously defined letter in another Deftype statement, an error occurs. Sie können den Datentyp aller Variablen explizit angeben, definiert oder nicht, indem Sie eine Dim -Anweisung mit einer As Type -Klausel verwenden.However, you can explicitly specify the data type of any variable, defined or not, by using a Dim statement with an As type clause.

Beispielsweise können Sie den folgenden Code auf Modulebene verwenden, um eine Variable als Double zu definieren, obwohl der Standarddatentyp Integerist.For example, you can use the following code at the module level to define a variable as a Double even though the default data type is Integer.

DefInt A-Z
Dim TaxRate As Double

Deftype-Anweisungen wirken sich nicht auf Elemente mit benutzerdefinierten Typen aus, weil die Elemente explizit deklariert werden müssen.Deftype statements don't affect elements of user-defined types because the elements must be explicitly declared.

Siehe auchSee also

Support und FeedbackSupport and feedback

Haben Sie Fragen oder Feedback zu Office VBA oder zu dieser Dokumentation?Have questions or feedback about Office VBA or this documentation? Unter Office VBA-Support und Feedback finden Sie Hilfestellung zu den Möglichkeiten, wie Sie Support erhalten und Feedback abgeben können.Please see Office VBA support and feedback for guidance about the ways you can receive support and provide feedback.