Создание макросов на языке Visual Basic for Applications в МS Office.



Макрос - это запрограммированная последовательность действий (программа, процедура), записанная на языке программирования Visual Basic for Applications (VBA).

VBA отличается от языка программирования VB тем, что система VBA предназначена для непосредственной работы с объектами Office, в ней нельзя создавать проект независимо от приложений Office.

Макрос можно создать несколькими способами: в редакторе и при помощи записи в макрорекордере.

Для создания макросов в редакторе необходимы знания пользователя о программировании и VBA.

В MS Excel необходимо открыть специальное окно - редактор программ на VBA в меню Сервис - Макрос - Редактор Visual Basic (Toos - Macro - Visual Basic Editor).

Макросы хранятся в программных модулях.

Любой макрос должен начинаться с оператора Sub, за которым идет имя макроса и список аргументов (входных значений) в скобках. Если аргументов нет, то скобки надо оставить пустыми. Любой макрос должен заканчиваться оператором End Sub. Все, что находится между Sub и End Sub - тело макроса, т.е. команды, которые будут выполняться при запуске макроса.

Запись макросов макрорекордером.

Макрорекордер - это небольшая программа, встроенная в Excel, которая переводит любое действие пользователя на язык программирования VBA и записывает получившуюся команду в программный модуль. Такой способ создания макросов не требует знаний пользователя о программировании и VBA и позволяет пользоваться макросами как неким аналогом видеозаписи. Макрорекордер записывает только те действия, которые выполняются в пределах окна Microsoft Excel. Макрорекордер может записать только те действия, для которых есть команды меню или кнопки в Excel. Чтобы включить запись необходимо:

- в Excel 2003 и старше - выбрать в меню Сервис - Макрос - Начать запись (Tools - Macro - Record New Macro);

- в Excel 2007 и новее - нажать кнопку Запись макроса (Record macro) на вкладке Разработчик (Developer).

Затем необходимо настроить параметры записываемого макроса в окне Запись макроса. После включения записи и выполнения действий, которые необходимо записать, запись можно остановить командой Остановить запись (Stop Recording).

 

Язык скриптовых сценариев Visual Basic Scripting Edition (VВS).

Visual Basic Scripting Edition (VBScript) — скриптовый язык программирования, интерпретируемый компонентом Windows Script Host. Он широко используется при создании скриптов в операционных системах семейства Microsoft Windows.

Скрипты на языке VBScript чаще всего применяются в автоматизации администрирования систем Windows, серверном программном коде в страницах ASP, клиентских скриптах в браузере Internet Explorer.

Такой тип сценариев обычно используется для создания сложных сценариев, использования объектов из других приложений и библиотек, скрытия окон в ходе выполнения сценария, шифрования логики сценария.

В основном VBS-сценарии применяются для обработки данных, управления системой, работы с учетными записями пользователей и компьютеров, взаимодействия с офисными приложениями, работы с базами данных и прочих сложных задач.

VBS-сценарий — это обычный текстовый файл с расширением *.vbs, который легко править в блокноте, а запускать на исполнение — двойным щелчком мыши или вызовом по имени в консоли.

Для обработки скрипта в системе должен присутствовать интерпретатор языка VBS, и таких интерпретаторов в Windows два: оконный WScript и консольный CScript, оба интерпретатора это Windows Script Host (WSH).

VBScript является объектно-ориентированным языком программирования, то есть основной концепцией является понятие объектов и классов.

Класс — это тип, описывающий устройство объектов. Объект подразумевает под собой нечто, что обладает определённым поведением и способом представления, объект — это экземпляр класса.

Все объекты, с которыми работает Windows Script Host, имеют методы и свойства. Чтобы обратиться к методу, необходимо указать объект, а через точку - метод с необходимыми параметрами.

В Visual Basic существуют следующие типы данных:

- empty — неинициализированная переменная;

- null — пустая переменная;

- boolean — логический тип, возможные значения: False, True или 0, 1;

- byte — 8-битное целое число без знака, возможные значения: 0 .. 255;

