'== (c) by Valery V Shmeleff  Moscow/Russia  www.oflameron.ru ==
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
'Обработка нажатия клавиш «стрелка вправо» и «стрелка влево»
            If (GetAsyncKeyState(vbKeyLeft)) Then
                ' Кнопка влево
                Form1.Caption = "Left"
                Move_Point_Left  'Переместить маркер влево
            ElseIf (GetAsyncKeyState(vbKeyRight)) Then
                ' Кнопка вправо
                Form1.Caption = "Right"
                Move_Point_Right  'Переместить маркер вправо
            End If

End Sub

Private Sub Move_Point_Left()
If markersave = 0 Then  'Если самая левая ячейка нижней строки
    markersave = 7         'Левее самой левой ячейки – самая ПРАВАЯ (циклический переход)
    firstset = 0                'Временно разрешить рисование маркера
    Label7.BackColor = savecolor(0) 'Восстановить цвет фона ячейки, где БЫЛ маркер
    Label14_Click           'Переместить маркер (самая правая ячейка!)
    vt = markersave
    markersave = 10        'Запретить ложные срабатывания (значение 10 не соответствует
                                       ‘никакой ячейке)
End If

If markersave = 1 Then
    markersave = 0         'Поместить левее
    firstset = 0                'Временно разрешить рисование маркера
    Label8.BackColor = savecolor(1) 'Восстановить цвет ячейки, где БЫЛ маркер
    Label7_Click           'Переместить маркер
    vt = markersave
    markersave = 10        'Запретить ложные срабатывания (значение 10 не соответствует
                                       ‘никакой ячейке)
End If

If markersave = 2 Then
    markersave = 1         'Поместить левее
    firstset = 0                'Временно разрешить рисование маркера
    Label9.BackColor = savecolor(2) 'Восстановить цвет ячейки, где БЫЛ маркер
    Label8_Click           'Переместить маркер
    vt = markersave
    markersave = 10        'Запретить ложные срабатывания (значение 10 не соответствует
                                       ‘никакой ячейке)
End If

If markersave = 3 Then
    markersave = 2         'Поместить левее
    firstset = 0                'Временно разрешить рисование маркера
    Label10.BackColor = savecolor(3) 'Восстановить цвет ячейки, где БЫЛ маркер
    Label9_Click           'Переместить маркер
    vt = markersave
    markersave = 10        'Запретить ложные срабатывания (значение 10 не соответствует 
                                       ‘никакой ячейке)
End If

If markersave = 4 Then
    markersave = 3         'Поместить левее
    firstset = 0                'Временно разрешить рисование маркера
    Label11.BackColor = savecolor(4) 'Восстановить цвет ячейки, где БЫЛ маркер
    Label10_Click           'Переместить маркер
    vt = markersave
    markersave = 10        'Запретить ложные срабатывания (значение 10 не соответствует
                                       ‘никакой ячейке)
End If

If markersave = 5 Then
    markersave = 4         'Поместить левее
    firstset = 0                'Временно разрешить рисование маркера
    Label12.BackColor = savecolor(5) 'Восстановить цвет ячейки, где БЫЛ маркер
    Label11_Click           'Переместить маркер
    vt = markersave
    markersave = 10        'Запретить ложные срабатывания (значение 10 не соответствует
                                      ‘никакой ячейке)
End If

If markersave = 6 Then
    markersave = 5         ''Поместить левее
    firstset = 0                'Временно разрешить рисование маркера
    Label13.BackColor = savecolor(6) 'Восстановить цвет ячейки, где БЫЛ маркер
    Label12_Click           'Переместить маркер
    vt = markersave
    markersave = 10        'Запретить ложные срабатывания (значение 10 не соответствует
                                      ‘никакой ячейке)
End If

If markersave = 7 Then
    markersave = 6         'Поместить левее
    firstset = 0                'Временно разрешить рисование маркера
    Label14.BackColor = savecolor(7) 'Восстановить цвет ячейки, где БЫЛ маркер
    Label13_Click           'Переместить маркер
    vt = markersave
    markersave = 10        'Запретить ложные срабатывания (значение 10 не соответствует
                                       ‘никакой ячейке)
