5.3 Module Code Section Structure

 

 procedural-module-code-section = *( LINE-START  procedural-module-code-element LINE-END) 
 class-module-code-section = *( LINE-START  class-module-code-element LINE-END) 
  
 procedural-module-code-element = common-module-code-element  
 class-module-code-element = common-module-code-element / implements-directive 
  
 common-module-code-element = rem-statement / procedure-declaration 
  
 procedure-declaration = subroutine-declaration / function-declaration /        property-get-declaration / property-LHS-declaration 

There are several syntactic forms used to define procedures within the VBA Language. In some contexts of this specification it is necessary to refer to various kinds of declarations. The following table defines the kinds of declarations used in this specification and which grammar productions. If a checkmark appears in a cell, the kind of declaration defined in that column can refer to a declaration defined by that row’s grammar production.

Grammar Rule

Procedure Declaration

Method

Declaration

Property Declaration

Subroutine Declaration

Function Declaration

<subroutine-declaration>

√

√

 

√

 

<function-declaration>

√

√

 

 

√

<external-sub>

√

 

 

√

 

<external-function>

√

 

 

 

√

<property-get-declaration>

√

√

√

 

√

<property-lhs-declaration>

√

√

√

√