ськ: Томський міжвузівський центр дистанційної освіти, 2004. - 181с.
Довідкове керівництво по MS Excel і Visual Basic for Applications: Microsoft Corp., 2001.
Демидова Л.А., Пилькін О.М. Програмування в середовищі Visual Basic for Applications : Практикум - М.: Гаряча лінія - Телеком, 2004. - 175с.
Додаток. Лістинг програм VBA
Робоча книга
Dim oldBars (20) As Long, kol As Integer
Private Sub Workbook_Activate ()
kol = 0
Dim bar As CommandBar
For Each bar In Application.CommandBars
If bar.Visible And Not (bar.Protection = msoBarNoChangeVisible) _
And (bar.Type = MsoBarTypeNormal) And Not (bar.Name = "Phones") Then
kol = kol + 1
oldBars (kol) = bar.index
End If
Next bar
For i = 1 To kol
Application.CommandBars (oldBars (i)). Visible = False
Next
If ThisWorkbook.ActiveSheet.Name = "База даних" Then
showTools
End If
End Sub
Private Sub Workbook_Deactivate ()
Dim i As Integer
For i = kol To 1 Step -1
Application.CommandBars (oldBars (i)). Visible = True
Next
hideTools
End Sub
Private Sub Workbook_Open ()
ThisWorkbook.Worksheets ("Старт"). Visible = True 'заховати стартовий лист
ThisWorkbook.Worksheets ("Старт"). Activate 'Зробити активним лист з БД
ThisWorkbook.Worksheets ("База даних"). Visible = False 'показати базу даних
End Sub
Лист1 (Старт)
Private Sub ExitButton_Click ()
ExitProject
End Sub
Private Sub StartButton_Click ()
'Commandbars
ThisWorkbook.Worksheets ("База даних"). Visible = True 'показати базу даних
ThisWorkbook.Worksheets ("База даних"). Activate 'Зробити активним лист з БД
ThisWorkbook.Worksheets ("Старт"). Visible = False 'заховати стартовий лист
End Sub
h2> Лист2 (База даних)
Private Sub Worksheet_Activate ()
showTools
End Sub
Private Sub Worksheet_Deactivate ()
hideTools
End Sub
Sub addRecord ()
If (ActiveCell.row <5) Or (Len (ActiveCell.EntireRow.Cells (, 1). Value) = 0) Then
Range ("A5"). Activate
End If
ThisWorkbook.ActiveSheet.Unprotect
addRowForm.Show vbModal
ThisWorkbook.ActiveSheet.Protect
End Sub
Sub delRecord ()
If (ActiveCell.row <5) Or (Len (ActiveCell.EntireRow.Cells (, 1). Value) = 0) Then
Exit Sub
End If
ThisWorkbook.ActiveSheet.Unprotect
If Selection.Rows.count = 1 Then
delRowForm.Show vbModal
Else
Dim response
response = MsgBox ("Відзначено записів:" + Str (Selection.Rows.count) + Chr (13) + "Видалити все?", VbYesNoCancel, "Увага!")
If response = vbYes Then
Selection.EntireRow.Delete
End If
End If
ThisWorkbook.ActiveSheet...