- integer — 16-битное целое число, возможные значения: −32768 .. 32767;

- long — 32-битное целое число, возможные значения: −2147483648 .. 2147483647;

- currency — денежный тип, возможные значения: −922337203685477,5808 до 922337203685477,5807;

- single — число с плавающей точкой, возможные значения: −3.402823e38 .. −1.401298e-45 для отрицательных чисел и 1.401298e-45 .. 3.402823e38 для положительных чисел;

- double — число с плавающей точкой, возможные значения: −1.79769313486232e308 .. −4.94065645841247e-324 для отрицательных чисел и 4.94065645841247e-324 .. 1.79769313486232e308 для положительных чисел;

- date — дата, возможные значения: 01.01.1900 .. 31.01.9999;

- string — строковая переменная, вместимость до 2 миллиардов символов;

- object — указатель на объект;

- error — код ошибки.

В VBS-сценариях возможно использование массивов переменных, которые позволяют хранить списки, таблицы и даже более сложные конструкции. Одномерные массивы (списки) могут быть динамическими, то есть они позволяют изменять свой размер в ходе работы сценария. Все массивы объявляются командой Dim.

 

36. Основные операторы языка программирования С++.

Арифметические операторы: присваивание (a = b), сложение (a + b), вычитание (a – b), унарный плюс (+a), унарный минус (-a), умножение (a * b),

деление (a / b), операция модуль (остаток от деления целых чисел) (a % b),

инкремент префиксный (++a), суффиксный (постфиксный) (a++), декремент префиксный  (--a), суффиксный (постфиксный) (a--).

Операторы сравнения: равенство (a == b), неравенство (a != b), больше (a > b), меньше (a < b), больше или равно (a >= b), меньше или равно (a <= b).

Логические операторы: логическое отрицание, НЕ (!a), логическое умножение, И (a && b), логическое сложение, ИЛИ (a || b).

Побитовые операторы: побитовая инверсия (~a), побитовое И (a & b), побитовое ИЛИ (or) (a | b), побитовое исключающее ИЛИ (xor) (a ^ b), побитовый сдвиг влево (a << b), побитовый сдвиг вправо (a >> b).

Операторы работы с указателями и членами класса: обращение к элементу массива (a[b]), непрямое обращение («объект, на который указывает a») (*a), ссылка («адрес a») (&a), обращение к члену структуры («член b объекта, на который указывает a») (a->b), обращение к члену структуры («член b объекта a») (a.b), член, на который указывает b в объекте, на который указывает a (a->*b), член, на который указывает b в объекте a (a.*b).

 

37.  Массивы и строковые данные языка программирования С++.

Массив - это структура данных, представленная в виде группы ячеек одного типа, объединенных под одним единым именем.

Массивы используются для обработки большого количества однотипных данных. Имя массива является указателем, отдельная ячейка данных массива называется элементом массива.

Элементами массива могут быть данные любого типа. Массивы могут иметь как одно, так и более одного измерений.

Одномерный массив — массив, с одним параметром, характеризующим количество элементов одномерного массива. Фактически одномерный массив — это массив, у которого может быть только одна строка, и n-е количество столбцов. Столбцы в одномерном массиве — это элементы массива.

Нумерация ячеек массива всегда начинается с 0. Индекс ячейки – это целое неотрицательное число, по которому можно обращаться к каждой ячейке массива и выполнять какие-либо действия над ней.

Объявление массива имеет следующий синтаксис:

<спецификация типа> <имя> [<константное выражение>];

<спецификация типа> <имя> [ ];

Многомерный массив, или массив массивов, объявляется путем задания последовательности константных выражений в квадратных скобках, следующей за именем:

<спецификация типа> <имя> [<константное выражение>][<константное выражение>] ... ;

Каждое константное выражение определяет количество элементов в данном измерении массива, поэтому объявление двумерного массива содержит два константных выражение, трехмерного – три и т.д.

Символ – элементарная единица, некоторый набор которых несет определенный смысл.

