Введение в программирование на VBA - eDrive
Введение в программирование на VBA - eDrive Введение в программирование на VBA - eDrive
50 If остаток > 0 Then доля (0) = доля (0) + 1 If остаток > 1 Then доля (1) = доля (1) + 1 MsgBox введено & "=" & доля (0) & "+" & доля (1) & "+" & доля (2) End Sub Dim память As Integer Sub Счетчик () Dim массив (10) As Integer, Индекс As Integer память = 0 For индекс = 0 To 10 Step 2 массив (индекс) = индекс MsgBox Вывод (массив (), индекс) Next End Sub Function Вывод (аргумент1 () As Integer, аргумент2 As Integer) As Integer память = память + аргумент1 (аргумент2) Вывод = память End Function Если размер массива заранее неизвестен, его можно объявлять без размера, а размер задавать оператором ReDim по мере заполнения массива. В этом случае мы имеем дело с динамическим массивом, который, в отличие от статического, изменяет свой размер по ходу выполнения программы. Всякий раз при переопределении оператором ReDim содержимое массива уничтожается. Если по условию задачи этого не требуется, после ReDim следует ввести оператор Preserve. Тогда массив будет «запоминать» свое содержимое. Примеры Sub Покупки () Dim список () As String, i As Integer, количество As Integer количество = InputBox ("Сколько ") ReDim список (1 To количество) For i = 1 To количество список (i) = InputBox (Str(i) & " - Это что ") Next End Sub Sub ДинамическийМассив () Dim тест () As Integer, индекс As Integer, массив As String For индекс = 10 To 20 ReDim тест (индекс) As Integer тест (индекс) = индекс Next For индекс = 10 To 20 массив = массив & тест (индекс) тест (индекс) = индекс
51 Next MsgBox массив End Sub Sub ДинамическийМассивСПамятью () Dim тест () As Integer, индекс As Integer, массив As String For индекс = 10 To 20 ReDim Preserve тест (индекс) As Integer тест (индекс) = индекс массив = массив & тест (индекс) Next MsgBox массив End Sub Dim счетчик () As Integer Sub Очко () ‘ Популярная игра в очко: вы стараетесь набрать максимум очков, но ‘ не более 21, а компьютер “выбрасывает кубик”. Кроме динамического ‘ массива, здесь вы встретитесь с датчиком случайных чисел Rnd, ‘ с функцией его начальной установки Randomize, и с рекурсией. Static i As Integer ReDim Preserve счетчик (i) As Integer Randomize счетчик (i) = Rnd * 10 ответ = Info (счетчик (), i) i = i + 1 If ответ 0 Then ответ = MsgBox (ответ & " Еще", vbYesNo) If ответ = vbYes Then Очко Else End ' Пример рекурсии End Sub Function Info (список () As Integer, количество As Integer) As Integer Dim сумма As Integer, x As Integer сумма = 0 For x = 0 To количество сумма = сумма + список (x) Next If сумма > 21 Then MsgBox Str (сумма) & " - Вы проиграли!" Info = 0 Else If сумма = 21 Then Beep MsgBox Str (сумма) & " - Вы выиграли!" Info = 0 Else Info = сумма End If End If End Function
- Page 1 and 2: В. М. Водовозов Введ
- Page 3 and 4: Оглавление ИНФОРМА
- Page 5 and 6: 5 Единение знака и з
- Page 7 and 8: 7 клавиатурой и пр.,
- Page 9 and 10: 9 необходимый миним
- Page 11 and 12: 11 регламентируя пр
- Page 13 and 14: 13 правым щелчком по
- Page 15 and 16: 15 Удалить окна диал
- Page 17 and 18: 17 Для документиров
- Page 19 and 20: 19 Макрокоманда Имя
- Page 21 and 22: 21 языка Basic, утвержд
- Page 23 and 24: 23 • модули классов,
- Page 25 and 26: 25 конфигурацию кот
- Page 27 and 28: 27 Оператор Определ
- Page 29 and 30: 29 Функция Определе
- Page 31 and 32: 31 вызова ей передаю
- Page 33 and 34: 33 Переменные и авто
- Page 35 and 36: 35 Call Вызов Call Вызов
- Page 37 and 38: 37 Для ввода информа
- Page 39 and 40: 39 • условные опера
- Page 41 and 42: 41 после Then лексемы,
- Page 43 and 44: 43 Традиционный опе
- Page 45 and 46: 45 Выражение […] Loop Un
- Page 47 and 48: 47 Тип данных, обозн
- Page 49: 49 MsgBox "НОД= " & a End Sub С
- Page 53 and 54: 53 .процессор = "Pentium"
- Page 55 and 56: 55 Sub СвойстваФормы (
- Page 57 and 58: 57 объектов. Перетас
- Page 59 and 60: 59 .Enabled = False End With UserFo
- Page 61 and 62: 61 MsgBox "Введите четы
- Page 63 and 64: 63 Sub CommandButton1_Click () Comb
50<br />
If остаток > 0 Then доля (0) = доля (0) + 1<br />
If остаток > 1 Then доля (1) = доля (1) + 1<br />
MsgBox <strong>в</strong><strong>в</strong>едено & "=" & доля (0) & "+" & доля (1) & "+" & доля (2)<br />
End Sub<br />
Dim память As Integer<br />
Sub Счетчик ()<br />
Dim масси<strong>в</strong> (10) As Integer, Индекс As Integer<br />
память = 0<br />
For индекс = 0 To 10 Step 2<br />
масси<strong>в</strong> (индекс) = индекс<br />
MsgBox Вы<strong>в</strong>од (масси<strong>в</strong> (), индекс)<br />
Next<br />
End Sub<br />
Function Вы<strong>в</strong>од (аргумент1 () As Integer, аргумент2 As Integer) As Integer<br />
память = память + аргумент1 (аргумент2)<br />
Вы<strong>в</strong>од = память<br />
End Function<br />
Если размер масси<strong>в</strong>а заранее неиз<strong>в</strong>естен, его можно объя<strong>в</strong>лять без<br />
размера, а размер зада<strong>в</strong>ать оператором ReDim по мере заполнения масси<strong>в</strong>а. В<br />
этом случае мы имеем дело с ди<strong>на</strong>мическим масси<strong>в</strong>ом, который, <strong>в</strong> отличие от<br />
статического, изменяет с<strong>в</strong>ой размер по ходу <strong>в</strong>ыполнения программы.<br />
Всякий раз при переопределении оператором ReDim содержимое<br />
масси<strong>в</strong>а уничтожается. Если по усло<strong>в</strong>ию задачи этого не требуется, после<br />
ReDim следует <strong>в</strong><strong>в</strong>ести оператор Preserve. Тогда масси<strong>в</strong> будет «запоми<strong>на</strong>ть»<br />
с<strong>в</strong>ое содержимое.<br />
Примеры<br />
Sub Покупки ()<br />
Dim список () As String, i As Integer, количест<strong>в</strong>о As Integer<br />
количест<strong>в</strong>о = InputBox ("Сколько ")<br />
ReDim список (1 To количест<strong>в</strong>о)<br />
For i = 1 To количест<strong>в</strong>о<br />
список (i) = InputBox (Str(i) & " - Это что ")<br />
Next<br />
End Sub<br />
Sub Ди<strong>на</strong>мическийМасси<strong>в</strong> ()<br />
Dim тест () As Integer, индекс As Integer, масси<strong>в</strong> As String<br />
For индекс = 10 To 20<br />
ReDim тест (индекс) As Integer<br />
тест (индекс) = индекс<br />
Next<br />
For индекс = 10 To 20<br />
масси<strong>в</strong> = масси<strong>в</strong> & тест (индекс)<br />
тест (индекс) = индекс