End If

markersave = vt
n = 0
Set_Marker_Count

End Sub
Private Sub Move_Point_Right()
If markersave = 0 Then  'Если самая левая ячейка
    markersave = 1         'Переместить правее (т.к. значение > на 1)
    firstset = 0                'Временно разрешить рисование маркера
    Label7.BackColor = savecolor(0) 'Восстановить цвет ячейки, где БЫЛ маркер
    Label8_Click           'Переместить маркер
    vt = markersave
    markersave = 10        'Запретить ложные срабатывания (значение 10 не соответствует
                                       ‘никакой ячейке)
End If

If markersave = 1 Then
    markersave = 2         'Переместить правее (т.к. значение > на 1)
    firstset = 0                'Временно разрешить рисование маркера
    Label8.BackColor = savecolor(1) 'Восстановить цвет ячейки, где БЫЛ маркер
    Label9_Click           'Переместить маркер
    vt = markersave
    markersave = 10        'Запретить ложные срабатывания (значение 10 не соответствует
                                      ‘никакой ячейке)
End If

If markersave = 2 Then
    markersave = 3         'Переместить правее (т.к. значение > на 1)
    firstset = 0                'Временно разрешить рисование маркера
    Label9.BackColor = savecolor(2) 'Восстановить цвет ячейки, где БЫЛ маркер
    Label10_Click           'Переместить маркер
    vt = markersave
    markersave = 10        'Запретить ложные срабатывания (значение 10 не соответствует
                                      ‘никакой ячейке)
End If

If markersave = 3 Then
    markersave = 4         'Переместить правее (т.к. значение > на 1)
    firstset = 0                'Временно разрешить рисование маркера
    Label10.BackColor = savecolor(3) 'Восстановить цвет ячейки, где БЫЛ маркер
    Label11_Click           'Переместить маркер
    vt = markersave
    markersave = 10        'Запретить ложные срабатывания (значение 10 не соответствует
                                      ‘никакой ячейке)
End If

If markersave = 4 Then
    markersave = 5         'Переместить правее (т.к. значение > на 1)
    firstset = 0                'Временно разрешить рисование маркера
    Label11.BackColor = savecolor(4) 'Восстановить цвет ячейки, где БЫЛ маркер
    Label12_Click           'Переместить маркер
    vt = markersave
    markersave = 10        'Запретить ложные срабатывания (значение 10 не соответствует
                                       ‘никакой ячейке)
End If

If markersave = 5 Then
    markersave = 6         'Переместить правее (т.к. значение > на 1)
    firstset = 0                'Временно разрешить рисование маркера
    Label12.BackColor = savecolor(5) 'Восстановить цвет ячейки, где БЫЛ маркер
    Label13_Click           'Переместить маркер
    vt = markersave
    markersave = 10        'Запретить ложные срабатывания (значение 10 не соответствует
                                      ‘никакой ячейке)
End If

If markersave = 6 Then
    markersave = 7         'Переместить правее (т.к. значение > на 1)
    firstset = 0                'Временно разрешить рисование маркера
    Label13.BackColor = savecolor(6) 'Восстановить цвет ячейки, где БЫЛ маркер
    Label14_Click           'Переместить маркер
    vt = markersave
    markersave = 10        'Запретить ложные срабатывания (значение 10 не соответствует
                                       ‘никакой ячейке)
End If

If markersave = 7 Then
    markersave = 0         'Переместить правее (т.к. значение > на 1)
    firstset = 0                'Временно разрешить рисование маркера
    Label14.BackColor = savecolor(7) 'Восстановить цвет ячейки, где БЫЛ маркер
    Label7_Click           'Переместить маркер
    vt = markersave
    markersave = 10        'Запретить ложные срабатывания (значение 10 не соответствует 
                                      ‘никакой ячейке)
End If


markersave = vt
n = 0
Set_Marker_Count

End Sub

    Source: geocities.com/oflameron