Разработка приложений на языке VBA в среде MS EXCEL по обработке данных для заданных объектов

For j = 1 To m

A(i, j) = 0

Next j

Next i

Sheet2.Visible = xlSheetHidden

Sheet3.Visible = xlSheetHidden

End Sub

Sub InitS()

For i = 1 To m + 2

For j = 1 To m

ActiveSheet.Cells(i + 2, j) = ""

Next j

Next i

End Sub

Sub Button3_Click() ' ОК

n = Sheet2.Range("R2")

Open "C:file1" For Output As #1

Write #1, n

For i = 1 To n

For j = 1 To n

If Sheet2.Cells(i + 3, j) = "" Then

A(i, j) = 0

Else

A(i, j) = Sheet2.Cells(i + 3, j)

End If

Write #1, A(i, j)

Next j

Next i

Close #1

MsgBox ("Матрица A записана в файл file1")

Call InitS

Sheet2.Visible = xlSheetVisible

Sheet1.Activate

Call Init

End Sub

Sub Button4_Click() ' Отмена

Sheet2.Visible = xlSheetVisible

Call InitS

Sheet1.Activate

Call Init

End Sub

Sub Button5_Click()

Call InitS

Sheet3.Visible = xlSheetVisible

Sheet1.Activate

Call Init

End Sub

Sub OutA() ' Вывод результата на экран

For i = 1 To n

For j = 1 To n

Sheet4.Cells(i + 3, j) = A(i, j)

Next j

Next i

MsgBox

End Sub


Sub getA() ' ввод матрицы из файла

For i = 1 To n

For j = 1 To n

If Sheet3.Visible = xlSheetHidden Then

MsgBox ("Введите матрицу А из файла")

Else

If Sheet3.Cells(i + 3, j) = "" Then

A(i, j) = 0 ' заполнение матрицы с клавиатуры

Else

A(i, j) = Sheet3.Cells(i + 3, j)

End If

End If

Next j

Next i

End Sub

Создание кнопок ОК, ОТМЕНА, заполнение матрицы в файл, а также вывод результатов на экран.


И, наконец, с помощью функции rab, мы проделываем все виды обработки.


Sub rab1(n As Variant)

Call getA

Sheet4.Activate

Call InitS

Sheet4.Range("H3") = "Среднее значение элементов по строкам"

Sheet4.Range("G4") = "Строка"

Sheet4.Range("I4") = "Xcp"

For i = 1 To n

s = 0

Sheet4.Cells(i + 4, 7) = i

For j = 1 To n

s = s + A(i, j)

Next j

s = s / n

Sheet4.Cells(i + 4, 9) = s

Next i

End Sub

Sub rab2(n As Variant)

Call getA

Sheet4.Activate

Call InitS

Sheet4.Range("H3") = "Среднее значение элементов по столбцу"

Sheet4.Range("G4") = "Столбец"

Sheet4.Range("I4") = "Xcp"

For j = 1 To n

s = 0

Sheet4.Cells(j + 4, 7) = j

For i = 1 To n

s = s + A(i, j)

Next i

s = s / n

Sheet4.Cells(j + 4, 9) = s

Next j

End Sub

Sub rab3(n As Variant)

Call getA

Sheet4.Activate

Call InitS

Sheet4.Range("H3") = " Min элементы в строках"

Sheet4.Range("G4") = "Строка"

Sheet4.Range("I4") = "Min"

For i = 1 To n

x = A(i, 1) 'min

Sheet4.Cells(i + 4, 7) = i

For j = 2 To n

If x > A(i, j) Then

x = A(i, j)

End If

Next j

Sheet4.Cells(i + 4, 9) = x

Next i

End Sub

Sub rab4(n As Variant)

Call getA

Sheet4.Activate

Call InitS

Sheet4.Range("H3") = "Min элементы по столбцам"

Sheet4.Range("G4") = "Столбец"

Sheet4.Range("I4") = "Min"

For j = 1 To n

x = A(1, j) 'min

Sheet4.Cells(j + 4, 7) = j

For i = 2 To n

If x > A(i, j) Then

x = A(i, j)

End If

Next i

Sheet4.Cells(j + 4, 9) = x

Next j

End Sub

Sub rab5(n As Variant)

Call getA

Sheet4.Activate

Call InitS

Sheet4.Range("H3") = "Max элементы по строкам"

Sheet4.Range("G4") = "Строка"

Sheet4.Range("H4") = "Max"

For i = 1 To n

s = A(i, 1) 'max

Sheet4.Cells(i + 4, 7) = i

For j = 2 To n

If s < A(i, j) Then

s = A(i, j)

End If

Next j

Sheet4.Cells(i + 4, 9) = s

Next i

End Sub


Sub rab6(n As Variant)

Call getA

Sheet4.Activate

Call InitS

Sheet4.Range("H3") = "Max элементы по

столбцам"

Sheet4.Range("G4") = "Столбец"

Sheet4.Range("H4") = "Max"

For j = 1 To n

s = A(1, j) 'max

Sheet4.Cells(j + 4, 7) = j

For i = 2 To n

If s < A(i, j) Then

s = A(i, j)

End If

Next i

Sheet4.Cells(j + 4, 9) = s

Next j

End Sub


Список использованной литературы

  • А.Васильев, А.Андреев. VBA в Office 2000. Учебный курс. С-Пб.: "Питер", 2001

  • Биллиг В.А. Средства разработки VBA-программиста. Офисное программирование. Том 1. М.: Издательско-торговый дом "Русская Редакция", 2001.

  • Биллиг В.А. Мир объектов Excel 2000. М.: Издательско-торговый дом "Русская Редакция", 2001.

  • В.И.Король. Visual Basic 6.0, Visual Basic for Applications 6.0. Язык программирования. Справочник с примерами. М.: Издательство КУДИЦ, 2000.


23