View Single Post
  #1   Report Post  
Posted to microsoft.public.excel.programming
Chip Pearson Chip Pearson is offline
external usenet poster
 
Posts: 7,247
Default Passing Module to subroutine

The VBA help file
for the topic "Referring to Sheets by Index Number" says that
the Sheets
collection, includes modules


The modules in this case are code module sheets, which was where
VBA was written prior to Excel 97 which provided a proper editor
with code components. The modules referred to there are NOT the
same as a VBA code modules. If you want to pass a VBA code
module, use code like the following:

Sub AAA()
BBB VBComp:=ThisWorkbook.VBProject.VBComponents("Modul e1")
End Sub


Sub BBB(VBComp As VBIDE.VBComponent)
If VBComp.Type < vbext_ct_StdModule Then
Exit Sub
End If
End Sub

Note: You'll need a reference to the Microsoft Visual Basic For
Applications Extensibility Library for this to work.

For further reference, see http://www.cpearson.com/excel/vbe.htm
and http://www.cpearson.com/excel/codemods.htm


--
Cordially,
Chip Pearson
Microsoft MVP - Excel
Pearson Software Consulting, LLC
www.cpearson.com



--
Cordially,
Chip Pearson
Microsoft MVP - Excel
Pearson Software Consulting, LLC
www.cpearson.com





"SixSigmaGuy" wrote in
message
...
I'm trying to pass a Module object (if it is an object) to a
routine, but I'm
having no luck. If I type it as an object, it gives me a ByRef
error.
Everythign else I tried results in an even worse error. The
VBA help file
for the topic "Referring to Sheets by Index Number" says that
the Sheets
collection, includes modules ("If you want to work with all
types of sheets
(worksheets, charts, modules, and dialog sheets), use the
Sheets property.")
should work, but when I walk though the Sheets collection, all
I get are
worksheets. Anyone know how I can pass a module object to a
subroutine?