Public-AnweisungPublic statement

Wird auf Modulebene verwendet, um öffentliche Variablen zu deklarieren und Speicherplatz zuzuweisen.Used at the module level to declare public variables and allocate storage space.

SyntaxSyntax

Öffentliche [ WithEvents ] varname [([ tiefgestellte Zeichen])] [ As [ New ] Type ]Public [ WithEvents ] varname [ ( [ subscripts ] ) ] [ As [ New ] type ]
[, [ WithEvents ] varname [([ tiefgestellte Zeichen])] [ As [ New ] Type ]] . . .[ , [ WithEvents ] varname [ ( [ subscripts ] ) ] [ As [ New ] type ]] . . .


Die Syntax der Public-Anweisung umfasst die folgenden Teile:The Public statement syntax has these parts:

TeilPart BeschreibungDescription
WithEventsWithEvents Optional.Optional. Schlüsselwort , das angibt, dass varname eine Objektvariable ist, die verwendet wird, um auf von einem ActiveX-Objektausgelöste Ereignisse zu reagieren.Keyword specifying that varname is an object variable used to respond to events triggered by an ActiveX object. WithEvents ist nur in Klassenmodulen gültig.WithEvents is valid only in class modules. Sie können mit WithEventsbeliebig viele einzelne Variablen deklarieren, aber Sie können keine Arrays mit WithEventserstellen, und Sie können auch nicht New mit WithEventsverwenden.You can declare as many individual variables as you like by using WithEvents, but you can't create arrays with WithEvents, nor can you use New with WithEvents.
varnamevarname Erforderlich.Required. Name der Variable; folgt den Standard-Benennungskonventionen.Name of the variable; follows standard naming conventions.
subscriptssubscripts Optional.Optional. Dimensionen einer Arrayvariablen; es können bis zu 60 Dimensionen deklariert werden.Dimensions of an array variable; up to 60 multiple dimensions may be declared. Das __ Argument Subscripts verwendet die folgende Syntax:The subscripts argument uses the following syntax:

[ lowerTo ] upper [ , [ lowerTo ] upper ] . . .[ lowerTo ] upper [ , [ lowerTo ] upper ] . . .

Wenn sie nicht explizit in lower angegeben ist, wird die Untergrenze eines Arrays durch die Option Base-Anweisung gesteuert.When not explicitly stated in lower, the lower bound of an array is controlled by the Option Base statement. Die Untergrenze ist Null, wenn keine Option Base-Anweisung vorhanden ist.The lower bound is zero if no Option Base statement is present.
NewNew Optional.Optional. Schlüsselwort, das die implizite Erstellung eines Objekts ermöglicht.Keyword that enables implicit creation of an object. Wenn Sie New beim Deklarieren der Objektvariablen verwenden, wird beim ersten Verweis darauf eine neue Instanz des Objekts erstellt. Somit müssen Sie nicht die Set-Anweisung verwenden, um den Objektverweis zuzuweisen.If you use New when declaring the object variable, a new instance of the object is created on first reference to it, so you don't have to use the Set statement to assign the object reference. Das Schlüsselwort New kann nicht zum Deklarieren von Variablen eines System internen Datentyps verwendet werden.The New keyword can't be used to declare variables of any intrinsic data type. Es kann auch nicht verwendet werden, um Instanzen von abhängigen Objekten zu deklarieren, und es kann nicht mit WithEventsverwendet werden.It also can't be used to declare instances of dependent objects, and it can't be used with WithEvents.
typetype Optional.Optional. Der Datentyp der Variablen. Kann Byte, Boolean, Integer, Long, Currency, Single, Double, Decimal (zurzeit nicht unterstützt), Date, String (für Zeichenfolgen mit variabler Länge), String length (für Zeichenfolgen mit fester Länge), Object, Variant, ein benutzerdefinierter Typ oder ein Objekttyp sein.Data type of the variable; may be Byte, Boolean, Integer, Long, Currency, Single, Double, Decimal (not currently supported), Date, String (for variable-length strings), String length (for fixed-length strings), Object, Variant, a user-defined type, or an object type. Verwenden Sie eine separate As Type -Klausel für jede definierte Variable.Use a separate As type clause for each variable being defined.

HinweiseRemarks

