Министерство образования и науки российской федерации
Государственное образовательное учреждение
высшего профессионального образования
«Липецкий государственный технический университет»
(ЛГТУ)
Экономический факультет
Кафедра экономики
по курсу «Офисное программирование»
на тему: ПРОГРАММИРОВАНИЕ НА VBA
Морозов М. О.
_________________
подпись, дата
ПРОВЕРИЛ: Кудинов Ю. И.
_________________
подпись, дата
Липецк 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с.