'=========================================================
'==            Visual Basic Sample Code From            ==
'==     Microsoft Excel/Visual Basic for Windows 95     ==
'==                  Programmer's Guide                 ==
'==                      Chapter 12                     ==
'=========================================================

' DISCLAIMER OF WARRANTY

' THIS FILE CONTAINS UNDOCUMENTED SAMPLE CODE. THIS SAMPLE CODE IS 
' PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND. MICROSOFT FURTHER
' DISCLAIMS ALL IMPLIED WARRANTIES INCLUDING WITHOUT LIMITATION ANY
' IMPLIED WARRANTIES OF MERCHANTABILITY OR OF FITNESS FOR A PARTICULAR
' PURPOSE. THE ENTIRE RISK ARISING OUT OF THE USE OR PERFORMANCE OF THE
' SAMPLE CODE REMAINS WITH YOU.

' IN NO EVENT SHALL MICROSOFT OR ITS SUPPLIERS BE LIABLE FOR ANY DAMAGES
' WHATSOEVER (INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF
' BUSINESS PROFITS, BUSINESS INTERRUPTION, LOSS OF BUSINESS INFORMATION,
' OR OTHER PECUNIARY LOSS) ARISING OUT OF THE USE OF OR INABILITY TO USE
' THIS SAMPLE CODE, EVEN IF MICROSOFT HAS BEEN ADVISED OF THE POSSIBILITY
' OF SUCH DAMAGES. BECAUSE SOME STATES DO NOT ALLOW THE EXCLUSION OR
' LIMITATION OF LIABILITY FOR CONSEQUENTIAL OR INCIDENTAL DAMAGES, THE
' ABOVE LIMITATION MAY NOT APPLY TO YOU.






'=========================================================
'==                 From Pages 222-223                  ==
'=========================================================

Sub AddinSub()
	Dim x, y As Integer
	On Error GoTo ErrHandler
	' Notice the line number in the following statement
10  For x = 1 To 10
		For y = 1 To 10
			If x = 7 And y = 7 Then
				ThisWorkbook.Worksheets("Sheet" & x * y).Cells(1, 1) = 5
			End If
		Next y
	Next x
	' Here's another line number . . .
50  ' Do some more stuff
	' Exit sub before running error handler
Exit Sub
ErrHandler:
	' This statement prints the error information
	Debug.Print "Error " & Err & " " & Error(Err) & _
		" in line no. " & Erl
	' This line prints the values of two variables of interest
	Debug.Print "x ="; x; Chr(13); "y ="; y
End Sub

'-------------------------------------------------

Sub dbg()
	AddinSub
End Sub





'=========================================================
'==                    From Page 224                    ==
'=========================================================

Sub Test1()
    ' Bad code
    DialogSheets("myDialog").Show
    Worksheets("AddinSheet").Range("A1") = _
        DialogSheets("myDialog").EditBoxes(1).Text
End Sub

'-------------------------------------------------

Sub Test2()
    ' Good code
    With ThisWorkbook
        .DialogSheets("myDialog").Show
        .Worksheets("AddinSheet").Range("A1") = _
            .DialogSheets("myDialog").EditBoxes(1).Text
    End With
End Sub

'-------------------------------------------------

Sub Test3()
    ' Good code
    Set tw = ThisWorkbook
    Set myDialog = tw.DialogSheets("myDialog")
    Set AddinSheet = tw.Worksheets("AddinSheet")
    myDialog.Show
    AddinSheet.Range("A1") = myDialog.EditBoxes(1).Text
End Sub





'=========================================================
'==                    From Page 225                    ==
'=========================================================

Sub AnothertTest1()
    ' Bad code
    Set tw = ThisWorkbook
    Set AddinSheet = tw.Worksheets("Sheet1")
    AddinSheet.UsedRange.Sort key1:=Range("A1")
End Sub

'-------------------------------------------------

Sub AnotherTest2()
    ' Good code
    Set tw = ThisWorkbook
    Set AddinSheet = tw.Worksheets("Sheet1")
    AddinSheet.UsedRange.Sort key1:=AddinSheet.Range("A1")
End Sub





'=========================================================
'==                    From Page 226                    ==
'=========================================================

Sub ConvertRefs()
	For Each sh In ActiveWorkbook.Sheets
		If TypeName(sh) <> "Module" Then
			For Each b In sh.Buttons
				mystr = b.OnAction
				strpos = InStr(mystr, ".xls")
				If strpos <> 0 Then
					l = Len(mystr)
					b.OnAction = Left$(mystr, strpos - 1) & _
						".xla" & Right$(mystr, l - strpos - 3)
				End If
			Next b
		End If
	Next sh
End Sub


