КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Формы записи алгоритмов. Case vbkey 0: MsBox “Нажали 0”
Loop Do Loop Dim A As Variant End Select Select Case KeyKode Case vbkey 0: MsBox “Нажали 0” Case vbkey 1, vbkey 2: MsBox “Нажали 1 или 2” Case vbkey 3 to vbkey 9, vbkey A to vbkey z: MsBox “Нажали цифру от 3 до 9 или буквенную клавишу” Case Else: MsBox “Нажата не буква и не цифра” End Sub
8.10.5. Операторы повтора Оператор цикла For_Next – это наиболее широко используемый оператор, позволяющий организовать циклический процесс. В этом операторе заранее известно число повторений цикла. Заданы начальное, конечное значения параметра (переменной) цикла и шаг изменения параметра цикла. Он имеет вид: For <переменная цикла> = <начало> То <конец> [Step<шаг>] <блок операторов 1> ‘тело цикла [Exit For] ‘прекращение цикла по внутреннему условию <блок операторов 2> ‘– повторяется определённое число раз Next <переменная цикла> Пример 1: Суммирование элементов массива: A = Array (1, 4, 12, 23, 34, 3, 24) S = 0 For i = LBound (A) to UBound (A) S = S+A(i) Next i Пример 2: Нахождение произведения первых n натуральных чисел. Sub Factor () Const n as Integer=20, Fact as Integer=1 Dim i as Integer For i=1 to n Fact = Fact*i Next i MsgBox Format (Fact, “############”) ‘ Будет выведено 2432902008176640000 End Sub Пример 3: Суммирование элементов выделенного диапазона With Selection n=.Rows.Count m=.Column.Count End With: S=0 For i=1 to n For j=1 to m S=S+selection.Cells(i,j).value Next j Next i with Section.End(xlDown) ‘ Здесь под I столбцом выделенного .offset (1,0).value = “Сумма” ‘диапазона выводится «сумма», .offset (1,1).value = S ‘а в соседней клетке значение S End With Оператор Do _Loop является вторым оператором, позволяющим организовать циклический процесс. Он создаёт логически управляемый цикл. Имеет 4 модификации: а) условие True в начале цикла Do [While <условие>] – выполняется пока условие истинно [<блок операторов>] [Exit Do] [<блок операторов>] б) условие True в конце цикла: [<блок операторов>] [Exit Do] [<блок операторов>] Loop [While <условие>] в) условие False в начале цикла: Do [Until <условие>] – выполняется пока условие [<блок операторов>] не станет истинным [Exit Do] [<блок операторов>] г) условие False в конце цикла: Do [<блок операторов>] [Exit Do] [<блок операторов>] Loop [Until <условие>] Пример 1: Option Explicit Sub Do_Rnd() Dim a As Single: Dim I as Integer Randomize Do While True a = Rnd() Debug.Print a ‘печать случайного числа If a>0.99 Then Exit Do Loop End Sub Пример 2: Последовательное отображение имен файлов с расширением.sys на устройстве С: Файл = Dir (“C:\*.sys”) Do while <Len (Файл) MsBox Файл – Без Exit! Файл = Dir Loop Пример 3: Суммирование всех вводимых чисел. S=0: Do x=InputBox (“Введите число”) If Not IsNumeric (x) then Exit Do S=S+x Loop Пример 4: Код, ожидающий правильного ввода пароля Do: Пароль = InputBox(“Введите пароль”) Loop Until Пароль = “Привет” Следующей разновидностью оператора цикла является оператор While _ Wend. Его невозможно прервать – нет Exit Do.Он имеет следующую конструкцию: While <условие> <блок операторов> Wend Пример: Бросается игральная кость до выпадения 6 очков. Dim Бросок As integer, Очки As integer Randomize Очки = Int(6*Rnd())+1 Бросок = 1 While Очки<6 Бросок = Бросок + 1 Очки = Int (6+ Rnd ())+1 Wend MsgBox “Победили на броске” & CStr(Бросок) Циклический оператор For Each _ Next относится к операторам объектного типа, т.е. применяется к массивам и наборам элементов. Имеет вид: For Each <элемент>In<набор> [<блок операторов >] [Exit For] ‘– используется для прерывания цикла [<блок операторов >] Next [<элемент>] Пример 1: Суммирование элементов массива Dim A As Variant Dim b, s as Integer A = Array (1, 4, 12, 23, 34, 3, 23) S = 0 b=InputBox (" введите с клавиатуры значение для b ") For Each b in A S=S+b Next b Пример 2: S = 0 For Each с in Selection.Cells S = S+c.value Next c 'Из выделенного диапазона MsgBox “S=”&CStr(S) Пример 3: Работа с семейством рабочих листов – удаление из книги рабочего листа Тест. For Each Лист in Worksheets If Лист.Name = “Tест” then Лист.Delete End If Next Лист Пример 4: Работа с семейством ячеек в диапазоне А1: С4, ячейки с положительными значениями окрашиваются в синий цвет, а с неположительными – в красный. With Ячейка if.value <=0 then .Interior.ColorIndex =3 else.Interior.ColorIndex =5 End if End With Next Ячейка Пример 5: Оператор With избавляет программиста от использования большого количества повторений имени одного и того же объекта или работе с его свойствами и методами. Происходит структурирование кода, что делает его более прозрачным. 1 вариант: With Range (“A1”) .value = 3 .Font.Italic = True End With 2 вариант: With Range (“A1”) .value = 3 With.Font .italic = True .size = 12 .Bold = True .Color = RGB(255, 30, 255) End With End With 8.11. Встроенные диалоговые окна 8.11.1. Окно ввода информации Встроенных диалоговых окон существует 2 типа: окно сообщений и окно ввода. Окно сообщений выводит простейшую информацию (MsgBox), а окно ввода (InputBox) обеспечивает ввод информации. Функция InputBox – окно с двумя кнопками ОК и Cancel, строкой сообщения и полем ввода. Рассмотрим оператор, выдающий это окно на экран. InputBox (Prompt[,Title] [,Default] [,xPos] [,yPos] [,Helpfile, Context]), где: Prompt - строковое выражение, отображаемое в строке заголовка окна Title – строковое выражение отображаемое в строке заголовка окна. Default - строковое выражение отображаемое в поле ввода по умолчанию, если не ввести другое. xPos – расстояние по горизонтали между левой границей ДО и левым краем экрана (если нет, то по центру горизонтали) yPos - расстояние по вертикали между верхней границей ДО и верхним краем экрана (если нет, на 1/3 высоты экрана) Helpfile – адрес файла-справки о ДО, а Context – номер соответствующего раздела в системе. Пример: Option Explicit Sub Msg_Inp() Dim Response As Integer Dim Message As String Dim Default As String Dim Title As String Dim Help As String Dim Style As Integer Dim Ctxt As Integer Message = «Введите Фамилию, Имя и Отчество студента» ‘ строка-‘сообщение Title=”Пример окна для ввода” ‘Заголовок окна Default = “Смирнов Игорь Александрович” ‘текст по умолчанию Responce = InputBox (Message; Title; Default; 100; 100):End Sub
Рис.61. Окно ввода данных 8.11.2. Встроенные диалоговые окна для обмена сообщениями Они бывают нескольких типов. А) Простое окно-сообщение Пример: MsgBox (“Строка сообщения”) Б) Функция MsgBox – выводит на экран ДО с сообщением, устанавливая режим ожидания нажатия кнопки пользователя. MsgBox ((Prompt[,Buttons] [,Title] [,Helpfile, Context]) Prompt – строковое сообщение в ДО Buttons – числовое выражение, представляющее сумму значений, которые указывают число и тип отображаемых в ДО кнопок: 0 – ОК+отмена; 2 – стоп + повтор + пропустить; 3 – да + нет + отмена; 4 – да + нет; 5 – повтор + отмена. Остальные пункты команды, как в InputBox. Кроме кнопок можно отображать значки: 16 – – белый на сером;
48 – – черный на светло сером;
Перед рисунком указан код этих значков. Пример. Использование окна с кнопками Да, Нет, Отмена. Sub Три_кнопки () Dim Сообщение As String: Dim Кнопкa As Integer ‘В Переменной сообщение задаётся структура ДО Сообщение = vbYesNoCancel + vbQuestion + vbDefaultButton1 ‘Кнопка возвращает число при нажатии кнопки Кнопка = MsgBox (“Выберите Да, Нет, или Отмена?”, Сообщение, “Ещё пример”) ‘В зависимости от полученного значения будет одно из сообщений из Select Case: Select Case Кнопка Case vbYes: MsgBox “Выбрали Да”,vbInformation, “Еще пример” Case vbNo: MsgBox “Выбрали Нет” vbInformation, “Еще пример”
End Select End Sub Пример. Использование в программе. Sub Msg_Priim()
Randomize a=rnd() MsgBox “Значение случ. числа” &cstr(a) Рис. 62. Окно вывода результата End Sub Пример. Ввод значения. x= InputBox(“Введите х”, “Пример”): y=x^2 Для вывода в окне командной кнопки используются коды, приведённые в табл. 6. Таблица 6 Коды командных кнопок и пиктограмм
Рассмотрим пример использования этих кодов (рис. 63). Пример. Использование кодов кнопок. Option Explicit Sub Msg_Priim() Dim Response As Integer:Dim Msg As String Dim Title As String Dim Help As String Dim Style As Integer Dim Ctxt As Integer Msg= «Вы хотите продолжить?» Style = 35’vbYesNoCancel+ vbDefaultButton1+ vbQuestion Title=”Пример окна сообщения” ‘ (Заголовок окна) Help = “DEMO.HLP” ‘Имя файла-подсказки Ctxt = 0 ‘Номер контекста внутри файла-подсказки Response = MsgBox (Msg; Style; Title; Help; Ctxt) ‘ присвоение ‘ переменной кода ответа End Sub Они обеспечивают ввод и редактирование данных файлов и таблиц. Для создания ДО выполнить команду: Вставка/ Макрос/ Диалог – тип вставляемого листа. На экране есть панель инструментов Формы для размещения и настройки элементов окна и основа для построения ДО пользователя.
Рис. 63. Окно вывода с кнопками 8.11.3. Диалоговые окна пользователей Состав пиктограмм панели инструментов Формы имеет вид, приведённый в табл. 7. В диалоговом окне могут размещаться элементы произвольного вида, которые сознают наборы объектов. Доступ к конкретному элементу – по имени набора и имени или порядковому номеру элемента внутри набора. Метки – не могут редактироваться пользователем в процессе работы с диалоговым окном, но могут изменяться программным путем с помощью свойства Caption объекта Labels() Пример. Sheets(“<имя_листа_диалога>”). Labels (“<имя_объекта_метки>”). Caption = “строка_текста” Поле ввода – является многострочным, содержит текст, который можно корректировать. Поле ввода входит в набор EditBoxes(), его можно редактировать и программным способом. Пример. Sheets(“<имя_листа_диалога>”). EditBoxes (“<имя_окна>”). Text = “строка_текста” Таблица 7 Перечень пиктограмм
Рамка группы – обеспечивает объединение нескольких элементов ДО. Он изображается в первую очередь, а за тем в него размещают новые элементы. Для задания строки текста в новой строке рамки программным путем, используется его свойство Caption. Флажок - обеспечивает аддитивный выбор, имеет свойство Value (значение True или False) и образует набор CheckBoxes(). Выбран не выбран Кнопка переключателя – обеспечивает альтернативный выбор из списка взаимоисключающих опций. Образуют набор OptionBattons () Свойство Value имеет значения True или False - не выбрана кнопка. Окно списка – предоставляет для выбора список значений, при этом редакция списка невозможна. Список формируется только программным путем. Он может быть организован с помощью свойств объекта: а) ListFillRange – ссылка на диапазон ячеек электронной таблицы, содержащая значения элементов списка. б) List() – перечисление элементов списка, непосредственно, замена старого списка новым целиком. Раскрывающийся список – подобен окну списков, но входит в набор DropDowns() Поле ввода со списком – объединяет окно списка и окно редактирования. При выборе элемента списка он автоматически появляется в окне редактирования, где его корректируют (здесь два различных окна). Поле ввода с раскрывающимся списком – представляет собой комбинацию выпадающего списка, элементы которого редактируются. Линейка прокрутки – создаёт вертикальную или горизонтальную линейку прокрутки. Value содержит положение ползунка – число, доступ к линейкам через набор ScrolBars(). Свойства Min и Max – это диапазон значений, а свойства LargeChange и SmallChange содержат величину изменения Value. Регулятор счетчика – аналогичен линейке прокрутки, но нет свойства LargeChange. ЗАКЛЮЧЕНИЕ Если был внимательно изучен весь материал и проработан на компьютере, то вы должны были освоить основные разделы для работы с текстовым редактором, электронными таблицами и базой данных. Освоение пакета повысило ваш уровень работы с компьютером. Изучение операторов языка программирования VBA дало вам умение использовать эти операторы при написании программ, создании собственных модулей для расчётов в EXCEL На практике наиболее распространены следующие формы представления алгоритмов:
Например. Записать алгоритм нахождения наибольшего общего делителя (НОД) двух натуральных чисел. Алгоритм может быть следующим: 1. задать два числа; 2. если числа равны, то взять любое из них в качестве ответа и остановиться, в противном случае продолжить выполнение алгоритма; 3. определить большее из чисел; 4. заменить большее из чисел разностью большего и меньшего из чисел; 5. повторить алгоритм с шага 2. Описанный алгоритм применим к любым натуральным числам и должен приводить к решению поставленной задачи. Убедитесь в этом самостоятельно, определив с помощью этого алгоритма наибольший общий делитель чисел 125 и 75. Словесный способ не имеет широкого распространения по следующим причинам:
Дата добавления: 2014-01-06; Просмотров: 339; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |