Программирование на 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




Используемая литература:

Практическая работа в VBA: Учебное пособие/ Липецкий Государственный технический университет, Липецк, 2001. – 98с.