Строки в С++ представляются как массивы элементов типа char, заканчивающиеся нуль-терминатором \0 называются С строками или строками в стиле С.

Символьные строки состоят из набора символьных констант заключённых в двойные кавычки. При объявлении строкового массива необходимо учитывать наличие в конце строки нуль-терминатора, и отводить дополнительный байт под него.

Строка при объявлении может быть инициализирована начальным значением, например: char string[10] = "abcdefghf";

При объявлении строки не обязательно указывать её размер, но при этом обязательно нужно её инициализировать начальным значением. Тогда размер строки определится автоматически и в конец строки добавится нуль-терминатор.

Строка может содержать символы, цифры и специальные знаки. В С++ строки заключаются в двойные кавычки. Имя строки является константным указателем на первый символ.

 

38.  Указатели и функции языка программирования С++.

Указатель – переменная, значением которой является адрес ячейки памяти. То есть указатель ссылается на блок данных из области памяти, причём на самое его начало. Указатель может ссылаться на переменную или функцию. Для этого нужно знать адрес переменной или функции. Чтобы узнать адрес конкретной переменной в С++ существует унарная операция взятия адреса &. Такая операция извлекает адрес объявленных переменных, для того, чтобы его присвоить указателю.

Указатели используются для передачи по ссылке данных, что намного ускоряет процесс обработки этих данных (в том случае, если объём данных большой), так как их не надо копировать, как при передаче по значению, то есть, используя имя переменной. В основном указатели используются для организации динамического распределения памяти, например при объявлении массива, не надо будет его ограничивать в размере.

Любой указатель необходимо объявить перед использованием, как и любую переменную.

Принцип объявления указателей такой же, как и принцип объявления переменных. Отличие заключается только в том, что перед именем ставится символ звёздочки *. Визуально указатели отличаются от переменных только одним символом. При объявлении указателей компилятор выделяет несколько байт памяти, в зависимости от типа данных отводимых для хранения некоторой информации в памяти. Чтобы получить значение, записанное в некоторой области, на которое ссылается указатель нужно воспользоваться операцией разыменования указателя *. Необходимо поставить звёздочку перед именем и получим доступ к значению указателя.

Указатели могут ссылаться на другие указатели. При этом в ячейках памяти, на которые будут ссылаться первые указатели, будут содержаться не значения, а адреса вторых указателей. Число символов * при объявлении указателя показывает порядок указателя. Чтобы получить доступ к значению, на которое ссылается указатель его необходимо разыменовывать соответствующее количество раз.

Указатели могут ссылаться на функции. Имя функции, как и имя массива само по себе является указателем, то есть содержит адрес входа.

Тип данных определяем такой, который будет возвращать функция, на которую будет ссылаться указатель. Символ указателя и его имя берутся в круглые скобочки, чтобы показать, что это указатель, а не функция, возвращающая указатель на определённый тип данных. После имени указателя идут круглые скобки, в этих скобках перечисляются все аргументы через запятую как в объявлении прототипа функции. Аргументы наследуются от той функции, на которую будет ссылаться указатель.

Функцией называют обособленный модуль программы, внутри которого производятся некоторые вычисления и преобразования.

Функция в C++ состоит из:

- типа возвращаемого значения. Данный тип показывает, что функция будет передавать в основную программу после всех своих внутренних преобразований. В некоторых случаях функция ничего не возвращает (имеет тип void).

- названия. Оно должно быть прописано латинскими буквами без пробелов.

- принимаемых аргументов, указываемых после названия в скобках. Аргументами могут быть переменные, константы, объекты классов и другие типы данных. Для каждого аргумента должен быть указан его тип, а также название. Отделение аргументов друг от друга осуществляется при помощи запятой.

- тела функции. Оно заключается в фигурные скобки.

 

39.  Классы и объекты в языке программирования С++.

Классы и объекты в С++ являются основными концепциями объектно-ориентированного программирования.

Классы в С++ — это абстракция, описывающая методы, свойства ещё не существующих объектов.

