Private (Visual Basic)

Specifies that one or more declared programming elements are accessible only from within their declaration context, including from within any contained types.


If a programming element represents proprietary functionality, or contains confidential data, you usually want to limit access to it as strictly as possible. You achieve the maximum limitation by allowing only the module, class, or structure that defines it to access it. To limit access to an element in this way, you can declare it with Private.


  • Declaration Context. You can use Private only at module level. This means the declaration context for a Private element must be a module, class, or structure, and cannot be a source file, namespace, interface, or procedure.


  • Access Level. All code within a declaration context can access its Private elements. This includes code within a contained type, such as a nested class or an assignment expression in an enumeration. No code outside of the declaration context can access its Private elements.

  • Access Modifiers. The keywords that specify access level are called access modifiers. For a comparison of the access modifiers, see Access Levels in Visual Basic.

The Private modifier can be used in these contexts:

Class Statement

Const Statement

Declare Statement

Delegate Statement

Dim Statement

Enum Statement

Event Statement

Function Statement

Interface Statement

Property Statement

Structure Statement

Sub Statement

See Also


Access Levels in Visual Basic

Procedures in Visual Basic


Public (Visual Basic)

Protected (Visual Basic)

Friend (Visual Basic)

Other Resources

Structures: Your Own Data Types

Understanding Classes