| ' vim: filetype=vb shiftwidth=4 expandtab |
| ' |
| ' START_INDENT |
| #Const Debug = False |
| |
| #If Win64 Then |
| ' Win64=true, Win32=true, Win16=false |
| #ElseIf Win32 Then |
| ' Win32=true, Win16=false |
| #Else |
| ' Win16=true |
| #End If |
| |
| Public Type GEmployeeRecord ' Create user-defined type. |
| ID As Integer ' Define elements of data type. |
| Name As String * 20 |
| Address As String * 30 |
| Phone As Long |
| HireDate As Date |
| End Type |
| |
| Public Enum InterfaceColors |
| icMistyRose = &HE1E4FF& |
| icSlateGray = &H908070& |
| icDodgerBlue = &HFF901E& |
| icDeepSkyBlue = &HFFBF00& |
| icSpringGreen = &H7FFF00& |
| icForestGreen = &H228B22& |
| icGoldenrod = &H20A5DA& |
| icFirebrick = &H2222B2& |
| End Enum |
| |
| Enum SecurityLevel |
| IllegalEntry = -1 |
| SecurityLevel1 = 0 |
| SecurityLevel2 = 1 |
| End Enum |
| |
| Public Function TestConditional (number As Integer, ext As String) As Boolean |
| Dim inRange As Boolean |
| |
| Select Case number |
| Case <= 0 |
| inRange = False |
| Case > 10 |
| inRange = False |
| Case Else |
| inRange = True |
| End Select |
| |
| ' This is a special case identified in the indent script. |
| Select Case number |
| End Select |
| |
| If ext = ".xlm" Then |
| If inRange Then |
| TestConditional = True |
| Else |
| TestConditional = False |
| End If |
| ElseIf ext = ".xlsx" Then |
| If inRange Then |
| TestConditional = False |
| Else |
| TestConditional = True |
| End If |
| Else |
| TestConditional = False |
| End If |
| End Function |
| |
| Private Sub TestIterators (lLimit As Integer, uLimit As Integer) |
| Dim a() As Variant |
| Dim elmt As Variant |
| Dim found As Boolean |
| Dim indx As Integer |
| Const specialValue As Integer = 5 |
| |
| If uLimit < lLimit Then |
| Exit Sub |
| End If |
| |
| ReDim a(lLimit To uLimit) |
| For indx=lLimit To Ulimit |
| a(indx) = 2 * indx |
| Next indx |
| |
| found = False |
| For Each elmt in a |
| If elmt = specialValue Then |
| found = True |
| End If |
| Next elmt |
| |
| If found then |
| indx = uLimit |
| Do While indx >= lLimit |
| indx = indx - 1 |
| Loop |
| End If |
| |
| End Sub |
| |
| Public Sub TestMultiline (cellAddr As String, rowNbr As Long) |
| Dim rng As Range |
| |
| Set rng = Range(cellAddr) |
| |
| ' Line continuation is implemented as a two-character sequence- |
| ' whitespace followed by underscore. |
| With rng |
| .Cells(1,1).Value = _ |
| "Line 1 of multiline string; " & _ |
| "Line 2 of multiline string; " & _ |
| "Line 3 of multiline string" |
| End With |
| |
| ' This code block omits the leading whitespace character and so |
| ' the trailing underscore will not be treated as line continuation. |
| With rng |
| .Cells(1,1).Value =_ |
| "Line 1 of multiline string; " &_ |
| "Line 2 of multiline string; " &_ |
| "Line 3 of multiline string" |
| End With |
| |
| ' The following lines have whitespace after the underscore character. |
| ' This is contrary to Microsoft documentation but it is reported that |
| ' some Microsoft editors allow it and will still treat the statement |
| ' as line-continued. |
| With rng |
| rng.Cells(1,1).Value = _ |
| "Line 1 of multiline string; " & _ |
| "Line 2 of multiline string; " & _ |
| "Line 3 of multiline string" |
| End With |
| |
| End Sub |
| |
| Private Sub TestStmtLabel() |
| GoTo stmtLabel |
| |
| ' Statement labels are never indented |
| stmtLabel: |
| |
| End Sub |
| |
| Public Static Function TestStatic(addend As Integer) |
| Dim Integer accumulator |
| accumulator = accumulator + addend |
| TestStatic = accumulator |
| End Function |
| |
| Friend Function TestFriend(addend As Integer) |
| Static Integer accumulator |
| accumulator = accumulator + addend |
| TestFriend = accumulator |
| End Function |
| |
| Sub TestTypeKeyword() |
| Type EmployeeRecord ' Create user-defined type. |
| ID As Integer ' Define elements of data type. |
| Name As String * 20 |
| Address As String * 30 |
| Phone As Long |
| HireDate As Date |
| End Type |
| Dim varType As EmployeeRecord |
| End Sub |
| |
| Sub TestDateLiteralAfterLineContinuation |
| Dim birthday as Date |
| birthday = _ |
| #January 1, 1901# |
| End Sub |
| ' END_INDENT |