What you need is a Public Property(read only) which can be accessed from anywhere in the program and a Private Field which only has the scope inside the module itself. Here is an example
Module myModule
Private something As String 'This here is a Field
'Below is the code for a read-only property
Public Property SomethingWhichIsReadOnly As String
'SomethingWhichIsReadOnly can be used from anywhere
Get
Return something
End Get
End Property
Public Function SomeFunction(ByVal value as Integer) As Boolean
...
'You can use "something"(String Field declared above) in functions
'Which can be accessed and modified only from the module itself
End Function
End Module
Further if you want to make a Public Property which can be read and written as well, then use
Public Property SomethingWhichIsReadOnly As String
Get
Return something
End Get
Private Set(ByVal value As String)
something = value 'Setting the value to the Private Field
End Set
End Property