Class Module

Group

Declaration

Description

A class module implements an ActiveX Automation object.

  • Has a set of Public procedures accessible from other macros and modules.
  • These public symbols are accessed via an object variable.
  • Public Consts, Types, arrays, fixed length strings are not allowed.
  • A class module is similar to a object module except that no instance is automatically created.
  • To create an instance use:

    Dim
    Obj As classname
    Set
    Obj = New classname
  • Can optionally contain Attributes one of which must be VB_Name.

See Also: Attribute Definition/Statement, Code Module, Object Module, Uses.

Example

'MyCommands macro
'#Uses "File.CLS"

Sub Main
       Dim File As New File
       File.Attach "C:\AUTOEXEC.BAT"
       Debug.Print File.ReadLine
End Sub



'File.CLS class file
VERSION 1.0 CLASS
BEGIN
    MultiUse = -1 'True
END
Attribute VB_Name = "File"
Option Explicit

Dim FN As Integer

Public Sub Attach(FileName As String)
       FN = FreeFile
       Open FileName For Input As #FN
End Sub

Public Sub Detach()
       If FN <> 0 Then Close #FN
       FN = 0
End Sub

Public Function ReadLine() As String
       Line Input #FN,ReadLine
End Function

Private Sub Class_Initialize()
       Debug.Print "Class_Initialize"
End Sub

Private Sub Class_Terminate()
       
Debug
.Print "Class_Terminate"
       Detach
End Sub