Основы VBA(модули, процедуры, объекты)

VBA это диалект языка Visual Basic расширяющий возможности VB и предназнач. Для работы в MS Office. Код на языке VBA можно хранить внутри документов приложений офис.

Основы VBA: 1) действие в VBA осущ-ся в результате выполнения кода VBA; 2)записанная программа сохраняется в моделе VBA; 3)Модель VBA состоит из процедур; 4)Кроме процедур в модуле могут использоваться ф-ции: Function and Function 5) VBA управляет объектами. Они иерархически образованы в какую-то структуру; 6)Одинаковые объекты образуют коллекцию(напр., колекция рабочих книг, рабочих листов); 7) Объекты имеют свойства; 8)Можно присваивать значение переменным

 

40)Классы объектов VBA организованы в иерархическую структуру

 


41)Работа с объектами Range. Свойство Range и Cells Объект Range содержится в объекте Worksheet и состоит из одной ячейки или диапазона ячеек на отдельном рабочем листе. Св-во Range: Свойство Range возвращает объект Range объект.Range(ячейка1); объект.Range(ячейка1, ячейка2). Worksheets("Лист1"). Range("A1").Value = 1 Range("A1:B1O").Value = 2 Свойство Cells:можно использовать свойство Cells в объектах Worksheet и Range. Синтаксис свойства C e l l s: объект.Cells(номер_строки, номер_столбца); объект. Cells (номер_строки); объект. Cells. Worksheets("Лист1").Cells(1, 1) = 9 (А1) ActiveSheet.Cells(3, 4) = 7 (D3) Cells может иметь аргумент от I до 40 и возвращать одну из ячеек объекта Range. В следующем примере значение 2000 вводится в ячейку А2, так как А2 является пятой ячейкой в указанном диапазоне: Range("A1:D10").Cells(5) = 2000 Третий синтаксис свойства Cells возвращает все ячейки на указанном рабочем листе.

42)Элементы языка VBA. Комментарии, переменные, типы данных.Комментарий—это описательный текст, который включается в код.Введение кода VBA: Код VBA, который содержится в модуле VBA, состоит из инструкций. Общепринято использовать по одной инструкции в каждой строке, можно применить двоеточие для разделения нескольких инструкций в одной строке.Строка может иметь любую длину. В длинных строках допускается использование оператора продолжения строки VBA: пробел с подчеркиванием Переменнаяпредставляет собой именованное место хранения данных в памяти компьютера. Переменные могут содержать данные разных типов. Правила именования переменных: 1)Вы можете использовать в названиях символы букв, числа и некоторые знаки препинания, но первой в имени переменной всегда должна вводиться буква. 2)VBA не различает регистры 3)Нельзя использовать в именах пробелы или точки.4)Нельзя использовать специальные символы объявления типов (#, $, %, &) 5)Названия переменных ограничены длиной 254 символов.Определение типов данных:VBA облегчает жизнь программистам, автоматически обрабатывая любые типы данных. Тип данных указывает, в каком виде данные хранятся в памяти. VBA может автоматически типизировать данные, однако это чревато негативными последствиями: медленное выполнение операций и менее эффективное использование памяти. Dim A As Integer, В As Integer, С As Integer

43)Элементы языка VBA.Виды операторов Оператор присвоения — это инструкция VBA, выполняющая математическое вычисление и присваивающая результат переменной или объекту. В VBA оператором присвоения выступает знак равенства (=). Математические операторы, в том числе сложение (+), умножение (*), деление (/), вычитание (—), возведение в степень (^) и конкатенацию строк (&). Операторы сравнения, которые применяются в формулах Excel: равно(=), больше (>), меньше (<), больше или равно (>=), меньше или равно (<=) и не равно ( <> )

44)Встроенные ф-ции( пример одной MsgBox) Ф-ция MsgBox — одна из самых полезных в VBA, используется для отображения значения переменной. Данная функция часто представляет достойную замену простой форме. Формальный синтаксис функции MsgBox: MsgBox(сообщение[, кнопки] [, заголовок] [, файл_справки] [, контекст])сообщение (обязательный аргумент) — сообщение, которое отображается в диалоговом окне.кнопки (необязательный аргумент) — значение, определяющее, какие кнопки и пиктограммы (если нужно) отображаются в окне сообщения. Применяйте встроенные кон-танты (например, vbYesNo).заголовок (необязательный аргумент} — текст, который отображается в строке заголовка окна сообщения. По умолчанию используется текст Microsoft Excel. файл_справки (необязательный аргумент)— название файла справки, соответствующего окну сообщения. контекст (необязательный аргумент) — контекстный идентификатор раздела справки. Представляет конкретный раздел справки для отображения.

45) Конструкция if-then Стандартный синтаксис : If условие Then ииструкции_истина [Else инструкции_ложь] VBA предлагает альтернативу конструкции i f - T h e n— функцию IIf . Эта функция работает подобно функции ЕСЛИ Excel. Приведем ее синтаксис:I I f (выражение, чaсть_Тrие, часть_False),

 

