Учебное пособие: Программирование на VBA
Министерство образования и науки российской федерации
Государственное образовательное учреждение
высшего профессионального образования
«Липецкий государственный технический университет»
(ЛГТУ)
Экономический факультет
Кафедра экономики
Отчет
по курсу «Офисное программирование»
на тему: ПРОГРАММИРОВАНИЕ НА VBA
ВЫПОЛНИЛ: студент гр. ЭМ-09-1
Морозов М. О.
_________________
подпись, дата
ПРОВЕРИЛ: Кудинов Ю. И.
_________________
подпись, дата
Липецк 2010
Задание №1
С помощью окна InputBox введите три числа и в окне MsgBoxвыведите наибольшее из них.
Sub Макрос1()
Число1 = CInt(InputBox(«Введите число»))
Число2 = CInt(InputBox(«Введите число»))
Число3 = CInt(InputBox(«Введите число»))
'ищем максимум
максимум = Число1
If максимум < Число2 Then
максимум = Число2
End If
If максимум < Число3 Then
максимум = Число3
End If
MsgBox «Наибольшее число из введенных: » & максимум
End Sub
Задание №11
Подсчитайте произведение элементов двумерного массива.
Sub Макрос11()
Dim Vals(10, 5) As Integer
'заполним массив случайными числами (кроме нуля)
For i = 0 To 10
For j = 0 To 5
Vals(i, j) = Int(10 * Rnd()) + 1
Next
Next
'посчитаем произведение элементов массива
p = 1
For i = 0 To 10
For j = 0 To 5
p = p * Vals(i, j)
Next
Next
'выведем полученное произведение
MsgBox «Произведение элементов массива равно: » & p
End Sub
Задание №23
Создайте макрос с кнопкой запуска, позволяющий строить график <x,y> по данным, находящимся в ячейках А1: А10 (значения х) и В1: В10 (значения y).
Sub Макрос23()
ActiveSheet.Shapes.AddChart.Select
ActiveChart.ChartType = xlLine
ActiveChart.SetSourceData Source:=Range(«A1:A10»)
ActiveChart.SeriesCollection(1).XValues = "='Лист1'!$B$1:$B$10"
End Sub
Sub Макрос4()
'
' Макрос4 Макрос
'
'
ActiveCell.Offset(-11, 2).Range(«A1»).Select
ActiveSheet.Shapes.AddChart.Select
ActiveChart.ChartType = xlLine
ActiveChart.SetSourceData Source:=ActiveCell.Offset(-5, -4).Range(«A1:A10»)
ActiveChart.SeriesCollection(1).XValues = "='Лист1'!$B$1:$B$10"
End Sub
Задание №33
На основании условия задачи 31 выполните математические операции, используя вместо кнопок соответствующие переключатели: Сложение, Вычитание, Умножение, Деление.
Private Sub cmb_Change()
Select Case cmb.Value
Case «Сложение»
Range(«D8»).Value = Range(«A8»).Value + Range(«B8»).Value
Case «Вычитание»
Range(«D8»).Value = Range(«A8»).Value — Range(«B8»).Value
Case «Умножение»
Range(«D8»).Value = Range(«A8»).Value * Range(«B8»).Value
Case «Деление»
Range(«D8»).Value = Range(«A8»).Value / Range(«B8»).Value
End Select
End Sub
Private Sub cmb_KeyUp(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
If KeyCode = vbKeyReturn Then
cmb.Clear
cmb.AddItem «Сложение»
cmb.AddItem «Вычитание»
cmb.AddItem «Умножение»
cmb.AddItem «Деление»
End If
End Sub
Задание №44
Составьте в VBAтаблицу МАГАЗИНЫ примините к ней формат Простой.
Sub Макрос44()
'
' Макрос44 Макрос
Range(«A1»).Activate
'ActiveCell.Range(«A1»).Select
ActiveCell.FormulaR1C1 = «Магазин»
ActiveCell.Offset(0, 1).Range(«A1»).Select
ActiveCell.FormulaR1C1 = «Вид»
ActiveCell.Offset(0, 1).Range(«A1»).Select
ActiveCell.FormulaR1C1 = «Январь»
ActiveCell.Offset(0, 1).Range(«A1»).Select
ActiveCell.FormulaR1C1 = «Февраль»
ActiveCell.Offset(0, 1).Range(«A1»).Select
ActiveCell.FormulaR1C1 = «Март»
ActiveCell.Offset(0, 1).Range(«A1»).Select
ActiveCell.FormulaR1C1 = «Апрель»
ActiveCell.Offset(0, 1).Range(«A1»).Select
ActiveCell.FormulaR1C1 = «Итого»
ActiveCell.Offset(1, -6).Range(«A1»).Select
ActiveCell.FormulaR1C1 = «МИРАЖ»
ActiveCell.Offset(1, 0).Range(«A1»).Select
ActiveCell.FormulaR1C1 = «СУВЕНИР»
ActiveCell.Offset(1, 0).Range(«A1»).Select
ActiveCell.FormulaR1C1 = «ПРЕСТИЖ»
ActiveCell.Offset(1, 0).Range(«A1»).Select
ActiveCell.FormulaR1C1 = «ДОМОВОЙ»
ActiveCell.Offset(1, 0).Range(«A1»).Select
ActiveCell.FormulaR1C1 = «ЮНИОН»
ActiveCell.Offset(1, 0).Range(«A1»).Select
ActiveCell.FormulaR1C1 = «МОДА»
ActiveCell.Offset(-5, 1).Range(«A1»).Select
ActiveCell.FormulaR1C1 = «М»
ActiveCell.Offset(1, 0).Range(«A1»).Select
ActiveCell.FormulaR1C1 = «А»
ActiveCell.Offset(1, 0).Range(«A1»).Select
ActiveCell.FormulaR1C1 = «М»
ActiveCell.Offset(1, 0).Range(«A1»).Select
ActiveCell.FormulaR1C1 = «А»
ActiveCell.Offset(1, 0).Range(«A1»).Select
ActiveCell.FormulaR1C1 = «М»
ActiveCell.Offset(1, 0).Range(«A1»).Select
ActiveCell.FormulaR1C1 = «А»
ActiveCell.Offset(-5, 1).Range(«A1»).Select
ActiveCell.FormulaR1C1 = «15345»
ActiveCell.Offset(1, 0).Range(«A1»).Select
ActiveCell.FormulaR1C1 = «13440»
ActiveCell.Offset(1, 0).Range(«A1»).Select
ActiveCell.FormulaR1C1 = «16890»
ActiveCell.Offset(1, 0).Range(«A1»).Select
ActiveCell.FormulaR1C1 = «14840»
ActiveCell.Offset(1, 0).Range(«A1»).Select
ActiveCell.FormulaR1C1 = «13985»
ActiveCell.Offset(1, 0).Range(«A1»).Select
ActiveCell.FormulaR1C1 = «17345»
ActiveCell.Offset(-5, 1).Range(«A1»).Select
ActiveCell.FormulaR1C1 = «16725»
ActiveCell.Offset(1, 0).Range(«A1»).Select
ActiveCell.FormulaR1C1 = «15540»
ActiveCell.Offset(1, 0).Range(«A1»).Select
ActiveCell.FormulaR1C1 = «15730»
ActiveCell.Offset(1, 0).Range(«A1»).Select
ActiveCell.FormulaR1C1 = «16320»
ActiveCell.Offset(1, 0).Range(«A1»).Select
ActiveCell.FormulaR1C1 = «15565»
ActiveCell.Offset(1, 0).Range(«A1»).Select
ActiveCell.FormulaR1C1 = «14255»
ActiveCell.Offset(-5, 1).Range(«A1»).Select
ActiveCell.FormulaR1C1 = «17340»
ActiveCell.Offset(1, 0).Range(«A1»).Select
ActiveCell.FormulaR1C1 = «14455»
ActiveCell.Offset(1, 0).Range(«A1»).Select
ActiveCell.FormulaR1C1 = «17220»
ActiveCell.Offset(1, 0).Range(«A1»).Select
ActiveCell.FormulaR1C1 = «15330»
ActiveCell.Offset(1, 0).Range(«A1»).Select
ActiveCell.FormulaR1C1 = «16775»
ActiveCell.Offset(1, 0).Range(«A1»).Select
ActiveCell.FormulaR1C1 = «15660»
ActiveCell.Offset(-5, 1).Range(«A1»).Select
ActiveCell.FormulaR1C1 = «14990»
ActiveCell.Offset(1, 0).Range(«A1»).Select
ActiveCell.FormulaR1C1 = «16385»
ActiveCell.Offset(1, 0).Range(«A1»).Select
ActiveCell.FormulaR1C1 = «15700»
ActiveCell.Offset(1, 0).Range(«A1»).Select
ActiveCell.FormulaR1C1 = «16125»
ActiveCell.Offset(1, 0).Range(«A1»).Select
ActiveCell.FormulaR1C1 = «13355»
ActiveCell.Offset(1, 0).Range(«A1»).Select
ActiveCell.FormulaR1C1 = «13480»
ActiveCell.Offset(0, 1).Range(«A1»).Select
ActiveCell.Offset(0, -6).Columns(«A:A»).EntireColumn.EntireColumn.AutoFit
ActiveCell.Offset(0, -6).Columns(«A:A»).EntireColumn.ColumnWidth = 10.57
ActiveCell.Offset(1, -6).Range(«A1:B1»).Select
With Selection
.HorizontalAlignment = xlGeneral
.VerticalAlignment = xlBottom
.WrapText = False
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
End With
ActiveCell.Offset(-7, 0).Range(«A1:G8»).Select
'ActiveCell.Offset(-7, 6).Range(«A1»).Activate
With Selection
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlBottom
.WrapText = False
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
End With
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
With Selection.Borders(xlEdgeLeft)
.LineStyle = xlContinuous
.ColorIndex = xlAutomatic
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlEdgeTop)
.LineStyle = xlContinuous
.ColorIndex = xlAutomatic
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.ColorIndex = xlAutomatic
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlEdgeRight)
.LineStyle = xlContinuous
.ColorIndex = xlAutomatic
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlInsideVertical)
.LineStyle = xlContinuous
.ColorIndex = xlAutomatic
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlInsideHorizontal)
.LineStyle = xlContinuous
.ColorIndex = xlAutomatic
.TintAndShade = 0
.Weight = xlThin
End With
ActiveCell.Range(«A8»).Select
ActiveCell.FormulaR1C1 = «Итого»
ActiveCell.Range(«A1:B1»).Select
ActiveWindow.SmallScroll Down:=-3
ActiveCell.Offset(-7, 0).Range(«A1:G8»).Select
ActiveSheet.ListObjects.Add(xlSrcRange, Range("$A$1:$G$8"),, xlYes).Name = _
«Таблица3»
ActiveCell.Range(«A1:G8»).Select
ActiveSheet.ListObjects(«Таблица3»).TableStyle = «TableStyleLight8»
ActiveCell.Columns(«A:A»).EntireColumn.EntireColumn.AutoFit
ActiveCell.Offset(0, 1).Columns(«A:A»).EntireColumn.EntireColumn.AutoFit
ActiveCell.Offset(0, 2).Columns(«A:A»).EntireColumn.EntireColumn.AutoFit
ActiveCell.Offset(0, 3).Columns(«A:A»).EntireColumn.EntireColumn.AutoFit
ActiveCell.Offset(0, 4).Columns(«A:A»).EntireColumn.EntireColumn.AutoFit
ActiveCell.Offset(0, 5).Columns(«A:A»).EntireColumn.EntireColumn.AutoFit
ActiveCell.Offset(0, 6).Columns(«A:A»).EntireColumn.EntireColumn.AutoFit
ActiveCell.Offset(8, 0).Range(«A1»).Select
End Sub
Используемая литература:
1. Практическая работа в VBA: Учебное пособие/ Липецкий Государственный технический университет, Липецк, 2001. – 98с.