Variablen, die mit der Public -Anweisung deklariert werden, stehen für alle Prozeduren in allen Modulen in allen Anwendungen zur Verfügung, es sei denn, Option Private Module ist in Kraft; in diesem Fall sind die Variablen nur innerhalb des Projekts öffentlich, in dem Sie sich befinden.Variables declared by using the Public statement are available to all procedures in all modules in all applications unless Option Private Module is in effect; in which case, the variables are public only within the project in which they reside.

Die Public -Anweisung kann nicht in einem Klassenmodul zum Deklarieren einer Zeichenfolgenvariable mit fester Länge verwendet werden.The Public statement can't be used in a class module to declare a fixed-length string variable.

Verwenden Sie die Public -Anweisung zum Deklarieren des Datentyps einer Variable.Use the Public statement to declare the data type of a variable. Mithilfe der folgenden Anweisung wird beispielsweise eine Variable als Ganzzahl deklariert:For example, the following statement declares a variable as an Integer:

Public NumberOfEmployees As Integer 

Verwenden Sie zudem eine Public -Anweisung zum Deklarieren des Objekttyps einer Variable.Also use a Public statement to declare the object type of a variable. Mit der folgenden Anweisung wird eine Variable für eine neue Instanz eines Arbeitsblatts deklariert:The following statement declares a variable for a new instance of a worksheet:

Public X As New Worksheet 

Wenn das Schlüsselwort New beim Deklarieren einer Objektvariablen nicht verwendet wird, muss der Variablen, die auf das Objekt verweist, mit der Set-Anweisung ein vorhandenes Objekt zugewiesen werden, bevor sie verwendet werden kann.If the New keyword is not used when declaring an object variable, the variable that refers to the object must be assigned an existing object by using the Set statement before it can be used. Bis ein Objekt zugewiesen ist, hat die deklarierte Objektvariable den speziellen Wert Nothing, was darauf hinweist, dass Sie nicht auf eine bestimmte Instanz eines Objekts verweist.Until it is assigned an object, the declared object variable has the special value Nothing, which indicates that it doesn't refer to any particular instance of an object.

Sie können die Public -Anweisung auch mit leeren Klammern verwenden, um ein dynamisches Array zu deklarieren.You can also use the Public statement with empty parentheses to declare a dynamic array. Verwenden Sie nach dem Deklarieren eines dynamischen Arrays die ReDim-Anweisung in einer Prozedur, um die Anzahl der Dimensionen und Elemente in dem Array zu definieren.After declaring a dynamic array, use the ReDim statement within a procedure to define the number of dimensions and elements in the array. Wenn Sie versuchen, eine Dimension für eine Arrayvariable erneut zu deklarieren, deren Größe in einer private-, Public-oder Dim -Anweisung explizit angegeben wurde, tritt ein Fehler auf.If you try to redeclare a dimension for an array variable whose size was explicitly specified in a Private, Public, or Dim statement, an error occurs.

Wenn Sie keinen Datentyp oder Objekttyp angeben und keine Deftype -Anweisung im Modul vorhanden ist, ist die Variable standardmäßig Variant .If you don't specify a data type or object type, and there is no Deftype statement in the module, the variable is Variant by default.

Beim Initialisieren der Variablen werden numerische Variablen als 0, Zeichenfolgen mit variabler Länge als Zeichenfolge der Länge null ("") und Zeichenfolgen mit fester Länge als mit Nullen angefüllte Zeichenfolge initialisiert.When variables are initialized, a numeric variable is initialized to 0, a variable-length string is initialized to a zero-length string (""), and a fixed-length string is filled with zeros. Variant -Variablen werden auf Empty initialisiert.Variant variables are initialized to Empty. Die einzelnen Elemente einer Variable eines benutzerdefinierten Typs werden so initialisiert, als würde es sich um separate Variablen handeln.Each element of a user-defined type variable is initialized as if it were a separate variable.

BeispielExample

In diesem Beispiel wird die Public-Anweisung auf Modulebene (Abschnitt "Allgemein") eines Standardmoduls verwendet, um Variablen explizit als öffentlich zu deklarieren. Demnach sind sie für alle Prozeduren in allen Modulen sämtlicher Anwendungen verfügbar, es sei denn, das optionale private Modul ist aktiviert.This example uses the Public statement at the module level (General section) of a standard module to explicitly declare variables as public; that is, they are available to all procedures in all modules in all applications unless Option Private Module is in effect.

Public Number As Integer ' Public Integer variable. 
Public NameArray(1 To 5) As String ' Public array variable. 
' Multiple declarations, two Variants and one Integer, all Public. 
Public MyVar, YourVar, ThisVar As Integer 

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.