Programming Excel with VBA and .NET by Jeff Webb, Steve Saunders The unconfirmed error reports are from readers. They have not yet been approved or disproved by the author or editor and represent solely the opinion of the reader. Here's a key to the markup: [page-number]: serious technical mistake {page-number}: minor technical mistake : important language/formatting problem (page-number): language change or minor formatting problem ?page-number?: reader question or request for clarification This page was updated July 17, 2008. UNCONFIRMED errors and comments from readers: (N/A) In the files: Samples_VBA.zip; Several pieces of sample code invoke "Sheet1.cmdViewCode_Click" to show the Visual Basic Editor. However, in the samples file that I downloaded (in early July 2006) there is no module labeled "Sheet1". Changing the references to "Start.cmdViewCode_Click" appears to fix the problem and show the VBE correctly. {8} code at bottom (macro name); Sub Macro1() should be: Sub Macro1a() and Macro1 Macro should be: Macro1a Macro {42} last Public Sub procedure; Public Sub CubeRoot2(... should be: Public Sub GetCubeRoot2(... and I think that will be fine to add a new version of the Sub TestGetCubeRoot2(), like this: Sub TestGetCubeRoot2() Dim x As Double Dim result As Double x = 42 GetCubeRoot2 x, result Debug.Print result End Sub [69] third paragraph; "...but UBound returns the number of elements in the array, not the maximum index of the array..." This is false. The use and explanation of arrays (pp 59-62) contain a number of misleading examples. But the above statement is just plain wrong. For example, an array A(4), given Base 0, has five elements (0,1,2,3,4), and a UBound of 4. An array A(4 To 8) has five elements (4,5,6,7,8), and a Ubound of 8. {92} 2nd paragraph; "You should use the Double data type when measuring performance" - Timer returns a Single datatype, so surely a Single data type would suffice? {152}Section 5.3 Create Properties; In code example of Property Let Recipients(value As String) the statement: If Mid(value, Len(value) -1, 1) = ";" Then should be If Mid(value, Len(value), 1) = ";" (169)5.6 Collect Object, sub TestInitializeCollection( ); There's a typo in the subroutine, was Set colMessages = New Messages should be Set m_Messages = New Messages {947} Figure 25-10; In Figure 25-10 "Microsoft Office 11.0 Object Library" is highlighted to show how to add reference to Microsoft Excel Object Library. This should be "Microsoft Excel 11.0 Object Library".