46)Конструкции Select Case Конструкция Select Case применяется при выборе между тремя и более вариантами.Она справедлива также для двух вариантов и является хорошей альтернативой структуре If- Then-Else. Конструкция Select Case имеет следующий синтаксис: Select Case

Циклы Do While, Do Until

Цикл Do while выполняется до тех пор, пока удовлетворяется заданное условие. Цикл Do While может иметь один из двух представленных синтаксисов: Do[While условие][инструкции]LoopИли DO[инструкции]

[Exit Do]

[инструкции]

Loop [While условие]

В цикле Do U n t i l цикл выполняется, пока условие не станет выполняться Do[Until условие][инструкции][Exit Do][инструкции] Loop

Или

DO[инструкции]

[Exit Do]

[инструкции]

Loop [Until условие]

 

48)Понятие оптимиз.задач и моделей Оптимизационные задачи решаются с помощью оптимизационных моделей методами математического программирования. (раздел прикладной матем. кот. Изучает задачи оптимизации и методы их решения) При постановке задач оптимизации необход. след.: наличие объекта и цели оптимизации; наличие ресурсов оптимизации; учёт ограничений. Сущность задач оптимизации заключ. в след.: определить значение переменных х1, х2,…, хN, которые обеспечивают экстремум целевой ф-ции Е с учётом ограничений положенных на аргументы этой ф-ции.

49)Задачи линейного програмирован Это такие задачи, где целевая ф-ция Е зависит линейно от элементов решения, а ограничения имеют вид линейных равенств или неравенств. Любая задача линейного програм. сводится к основной задаче линейного програм.(ОЗЛП) которая формулируется след. образом: определить множество неотрицательных значений переменных х1, х2,…, хN , которые удовлетворяют ограничениям в виде линейных равенств и обращают максимум в целевую ф-цию.

а11 х1 12х2+…+а1NxN = b1

а21 х1 22х2+…+а2NxN = b2 - ограничения(1)

аm1 х1 m2х2+…+аmN xN = bN

Е = С1 Х1 + С2Х2 +…+СNХN – max (2)

Допустимое решение ОЗЛП – множество неотрицательных значений переменных х1, х2,…, хN, удовлетворяющих условию (1). Оптимальное решение ОЗЛП – то из допустимых, которое максимизирует ф-цию (2).

Среди задач линейного програм. различаюи след. виды: задачи управления производством; транспортные; задачи о составлении смесей и диет; задачи о раскрое.

 

Реш.задач графич.методом

Задача может быть решена графическим методом (если задача может быть сведена к 2 переменным). В теории линейного программирования доказано, что экстремум достигается в угловых точках многогранника допустимых решений. Задача может быть решена след. образом: определить все угловые точки; вычисляются значения целевой ф-ции во всех угловых точках; выбирается точка с экстремальным значением целевой ф-ции.

51)Реш.задач управления производством.Рассмотрим пример. Предпр. выпускает 2 вида продукции использовав при этом 4 группы оборудования. Выпуск 1-го вида продукции обеспечивает прибыль 2 000 ден.ед., а 2-го 3000 ден.ед. Трудоёмкость изготовления 1-го комплекта продукции и имеющийся фонд времени по каждой группе оборудования приведён в табл.

Определить план производства максимизирующий прибыль предприятия.Определить переменные. Пусть х1 – кол-во производимой продукции 1-го типа; х2-…2-го типа.Определить ограничения

1 + 3х2<=15 – огран.на использование 1-го вида оборудования

1 + 6х2<=18

1 <=16

х1 +2х2<=8

х1 , х2>=0

E = 2000х1 + 3000х2 =>max

Транспортн.задачи

Имеется 3 поставщика и 4 потребителя однородной продукции. Известны затраты на перевозку груза от каждого поставщика к каждому потребителю Сij , i = 1-3, j = 1-4.Запасы грузов у поставщиков = аi , i = 1-3. Известны потребности каждого потребителя вj = 1-4.

Будем считать, что суммарные потребности = суммарным запасам.Требуется составить такой план перевозок чтобы обеспечить миним. суммарные затраты при полном удовлетворении потребностей.1)Введём переменную Хij – кол-во груза, перевозимое от i-го поставщика к j-му потребителю.(всего 12 переменных)2)Составим ограничения.

-потребности всех потребителей должны быть удовлетворены полностью

х11 + х21 + х311

Х12 + х22 + х322

Х13 + х23 + х333

Х14 + х24 + х344

Сумма от i=1 до 3 хij = вj j( 1-4) Груз от поставщиков должен быть вывезен полностью

х11 + х12 + х1314 = а1

х21 + х22 + х23 + х24 = а2

х31 + х32 + х33 + х343

Сумма от i=1 до 4 хij = аi , I = 1-3.

3)Условие неотрицательности переменных.

Хij>=0 , i=1-3, j=1-4.

4)Целевая ф-ция Е – минимизировать суммарные затраты на перевозку.

Zmin=∑∑Сijxij