- •Vba в приложении к Excel
- •Создание программ vb для Excel
- •Задача №1 Добавить на лист личные данные, имя файла, дату и отобразить их на экране
- •1.3. Ответ на экране Задача №2 Выделить зону (Ввести начальную и конечную координаты не через Excel, а через vba)
- •2.3. Ответ Задача №3 Разукрасить выделенную зону (выполняется после задачи №2)
- •3.1. Вводим код цвета для раскраски выд. Зоны
- •4.1. Выбираем конечную строку столбца
- •4.2. Выбираем действие для выделенного участка столбца.
- •4.2. Ответ
- •Задача №5 Ввести 2-х мерный массив, в котором главная диагональ менялась на 0.
- •5.1. Вводим определённый элемент массива
- •5.2. Ответ Задача №6 Есть определённое количество товара и машина, которая должна его перевезти за один раз. (Количество, вес груза и грузоподъёмность машины задаём сами!)
- •Задача №7
- •7.1. Вводим число месяца.
- •7.2. Смотрим предыдущую дату (ответ) Задача №8 Ввести дату цифрами, вывести её на экран словами.
- •8.1. Вводим номер месяца
- •8.2. Выводим ответ на экран Задача №9
- •9.1. Вводим номер выбранного нами параметра
- •9.2. Вводим значение выбранного нами параметра
- •9.3. Одно из 4 окон ответа Задача №10 Даны 3 числа. Найти среднее из них (т.Е. Число, расположенное между min и max).
- •10.1. Введём число а
- •10.2. Выводим на экран ответ Задача №11
- •11.1. Вводим число n
- •11.2. Выводим ответ Задача №12 Вывести факториал заданного числа.
- •12.1. Вводим число а
- •12.2. Выводим ответ (Факториал) Задача № 13
- •13.1. Введём наше число, для которого надо найти пред. И послед. Число Фибоначчи.
- •13.2. Выводим ответ. Задача №14 Дан целочисленный массив размера n. Удалить из массива все одинаковые элементы, оставив их первые вхождения. (Array).
- •14.1. Вводим размерность массива
- •14.2. Вводим элемент массива
- •14.3. Выводим ответ на экран.
3.1. Вводим код цвета для раскраски выд. Зоны
3.2. Видим ответ
Задача №4
Ввести номер начальной и конечной строки, номер столбца, с которым вы хотите провести операцию. Решите: хотите Вы пронумеровать выделенный столбец, либо разукрасить ( цвета идут соответственно своему номеру).
Решение.
Для начала нужно определиться сколько у нас будет переменных и за что каждая будет отвечать. Нам нужны переменные X (за начальную строку), У (за конечную строку), S (за букву столбца), kind (определяющая «тип» рас краски), k (за цвет раскраски), i (как диапазон между Х и У) и наконец N (объединяющая в себе и диапазон и «тип» раскраски). Также используем функцию InputBox, чтобы Вы могли ввести свои собственные данные:
Private Sub CommandButton4_Click()
Dim x As Integer
Dim y As String
Dim n As String
Dim i As Integer
Dim k As Integer
Dim s As String
Dim kind As String
x = InputBox(" Введите начальную строку диапазона")
y = InputBox("Введите конечную строку диапазона ")
s = InputBox(" Введите букву столбца")
kind = InputBox(" Введите d-символы или c-цвет")
k = 1
Далее нам нужно задать выбор ( символы или цвета) через оператор If:
If kind = "c" Then
For i = x To y
n = s & i
Range(n).Select
With Selection.Interior
.ColorIndex = k
End With
k = k + 1
Next i
End If
If kind = "d" Then
For i = x To y
n = s & i
Range(n).Value = k
k = k + 1
Next i
End If
End Sub
Задача
решена. Смотрим
4.1. Выбираем конечную строку столбца
4.2. Выбираем действие для выделенного участка столбца.
4.2. Ответ
Задача №5 Ввести 2-х мерный массив, в котором главная диагональ менялась на 0.
Решение.
Как в начале каждой задачи надо решить, сколько будет переменных и какая за что будет отвечать. Во-первых надо ввести массив ( mass(100,100)), далее m – номер столбцов массива, потом n – номер строк массива, I – количество столбцов, j – количество строк , и str – через что мы делаем изменение массива.
Private Sub CommandButton_Click()
Dim mass(100, 100) As Integer
Dim m As Integer
Dim j As Integer
Dim n As Integer
Dim i As Integer
Dim str As String
str = " "
Введя необходимые нам данные, мы задаём нули для главной диагонали матрицы. Все оставшиеся числа матрицы мы оставляем нетронутым полем (vbCrLf – полем).
И в конце выводим ответ через MsgBox, которым и является str.
Задача в целом выглядит вот так:
Private Sub CommandButton11_Click()
Dim mass(100, 100) As Integer
Dim m As Integer
Dim j As Integer
Dim n As Integer
Dim i As Integer
Dim str As String
str = " "
n = CInt(InputBox("Введите количество столбцов n"))
m = CInt(InputBox("Введите количество строк m"))
For i = 1 To m
For j = 1 To n
mass(i, j) = CInt(InputBox("Введите элемент mass(" & i & " ," & j & ")"))
If i = j Then mass(i, j) = 0
str = str & mass(i, j) & " "
Next j
str = str & vbCrLf
Next i
MsgBox (str)
End Sub
Задача решена. Смотрим
5.1. Вводим определённый элемент массива
5.2. Ответ Задача №6 Есть определённое количество товара и машина, которая должна его перевезти за один раз. (Количество, вес груза и грузоподъёмность машины задаём сами!)
Решение.
Для этой задачи нам понадобиться массив (mass (100)), а также такие переменные как n (количество товара в кг.), gruz (грузоподъёмность машины), sum (сумма всего груза) и I (вспомогательная переменная, которая поможет обозначить номера грузов). Чтобы не было осложнений mass, gruz u summ лучше описать, как тип Double (грузоподъёмность может быть и 90 кг, так же как и сумма груза).
Private Sub CommandButton5_Click()
Dim mass(100) As Double
Dim gruz As Double
Dim n As Integer
Dim summ As Double
Dim i As Integer
Далее вводим данные:
n = CInt(InputBox(" Введите число N"))
gruz = CInt(InputBox(" Введите грузоподъёмность машины"))
summ = 0
For i = 1 To n
mass(i) = CDbl(InputBox(" Введите вес " & i & "-го элемента"))
summ = summ + mass(i)
Next i
Далее задаём условие, которое выведет ответ нам на экран:
If summ < gruz Then MsgBox ("Эта машина сможет перенести предметы") Else MsgBox ("Эта машина не сможет перенести предметы")
End Sub
Задача решена. Смотрим
6.1. Вводим грузоподъёмность 6.2. Смотрим ответ
