Задание 1 В книге Excel "Данные к тесту VBA", размещенной в учебных материалах к модулю, составьте функцию VBA с именем Fun9, которая в заданном диапазоне Листа Excel вычисляет количество четных чисел диапазона. Заголовок функции, который должен иметь вид: Function fun9(A As Variant), уже создан в модуле 1, необходимо только записать тело процедуры. На листе 1 книги выполните функцию и полученное в ячейке B12 значение введите в ответ теста.
Решение:
Public Function fun9(a As Variant) As Double
Dim s As Double, i As Variant
s = 0
For Each i In a
If i Mod 2 = 0 Then s = s + 1
Next i
fun9 = s
End Function
Ответ: 7
Если нужно посчитать сумму, то нужно заменить If i Mod 2 = 0 Then s = s + 1 на If i Mod 2 = 0 Then s = s + i
Задание 2 В книге Excel "Данные к тесту VBA", размещенной в учебных материалах к модулю, составьте подпрограмму VBA с именем Proc1, которая в диапазоне K1:L4 активного Листа Excel находит наименьшее число. Результат процедура должна вернуть в ячейку B14. Заголовок процедуры, который должен иметь вид: Procedure Proc1(), уже создан в модуле 2, необходимо только записать тело процедуры. На листе 1 книги выполните подрограмму и полученное в ячейке B14 значение введите в ответ теста.
Решение:
Public Sub Proc1() Dim a As Range, i As Variant, s As Double
Set a = Range("K1:L4")
Min = a(1, 1)
For Each i In a
If i < Min Then Min = i
Next i
Cells(14, 2).Value = Min
End Sub
Ответ: -2
Источник: http://ffre.ru//merotrmerqasqas.html
Задание 3 В книге Excel "Данные к тесту VBA", размещенной в учебных материалах к модулю, составьте подпрограмму VBA с именем Proc2, которая в выделенном диапазоне активного Листа Excel вычисляет количество четных положительных чисел. Результат процедура должна вернуть в ячейку B15. Заголовок процедуры, который должен иметь вид: Procedure Proc2(), уже создан в модуле 2, необходимо только записать тело процедуры. На листе 1 книги выполните подрограмму и полученное в ячейке B15 значение введите в ответ теста.
Решение: Public Sub Proc2() Dim a As Range, i As Variant, s As Double
Set a = Selection
s = 0
For Each i In a
If i Mod 2 = 0 And i > 0
Then s = s + 1
Next i
Cells(15, 2).Value = s
End Sub
Ответ: 7
Источник: http://ffre.ru//merotrmerqasqas.html
Задание 4_1 В книге Excel "Данные к тесту VBA", размещенной в учебных материалах к модулю, составьте функцию VBA с именем Fun10, которая в заданном диапазоне активного Листа Excel вычисляет сумму чисел, оканчивающихся на К. Заголовок функции, который должен иметь вид: Function fun10(A As Variant, K), уже создан в модуле 1, необходимо только записать тело процедуры. На листе 1 книги выполните функцию и полученное в ячейке B13 значение введите в ответ теста.
Решение:
Public Function fun10(a As Variant, k As Double)
s = 0
For Each x In a
If i abs(x) mod 10=k then s=s+x
Next
fun10 = s
End Function
Ответ: 5
Задание 4 В книге Excel "Данные к тесту VBA", размещенной в учебных материалах к модулю, составьте функцию VBA с именем Fun10, которая в заданном диапазоне активного Листа Excel вычисляет сумму чисел, кратных заданному числу К. Заголовок функции, который должен иметь вид: Function fun10(A As Variant, K), уже создан в модуле 1, необходимо только записать тело процедуры. На листе 1 книги выполните функцию и полученное в ячейке B13 значение введите в ответ теста.
Решение:
Public Function fun10(a As Variant, k As Double)
Dim s As Double, i As Variant
s = 0
For Each i In a
If i Mod k = 0 Then s = s + i
Next i
fun10 = s
End Function
Ответ: 5
Источник: http://ffre.ru//merotrmerqasqas.html
Задание 5 В книге Excel "Данные к тесту VBA", размещенной в учебных материалах к модулю, составьте функцию VBA с именем Fun9, которая в заданном диапазоне Листа Excel вычисляет сумму положительных чисел диапазона. Заголовок функции, который должен иметь вид: Function fun9(A As Variant), уже создан в модуле 1, необходимо только записать тело процедуры. На листе 1 книги выполните функцию и полученное в ячейке B12 значение введите в ответ теста.
Решение:
Public Function fun9(a As Variant) As Double
Dim s As Double, i As Variant
s = 0
For Each i In a If i > 0 Then
s = s + i
Next i
fun9 = s
End Function
Ответ:25
Источник: http://ffre.ru//merotrmerqasqas.html
Задание 7 В книге Excel "Данные к тесту VBA", размещенной в учебных материалах к модулю, составьте подпрограмму VBA с именем Proc2, которая в выделенном диапазоне активного Листа Excel вычисляет сумму четных отрицательных чисел. Результат процедура должна вернуть в ячейку B15. Заголовок процедуры, который должен иметь вид: Procedure Proc2(), уже создан в модуле 2, необходимо только записать тело процедуры. На листе 1 книги выполните подрограмму и полученное в ячейке B15 значение введите в ответ теста
. Решение:
Public Sub Proc2()
Dim a As Range, i As Variant, s As Double
Set a = Selection
s = 0
For Each i In a
If i Mod 2 = 0 And i < 0 Then
s = s + i
Next i
Cells(15, 2).Value = s
End Sub
Ответ: -6
Источник: http://ffre.ru//merotrmerqasqas.html
Задание 8: В книге Excel "Данные к тесту VBA", размещенной в учебных материалах к модулю, составьте функцию VBA с именем Fun9, которая в заданном диапазоне Листа Excel вычисляет количество положительных чисел диапазона. Заголовок функции, который должен иметь вид: Function fun9(A As Variant), уже создан в модуле 1, необходимо только записать тело процедуры. На листе 1 книги выполните функцию и полученное в ячейке B12 значение введите в ответ теста.
Решение:
Public Function fun9(a As Variant) As Double
Dim s As Double, i As Variant
s = 0
For Each i In a If i > 0 Then
s = s + 1
Next i
fun9 = s
End Function
Ответ: 8
Источник: http://ffre.ru//merotrmerqasqas.html
Задание 9: В книге Excel "Данные к тесту VBA", размещенной в учебных материалах к модулю, составьте подпрограмму VBA с именем Proc1, которая в диапазоне K1:N4 активного Листа Excel вычисляет сумму отрицательных чисел. Результат процедура должна вернуть в ячейку B14. Заголовок процедуры, который должен иметь вид: Procedure Proc1(), уже создан в модуле 2, необходимо только записать тело процедуры. На листе 1 книги выполните подрограмму и полученное в ячейке B14 значение введите в ответ теста.
Решение:
Public Sub Proc1()
Dim a As Range, i As Variant, s As Double
Set a = Range("K1:N4")
s = 0
For Each i In a If i < 0 Then
s = s + i
Next i
Cells(14, 2).Value = s
End Sub
Ответ: -6
Источник: http://ffre.ru//merotrmerqasqas.html
Задание 10: В книге Excel "Данные к тесту VBA", размещенной в учебных материалах к модулю, составьте подпрограмму VBA с именем Proc2, которая в выделенном диапазоне активного Листа Excel находит наибольшее число. Результат процедура должна вернуть в ячейку B15. Заголовок процедуры, который должен иметь вид: Procedure Proc2(), уже создан в модуле 2, необходимо только записать тело процедуры. На листе 1 книги выполните подрограмму и полученное в ячейке B15 значение введите в ответ теста.
Решение:
Public Sub Proc2()
Dim a As Range, i As Variant, s As Double
Set a = Selection
Max = a(1, 1)
For Each i In a If i > Max Then
Max = i
Next i
Cells(15, 2).Value = Max
End Sub
Ответ: 140
Источник: http://ffre.ru//merotrmerqasqas.html
Задание 1,2 В книге Excel "Данные к тесту VBA", размещенной в учебных материалах к модулю, доработайте пользовательскую форму VBA с именем UserForm2 (уже создана), которая на интервале от M до N находит сумму простых чисел. Результат должен быть получен в текстовом поле TextBox3 (Результат). Имена полей, форм и кнопок изменять не надо. Требуется только написать операторы в тело процедуры кнопки Выполнить, уже созданой в форме UserForm2. На листе 1 книги выполните форму UserForm2 и полученное в ячейке B19 значение введите в ответ теста.
Решение:
Открываем Userform2, 2 раза щёлкаем по кнопке Выполнить
Сначала пишем прогу для простых чисел
Public Function prostoe(ByVal n As Long) As Boolean
Dim i As Long
prostoe = True
If n > 1 Then
For i = 2 To Sqr(n)
If n Mod i = 0 Then
prostoe = False
Exit For
End If
Next i
Else
prostoe = False
End If
End Function
Потом пишем форму
Private Sub CommandButton1_Click()
m = Val(TextBox1.Text)
n = Val(TextBox2.Text)
Dim i As Long, s As Double
s = 0
For i = m To n
If prostoe(i) = True Then
s = s + i
Next i
TextBox3.Text = Format(s)
End Sub
Нажимаем выполнить UserForm2 и, в появившемся окне, нажимаем на выполнить
Ответ: Сумма простых : 72
Если нужно найти количество , то вместо этого If prostoe(i) = True Then s = s + i, пишем If prostoe(i) = True Then s = s + 1
Ответ: Количество : 6
Источник: http://ffre.ru//merotrmerqasqas.html
Задание 3,4. В книге Excel "Данные к тесту VBA", размещенной в учебных материалах к модулю, доработайте пользовательскую форму VBA с именем UserForm1 (уже создана), которая среди трех заданых в форме чисел A, B, C , задающих коэффициенты квадратного уравнения, находит сумму корней уравнения. Если корней не существует, возвращает сово "нет". Результат должен быть получен в текстовом поле TextBox4 (Результат). Имена полей, форм и кнопок изменять не надо. Требуется только написать операторы в тело процедуры кнопки Выполнить, уже созданой в форме UserForm1. На листе 1 книги выполните форму UserForm1 и полученное в ячейке B18 значение введите в ответ теста.
Решение:
Private Sub CommandButton1_Click()
a = Val(TextBox1.Text)
b = Val(TextBox2.Text)
c = Val(TextBox3.Text)
Dim d As Double, x1 As Double, x2 As Double, s As Double
d = b ^ 2 - 4 * a * c If d >= 0 Then
x1 = (-b + Sqr(d)) / (2 * a)
x2 = (-b - Sqr(d)) / (2 * a)
s = x1 + x2
TextBox4.Text = Format(s)
Else
TextBox4.Text = "Нет"
End If
End Sub
Ответ: 8
Если произведение корней, то вместо этого s = x1 + x2, пишем s = x1 * x2
Ответ: 15
Источник: http://ffre.ru//merotrmerqasqas.html
Задание 2 В книге Excel "Данные к тесту VBA" из учебных материалов к модулю, составьте функцию VBA в модуле 1 с именем fun5_1, которая вычисляет сумму S=1-2^3+3^3-...-n^3. Заголовок функции, который должен иметь вид: Function fun5_1(n), уже создан в модуле 1, необходимо только записать тело процедуры. На листе 1 книги выполните функцию и полученное в ячейке B8 значение введите в ответ теста.
Решение:
Public Function fun5_1(N As Integer)
Dim s As Double Dim i As Integer Dim z As Integer
s = 0 z = 1
For i = 1 To N
s = s + z * (i ^ 3)
z = -z
Next i
fun5_1 = s
End Function
Источник: http://ffre.ru//merotrmerqasqas.html
Задание: В книге Excel "Данные к тесту VBA" из учебных материалов к модулю, составьте функцию VBA в модуле 1 с именем fun8_1, которая подсчитывает количество русских букв "а" и "е" в заданом тексте S. Заголовок функции, который должен иметь вид: Function fun8_1(S As String), уже создан в модуле 1, необходимо только записать тело процедуры. На листе 1 книги выполните функцию и полученное в ячейке B11 значение введите в ответ теста.
Решение:
Public Function fun8_1(s As String)
Dim i As Integer Dim p As Integer
p = 0
For i = 1 To Len(s)
If Mid(s, i, 1) = "a" Then
p = p + 1
ElseIf Mid(s, i, 1) = "e" Then
p = p + 1
End If
Next i
fun8_1 = p
End Function
Источник: http://ffre.ru//merotrmerqasqas.html
Задание: В книге Excel "Данные к тесту VBA" из учебных материалов к модулю, составьте функцию VBA с именем fun3_1 для нахождения из трех произвольных чисел A, B, C суммы двух найбольших чисел. Заголовок функции, который должен иметь вид: Function fun3_1(a,b,c), уже создан в модуле 1, необходимо только записать тело процедуры.
На листе 1 книги выполните функцию и полученное в ячейке B6 значение введите в ответ теста.
Решение:
Public Function fun3_1(a, b, c)
If a < b Then
fun3_1 = c + b
Else If b < c Then
fun3_1 = c + a
Else
fun3_1 = b + a
End If
End If
End Function
Источник: http://ffre.ru//merotrmerqasqas.html
Задание: В книге Excel "Данные к тесту VBA", размещенной в учебных материалах к модулю, составьте подпрограмму VBA с именем Proc1, которая в диапазоне L1:R4 активного Листа Excel находит наибольшее число. Результат процедура должна вернуть в ячейку B14. Заголовок процедуры, который должен иметь вид: Procedure Proc1(), уже создан в модуле 2, необходимо только записать тело процедуры. На листе 1 книги выполните подрограмму и полученное в ячейке B14 значение введите в ответ теста.
Решение:
Public Sub Proc1()
Dim a As Range, i As Variant, s As Double
Set a = Range("L1:R4")
Max = a(1, 1)
For Each i In a
If i > Max Then
Max = i
Next i
Cells(14, 2).Value = Max
End Sub
Источник: http://ffre.ru//merotrmerqasqas.html
Задание: В книге Excel "Данные к тесту VBA", размещенной в учебных материалах к модулю, доработайте пользовательскую форму VBA с именем UserForm2 (уже создана), которая на отрезке [m+20;n] находит сумму простых чисел. Результат должен быть получен в текстовом поле TextBox3 (Результат). Имена полей, форм и кнопок изменять не надо. Требуется только написать операторы в тело процедуры кнопки Выполнить, уже созданой в форме UserForm2. На листе 1 книги выполните форму UserForm2 и полученное в ячейке B19 значение введите в ответ теста.
Решение:
Private Sub CommandButton1_Click()
M = Val(TextBox1.Text) + 20
N = Val(TextBox2.Text)
Dim i As Long, s As Double
s = 0
For i = M To N
If prostoe(i) = True Then
s = s + i
Next i
TextBox3.Text = Format(s)
End Sub
Private Sub CommandButton2_Click()
UserForm2.Hide
End Sub
Public Function prostoe(ByVal N As Long) As Boolean
Dim i As Long
prostoe = True
If N > 1 Then
For i = 2 To Sqr(N)
If N Mod i = 0 Then
prostoe = False
Exit For
End If
Next i
Else
prostoe = False
End If
End Function
Источник: http://ffre.ru//merotrmerqasqas.html
Задание: В книге Excel "Данные к тесту VBA" из учебных материалов к модулю, составьте функцию VBA в модуле 1 с именем fun7_1, которая вычисляет количество простых чисел на отрезке [10..N]. Заголовок функции, который должен иметь вид: Function fun7_1(n), уже создан в модуле 1, необходимо только записать тело процедуры. На листе 1 книги выполните функцию и полученное в ячейке B10 значение введите в ответ теста.
Решение:
Public Function fun7_1(n As Long)
Dim s As Long
Dim i As Long
Dim str As String
s = 0
str = 0
For i = 10 To n
For j = 1 To i
If i Mod j = 0 Then
s = s + 1
End If
Next j
If s = 2 Then
str = str + 1
s = 0
Next i f
un7_1 = str
End Function