Объекты — конкретное представление абстракции, имеющее свои свойства и методы. Созданные объекты на основе одного класса называются экземплярами этого класса. Эти объекты могут иметь различное поведение, свойства, но все равно будут являться объектами одного класса.

В ООП существует три основных принципа построения классов:

Инкапсуляция — это свойство, позволяющее объединить в классе и данные, и методы, работающие с ними и скрыть детали реализации от пользователя.

Наследование — это свойство, позволяющее создать новый класс-потомок на основе уже существующего, при этом все характеристики класса родителя присваиваются классу-потомку.

Полиморфизм — свойство классов, позволяющее использовать объекты классов с одинаковым интерфейсом без информации о типе и внутренней структуре объекта.

Объявление класса начинается с зарезервированного ключевого слова class, после которого пишется имя класса. В фигурных скобках объявляется тело класса, после закрывающейся скобки обязательно должна стоять точка с запятой. В теле класса объявляются три метки спецификации доступа (private, public, protected), после каждой метки обязательно должно стоять двоеточие. Все методы и свойства класса, объявленные после private будут доступны только внутри класса. Все методы и свойства класса, объявленные после спецификатора доступа public будут доступны другим функциям и объектам в программе.

После объявления класса, его имя можно использовать как идентификатор типа при объявлении объекта этого класса.

 

40.  Конструкторы, деструктор, наследование в языке программирования С++.

Конструктор (construct — создавать) – это специальный метод класса, который предназначен для инициализации элементов класса некоторыми начальными значениями.

Деструктор (destruct — разрушать) — специальный метод класса, который служит для уничтожения элементов класса. Чаще всего его используют тогда, когда в конструкторе, при создании объекта класса, динамически был выделен участок памяти и необходимо эту память очистить, если эти значения уже не нужны для дальнейшей работы программы.

Конструктор и деструктор объявляются в разделе public. При объявлении конструктора, тип данных возвращаемого значения не указывается, в том числе — void. У деструктора также нет типа данных для возвращаемого значения, к тому же деструктору нельзя передавать никаких параметров. Имя класса и конструктора должно быть идентично, имя деструктора идентично имени конструктора, но с приставкой ~ .

В классе допустимо создавать несколько конструкторов, если это необходимо. В классе может быть объявлен только один деструктор.

Наследование является одной из главных особенностей объектно-ориентированного программирования. В С++ наследование поддерживается за счет того, что одному классу разрешается при своем объявлении включать в себя другой класс. Наследование позволяет построить иерархию классов от более общего к более частным. Этот процесс включает в себя определение базового класса, определяющего общие качества всех объектов, которые будут выведены затем из базового класса. Базовый класс представляет собой наиболее общее описание. Классы, выведенные из базового, обычно называют производными классами. Производные классы включают в себя все черты базового класса и, кроме того, добавляют новые качества, характерные именно для данного производного класса.

 

41. Сравнительный анализ языков программирования С и С++.

Нововведениями C++ в сравнении с C являются:

- поддержка объектно-ориентированного программирования через классы. C++ предоставляет все четыре возможности ООП — абстракцию, инкапсуляцию, наследование (в том числе и множественное) и полиморфизм.

- поддержка обобщённого программирования через шаблоны функций и классов;

- стандартная библиотека C++ состоит из стандартной библиотеки C (с некоторыми модификациями) и библиотеки шаблонов (Standard Template Library, STL), которая предоставляет обширный набор обобщенных контейнеров и алгоритмов;

- дополнительные типы данных (новый тип перечислений enum class);

- обработка исключений (основана на обычной C-технологии setjmp/longjmp. try и catch);

- виртуальные функции (при обозначении функции-метода как virtual для всех одноименных функций будет создана таблица и поле типа);

- пространства имён;

- встраиваемые (inline) функции;

- перегрузка (overloading) операторов;

- перегрузка имён функций;

- ссылки и операторы управления свободно распределяемой памятью.

 


Дата добавления: 2018-08-06; просмотров: 481; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!