In many cases, you want programming elements such as classes and structures to be used by the entire assembly, not only by the component that declares them. However, you might not want them to be accessible by code outside the assembly, for example if the application is proprietary. If you want to limit access to an element in this way, you can declare it with Friend.
Friend access is often the preferred level for an application's programming elements. Note that the access level of an interface, module, class, or structure defaults to Friend if you do not declare it otherwise.
The Friend 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
Module Statement
Property Statement
Structure Statement
Sub Statement