Object (data type)




A data type used to declare OLE automation variables.


The Object type is used to declare variables that reference objects within an application using OLE automation.

Each object is a 4-byte (32-bit) value that references the object internally. The value 0 (or Nothing) indicates that the variable does not reference a valid object, as is the case when the object has not yet been given a value. Accessing properties or methods of such Object variables generates a runtime error.


Using Objects

Object variables are declared using the Dim, Public, or Private statement:

  Dim MyApp As Object

Object variables can be assigned values (thereby referencing a real physical object) using the Set statement:

  Set MyApp = CreateObject("phantom.application")
  Set MyApp = Nothing

Properties of an Object are accessed using the dot (.) separator:

  MyApp.Color = 10
  i% = MyApp.Color

Methods of an Object are also accessed using the dot (.) separator:

  MyApp.Open "sample.txt"
  isSuccess = MyApp.Save("new.txt",15)


Automatic Destruction

The Basic Control Engine keeps track of the number of variables that reference a given object so that the object can be destroyed when there are no longer any references to it:

  Sub Main()               'Number of references to object

    Dim a As Object                 '0

    Dim b As Object                 '0

    Set a = CreateObject("phantom.application)  '1

    Set b = a                        '2

    Set a = Nothing                  '1

  End Sub                            '0 (object destroyed)


An OLE automation object is instructed by the Basic Control Engine to destroy itself when no variables reference that object. However, it is the responsibility of the OLE automation server to destroy it. Some servers do not destroy their objects—usually when the objects have a visual component and can be destroyed manually by the user.

See Also

Currency (data type); Date (data type); Double (data type); Integer (data type); Long (data type); Single (data type); String (data type); Variant (data type); Boolean (data type); DefType (statement).

More information