diff --git a/runtime/indent/testdir/vb.in b/runtime/indent/testdir/vb.in
new file mode 100644
index 0000000..1653ae6
--- /dev/null
+++ b/runtime/indent/testdir/vb.in
@@ -0,0 +1,134 @@
+' vim: filetype=vb shiftwidth=4 expandtab
+'
+' START_INDENT
+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)
+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
+' and therefore do not form a valid multiline statement.  The indent
+' script correctly treats them as four single line statements contrary
+' to the author's obvious indent.
+rng..Cells(1,1).Value = _ 
+"Line 1 of multiline string; " & _ 
+"Line 2 of multiline string; " & _ 
+"Line 3 of multiline string"
+
+End Sub
+
+Private Sub TestStmtLabel()
+GoTo stmtLabel
+
+' Statement labels are never indented
+stmtLabel:
+
+End Sub
+
+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
+' END_INDENT
diff --git a/runtime/indent/testdir/vb.ok b/runtime/indent/testdir/vb.ok
new file mode 100644
index 0000000..143c688
--- /dev/null
+++ b/runtime/indent/testdir/vb.ok
@@ -0,0 +1,134 @@
+' vim: filetype=vb shiftwidth=4 expandtab
+'
+' START_INDENT
+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)
+    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
+    ' and therefore do not form a valid multiline statement.  The indent
+    ' script correctly treats them as four single line statements contrary
+    ' to the author's obvious indent.
+    rng..Cells(1,1).Value = _ 
+    "Line 1 of multiline string; " & _ 
+    "Line 2 of multiline string; " & _ 
+    "Line 3 of multiline string"
+
+End Sub
+
+Private Sub TestStmtLabel()
+    GoTo stmtLabel
+
+    ' Statement labels are never indented
+stmtLabel:
+
+End Sub
+
+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
+' END_INDENT
