Пример задачи в excel vba

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ

Государственное образовательное учреждение высшего профессионального образования

«КАЗАНСКИЙ ГОСУДАРСТВЕННЫЙ ЭНЕРГЕТИЧЕСКИЙ УНИВЕРСИТЕТ»

Н.К. ПЕТРОВА, Л.Р. БЕЛЯЕВА

ПРОГРАММИРОВАНИЕ НА VBA В ПРИМЕРАХ И ЗАДАЧАХ

ЧАСТЬ II. РАБОТА С СИМВОЛЬНЫМИ ДАННЫМИ И МАССИВАМИ

Практикум

Казань 2011

2

УДК 681.3 ББК 32.973 П30

Рецензенты:

кандидат физико-математических наук, доцент Казанского государственного энергетического университета Т.Р.Абдульмянов;

кандидат педогогических наук, доцент Казанского государственного энергетического университета С.М. Куценко

П30 Петрова Н.К., Беляева Л.Р.

Программирование на VBA. Часть II. Работа с символьными переменными и массивами. Практикум / Н.К. Петрова, Л.Р. Беляева. – Казань: Казан. гос. энерг. ун-т, 2011. – 50 с.

Предлагается своего рода «Задачник» по программированию, ориентированный на обучение студентов основам алгоритмизации математических и инженерных задач средствами языка VBA в приложении к Excel.

Содержание второй части охватывает разделы программы, посвященные работе с символьными переменными и массивами. Изложение материала оформлено в виде отдельных разделов, в которых кратко представлены основные теоретические сведения.

Типовые задачи даются с подробными решениями. Имеется большое количество задач для самостоятельной работы. Наряду с типовыми задачами, практикум содержит большое количество задач повышенной сложности. Задания делятся на 2 типа: 1 – умение «читать» готовые программы, 2 – разрабатывать программы по шаблонному алгоритму и программы с неявным алгоритмом.

Практикум предназначен для студентов всех специальностей КГЭУ, изучающих «Информатику», «Информационные технологии».

УДК 681.3 ББК 32.973

© Казанский государственный энергетический университет, 2011

3

“Года работы над искусственным интеллектом достаточно,

чтобы заставить поверить в Бога.” Перлис Алан

Предисловие

Вучебной литературе имеется не так много пособий по практической работе на языке VBA (Visual Basic for Application), ориентированных на решение математических, инженерных задач. Данный практикум разработан

сцелью восполнить существующий пробел. Он предназначен для обучения – самостоятельно или под руководством преподавателя – основам алгоритмизации с использованием языка VBA в приложении к одному из самых популярных приложений MS Office – MS Excel.

Во второй части практикума включены типовые задачи и даются методы и примеры их решения. Каждому разделу предшествует краткое теоретическое введение, состоящее из определений и описания операторов языка. Достаточно большое количество примеров демонстрируют разные возможности работы с символьными и индексированными переменными. Задачи основаны на полученных в первой части практикума знаниях по работе с ячейками рабочего листа Excel, с диалоговыми окнами ввода и вывода.

Многие задачи на «чтение программ» снабжены ответами.

Втексте практикума приняты такие соглашения:

1.Элементы языка VBA в текстовой части практикума выделены

таким стилем.

2.Курсивом выделены новые термины, имена переменных в текстовой части практикума, в комментариях к операторам программ. “Таким

шрифтом” записаны значения для ввода или вывода данных.

3.Тексты программ приводятся, как правило, копией листа модуля.

4.При описании структуры операторов [необязательные операнды] взяты в квадратные скобки, альтернативные параметры – Yes | No – написаны через вертикальную черту.

5.В тексте используются следующие сокращения:

ОП – оперативная память; ПК – компьютер; п/п – программа-процедура; п/ф – программа-функция.

При подготовке данного практикума авторы использовали многолетний опыт работы по преподаванию курса информатики в Казанском государственном энергетическом университете и Казанском федеральном университете.

4

I.ОБРАБОТКА СИМВОЛЬНЫХ ПЕРЕМЕННЫХ

1.Средства VBA для работы с символьными переменными

1.1.Символьные переменные, строковые функции

Компьютер работает не только с числами, но и с символами. Последовательность символов, используемых программе, называется строкой. Символьные или строковые константы представляют собой набор произвольных символов, принадлежащих языку Basic. Строковые константы на VBA помещаются в кавычки, например Лунаили X=12”. Для описания строковых переменных используется опция String или постфикс $. В табл. 1 показаны параметры двух разновидностей опции String.

Строковые типы данных

Таблица 1

String

Текстовая информация

10 байт + 1 байт

От 0 до

на каждый

приблизительно

(строка) переменной длины

символ

2 миллиардов

символов

Строка постоянной длины

От 1 до

String*n

Длина строки

приблизительно

в n символов

65 400

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

Объединение строк (конкатенация) выполняется с помощью опера-

тора & (можно также использовать +). При объединении двух строк вторая помещается в конец первой, например, в результате команды “пример “ & “№1” получим строку “пример №1”, а по команде

“25” & “693” получим строку “25693”..

Кроме указанного оператора, в VBA используется большое количество

встроенных строковых функций. Рассмотрим некоторые из них.

Функция Len( ) используется для определения длины строки. Общий вид команды:

n% = Len(строка).

Например, функция Len(файл) возвращает число 4.

5

Функция Instr([номер позиции], строка, подстрока) – осуществляет поиск подстроки в строке, начиная с символа, указанного [номером позиции]. Если [номером позиции] не указан, то поиск осуществляется с 1-го символа. Например:

В приведенном примере сочетание “форма” встретилось в слове “Ин форматика”, начиная с позиции номер 3.

Функции UCase( ) и LCase( ) используются, чтобы изменить регистр символов заданной строки на верхний или нижний соответственно. Например:

a$ = Информатика: b$ = Ucase(a$) : c$ = LCase(a$).

В результате переменная b$ = ИНФОРМАТИКА, а c$ = информатика“.

Функции Left( ), Right( ) и Mid( ) используются для выделения части строки. Общий вид команд Left или Right:

Новая строка = Left | Right (Исходная строка, число символов).

Например, в результате команды Left(самолет, 3) получим строку «сам», а по команде Right (пароход, 3) получим строку «ход».

Функция Mid( ) является более универсальной и часто заменяет собой Left( ) и Right( ). Общий вид команды:

Новая строка = Mid (Исходная строка, начальная позиция, [число символов]).

Например, в результате команды Mid (информатика, 3, 5) получим строку «форма». Если необязательный параметр [число символов] опущен, то выделяются символы, начиная с с начальной позиции до конца строки, например, по команде Mid (подберезовик, 4) получим строку «березовик». Если начальная позиция указана равной нулю или больше длины строки, то результатом выполнения функции будет пустая строка. Например, если строка программы содержит операторы:

a$ = Mid (“процессор”, 10, 2): b$ = Mid (“процессор”, 0, 3),

то результатом их выполнения будет значение ”” (пусто) для обеих переменных a$ и b$.

6

Функции LTrim ( ), RTrim ( ) и Trim ( ) отсекают пробелы с начала, конца или с обеих сторон строки соответственно.

В VBA используются также встроенные функции преобразования ти-

пов данных.

Функция SPACE (n) – формирует строку из n пробелов.

Функция STRING (n, строка_символов) – формирует строку из n одинаковых символов, равных первому символу в строке_символов:

1.2. Функции преобразования типов данных и прочие полезные функции

Функция Str( ) преобразует число в строку текста. Если число положительное, то первым символом в полученной строке будет пробел. Общий вид команды:

Строка = Str(число)

Например, в результате команды Str(895) получим строку « 895», а по команде Str (-5678) получим строку « 5678».

Функция Val( ) преобразует строку, содержащую цифры, в число, последовательно считывая символы строки, пока не встретится нецифровой знак. Общий вид команды:

Number$ = Str (Строка)

Например, в результате команды Val(45Т89) получим число 45, а по команде Val (К593) получим число 0.

Функция Date возвращает текущую дату компьютера в формате “дд.мм.гггг” значением типа Variant.

7

Функция Chr( ) преобразует ASCII-код символа в соответствующий символ. Например, в результате команды Chr(72) получим символ H, а по команде Chr (65) получим символ А. Одним из распространенных символов при формировании строк является Chr (13) – переход к началу новой строки:

Функция Asc ( ) выполняет обратную задачу: преобразует символ в соответствующий ему ASCII-код. Например, в результате команды Asc(0) получим код 48, а по команде Asc (”a“) получим код 97.

2. Пример решения типовых задач и задачи для самостоятельного решения

2.1.Пример решения типовых задач

На листе Excel вызвана определенная пользователем функция text, фактические параметры которой указаны в приведенной ниже палитре функции. Какой результат появится на листе?

Решение:

1. Сопоставляем формальные (a$, b$) и фактические параметры:

8

a$ = «Kazan Power Engineering University» b$ = «U»

2.nl равно числу символов в строке a$ – считаем, получается nl = 34.

3.Открываем цикл по i:

Проверяем i = 1 < nl?, Да! Следовательно, приступаем к выполнению функции Instr: начиная с первой позиции, просматривается строка a$ и в ней ищется позиция, на которой стоит заглавная U – это позиция № 25. Значит k = 25.

4.k не равно нулю, следовательно переходим на оператор с меткой 20, досрочно покидая цикл For … Next.

5.Рассчитываем величину nl – k + 1 = 34 – 25 + 1 = 10.

6.Берем 10 правых символов из строки a$, получаем строку

“University”.

Заканчиваем программу.

Ответ: На листе Excel появится слово “University”.

2.2. Задания для самостоятельного чтения программ

Задание 1. Какое сообщение появится после выполнения предложенной программы?

Текст программы:

Задание 2. Какие данные появятся на листе Excel при вызове пользовательской функции test2, фактические параметры которой указаны на палитре функции?

9

Задание 3. На компьютере установлена дата 12 июля 2010 г. Какое сообщение появится после выполнения предложенной программы?

Текст программы:

Задание 4. Какие данные появятся на листе Excel при вызове пользовательской функции test4 при вводе данных, показанных на палитре функции? Какое сообщение будет выведено оператором Msgbox? Как вы ответите на вопрос программы?

Задание 5.Какое сообщение появится после выполнения предложенной программы?

Текст программы:

10

Задание 6. Какой результат будет показан в окне сообщения программы? Как вы ответите на вопрос программы?

Текст программы:

Задание 7. В ячейке А2 листа вызвана функция test7 с указанными фактическими параметрами. Какой результат появится после ввода функции? Как вы ответите на вопрос программы?

Задание 8. Какой результат будет показан в окне сообщения программы test8, если в диалоговом окне ввода ввести слово “SALUTE!”?

Текст программы:

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]

  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #

Содержание

  1. Задачи vba excel для начинающих
  2. Задачник на VBA (часть I)*
  3. Сборник задач по VBA

Задачи vba excel для начинающих

Вывод. В ходе работы мы рассмотрели методику нахождения экстремума функции, составили блок-схему и программу вычисления в VBA.

Тема 3: Решение нелинейных уравнений.

Цель. Рассмотреть методы решения нелинейных уравнений : метод деления отрезка пополам. Составить алгоритм решения и реализовать программы в VBA.

Интервал 1;2 . точность 10-5

1) Метод деления отрезка пополам.

Делим отрезок пополам:

Определяют знак функции f(x) и выбирают ту половину отрезка, на концах которого функция принимает значение разных знаков и деление повторяется.

Если нужно найти корень с заданной точностью, то деление повторяют, пока разность между предыдущем значением корня и вновь посчитанным не станет меньше заданной точности.

Мы водим в лист MS Excel начальные данные: a, b,f(x), eps:

Создаем макрос: Сервис – Макрос – макросы. Задаем имя(нелинейное). Вводим программу:

If f(a) * f(X) > 0 Then

Cells(i + 3, 5) = f(X)

Loop While Abs(X — X0) > eps

f = 0.8 * X ^ 4 — 2 * X ^ 2

Запускаем программу: кнопка F5.

Сворачиваем программу и на листе MS Excel нам выдает данные:

Основан на предположении, что на маленьком отрезке функция изменяется линейно. Тогда кривую можно заменить хордой и в качестве приближенного значения принять точку пересечения хорды с осью абсцисс. Точка Х находиться по формуле Х=a-((b-a)*f(a))/(f(b)-f(a)). Определяют знак функции f(x) и выбирают ту половину отрезка, на концах которого функция принимает значение разных знаков и деление повторяется.

Если нужно найти корень с заданной точностью, то деление повторяют, пока разность между предыдущем значением корня и вновь посчитанным не станет меньше заданной точности.

Эти два метода очень похожи и различаются только способом нахождения Х. все остальное то же самое.

Источник

Задачник на VBA (часть I)*

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ

Государственное образовательное учреждение высшего профессионального образования

«КАЗАНСКИЙ ГОСУДАРСТВЕННЫЙ ЭНЕРГЕТИЧЕСКИЙ УНИВЕРСИТЕТ»

Н.К. ПЕТРОВА, М.М. ВОЛЧЕНКО

ПРОГРАММИРОВАНИЕ НА VBA В ПРИМЕРАХ И ЗАДАЧАХ

ЧАСТЬ I. БАЗОВЫЕ АЛГОРИТМИЧЕСКИЕ СТРУКТУРЫ

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

«Информатика», «Компьютерные технологии в науке и образовании», «Программные средства информатики», «Новые информационные технологии»

УДК 681.3 ББК 32.973 П78

кандидат физико-математических наук, доцент Татарского государственного педагогического университета И.Н. Голицына ;

кандидат физико-математических наук, доцент Казанского государственного энергетического университета Р.А. Ишмуратов

П78 Петрова Н.К., Волченко М.М.

Программирование на VBA. Часть I. Базовые алгоритмические структуры. Практикум / Н.К. Петрова, М.М. Волченко. – Казань: Казан. гос. энерг. ун-т, 2010. – 55 с.

Предлагается своего рода «Задачник» по программированию, ориентированный на обучение студентов основам алгоритмизации математических и инженерных задач средствами языка VBA в приложении к Excel.

Содержание I части охватывает разделы программы, посвященные базовым алгоритмическим структурам: линейные программы, «ветвление», «цикл» — арифметический и итерационный. Изложение материала оформлено в виде отдельных разделов, в которых кратко представлены основные теоретические сведения.

Типовые задачи даются с подробными решениями. Имеется большое количество задач для самостоятельной работы. Задания делятся на три типа: 1 – умение «читать» готовые программы, 2 – разрабатывать программы по шаблонному алгоритму и 3 – разрабатывать программы с неявным алгоритмом.

Практикум предназначен для студентов всех специальностей КГЭУ, изучающих «Информатику».

УДК 681.3 ББК 32.973

© Казанский государственный энергетический университет, 2010

В учебной литературе имеется не так много пособий по практической работе на VBA, ориентированных на решение математических, инженерных задач. Данный практикум разработан с целью восполнить существующий пробел. Он предназначен для обучения – самостоятельно или под руководством преподавателя – основам алгоритмизации с использованием языка VBA (Visual Basic for Application) в приложении к одному из самых популярных приложений MS Office – MS Excel.

В практикум включены типовые задачи и даются методы и примеры их решения. Каждому разделу предшествует краткое введение, состоящее из определений и описания операторов языка. Многочисленные примеры демонстрируют разные возможности работы с ячейками рабочего листа Excel, с диалоговыми окнами ввода и вывода. Основной акцент сделан на умение работать с математическими формулами, с числами в формате с плавающей и фиксированной точкой, грамотно сопоставлять фактические и формальные параметры при вызове программ как с листа Excel, так и из программ пользователя.

В тексте практикума приняты такие соглашения:

1. Элементы языка VBA в текстовой части практикума выделены

2. Курсивом выделены новые термины, имена переменных в текстовой части практикума, в комментариях к операторам программ.

3. Примеры разбираемых программ даются, как правило, с комментариями, при этом текст программы пишется курсивом. Тексты программ для самостоятельного разбора приводятся, как правило, в рамке.

4. При описании структуры операторов[ необязательные операнды ] взяты в квадратные скобки, альтернативные параметры – Yes | No –

написаны через вертикальную черту.

5. В тексте используются следующие сокращения:

ОП – оперативная память; ПК – компьютер; п/п – программа-процедура; п/ф – программа-функция

При подготовке данного практикума авторы использовали многолетний опыт работы по преподаванию курса информатики в Казанском государственном энергетическом университете и Казанском государственном университете.

Общие теоретические сведения по программированию на VBA

I. Структура программ на VBA. Процедуры и функции пользователя

Программа VBA представляет собой совокупность процедур и функций, размещенных в зависимости от особенностей решаемой задачи, в одном или нескольких модулях. Каждый модуль имеет две области: общую область и область подпрограмм. В общей области помещаются операторы описания переменных, которые являются общими для всех процедур и функций этого модуля. В области подпрограмм помещается только код подпрограммы.

В VBA программный код, реализующий какие-либо действия, оформляется в виде процедур и функций . Благодаря этому создаваемые программы имеют хорошую структурированность и наглядность. Разработанные отдельные функции или процедуры можно накапливать в библиотеках и в дальнейшем использовать их по мере необходимости.

Программа-процедура (п/п) на VBA имеет следующую структуру:

[Private|Public] Sub ИмяПроцедуры ( СпискиПараметров ) >

где [Private|Public] – необязательные ключевые слова, определяющие область видимости программы; Sub – ключевое слово, определяющее тип п/п. ИмяПроцедуры – имя п/п (дает сам пользователь). СписокПараметров служит для передачи процедуре исходных данных для вычислений (может отсутствовать). Он состоит из элементов списка, разделенных запятыми.

Этот элемент списка параметров имеет синтаксис:

ИмяЭлемента [ As ТипДанных ]

где ИмяЭлемента – идентификатор; As – ключевое слово; ТипДанных – тип данных элемента списка (Табл. 1.1).

Процедура пользователя может быть вызвана из другой п/п оператором Call или указанием ее имени.

Источник

Сборник задач по VBA

Министерство образования Республики Беларусь Учреждение образования

« МОГИЛЕВСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ПРОДОВОЛЬСТВИЯ »

Кафедра « Информатика и вычислительная техника »

Сборник задач по VBA

Методические указания для студентов всех специальностей и аспирантов

Рассмотрены и рекомендованы к изданию на заседании кафедры

« Информатика и вычислительная техника » Протокол № 9 от « 14 » апреля 200 8 г .

кандидат технических наук , доцент , заведующий кафедрой « Автоматизированные системы управления » Белорусско — Российского университета

С . К . Крутолевич

кандидат физико — математических наук , доцент кафедры « Математического анализа , информатики и вычислительной техники » Могилевского государственного университета им . А . А . Кулешова С . Н . Батан

Методические указания представляет собой задачник по программированию на языке

Visual Basic for Applications (VBA).

Данные методические указания предназначены для аспирантов и студентов всех специальностей , изучающих дисциплины « Информатика », « Информатика и компьютерная графика », « Основы информационных технологий ».

© УО « Могилевский государственный университет продовольствия », 2008

Основная цель данного методического указания – научить аспирантов и студентов программировать на языке Visual Basic for Applications (VBA).

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

В методическом указании предложено большое количество задач ( более 200), от простых до достаточно сложных .

Методическое указание состоит из 7 частей , содержащих как типовые задачи , т . е . ввода – вывода , использование циклов , работа с массивами , поиск и сортировка , так и задачи , которые , как правило , остаются за рамками традиционных курсов программирования , работа с пользовательскими формами .

Часть 1. СОЗДАНИЕ МАКРОСОВ

Начальные сведения по решению задач данной части содержатся в частях 1 и 2 учебно — методического пособия « Программирование на VBA».

Приступая к решению задач этого раздела , следует вспомнить , что :

ü при записи макроса макрорекордер записывает все действия пользователя , включая ошибки и неправильные запуски ;

ü записанные макрорекордером макросы не универсальны , поскольку они

могут только повторять однажды выполненные последовательности команд и только в том же самом порядке , в которых вы их записали ;

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

ü применение макросов повышает скорость работы и , главное , точность и надежность .

1. Создайте макрос в Excel, который строит график функции y = x 2 — x — 2 на отрезке [-3,3].

2. Создайте макрос в Excel, который заливает ячейку B1 ярко — зеленым цветом , вычисляет разность ячеек A1, A2 и выводит результат в ячейку B1 шрифтом Arial, подчеркнутым , 14 размером .

3. Создайте макрос в Excel, вычисляющий площадь поверхности и объем цилиндра ( ячейки , содержащие r , h , должны быть подписаны ).

S = 2 × p × r × ( h + r )

4. Создайте макрос в Excel, который переводит вес из фунтов в килограммы ( один фунт равен 409,5 г ; ячейки , содержащие фунты и килограммы , должны быть подписаны ).

5. Создайте макрос в Excel, который выводит на синем фоне красными буквами в текущую ячейку сообщение «Visual Basic for Applications (VBA)»

шрифтом Times New Roman, обычным , 12 размером .

6. Создайте макрос в Excel, который выделенный диапазон ячеек одной строки A1:H1 сортирует по убыванию .

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

S = 1 2 × a × h , где a – длина основания треугольника , h – его высота ( ячейки ,

содержащие a , h , должны быть подписаны ).

8. Создайте макрос в Excel, который выводит , начиная с текущей ячейки , четверостишие :

Унылая пора ! Очей очарованье ! Приятна мне твоя прощальная краса . Люблю я пышное природы увяданье , В багрец и золото одетые леса .

9. Создайте макрос в Excel, который вычисляет произведение чисел , расположенных в выделенном диапазоне 5- и ячеек .

10. Создайте макрос в Excel, который копирует ячейки A1:C2 и выводит их содержимое , начиная с ячейки F20.

11. Создайте макрос в Excel, который из последовательности чисел , расположенных в ячейках A1:A10, выводит последовательность с положительными числами в ячейки B1:B10.

12. Создайте макрос в Excel, вычисляющий объем и площадь поверхности шара ( ячейка , содержащая r , должна быть подписана ).

13. Создайте макрос в Excel, который переносит ячейки A1:A10 в ячейки

14. Создайте макрос в Excel, который выводит в текущей ячейке фразу : « Каждый охотник желает знать , где сидят фазаны », позволяющую запомнить порядок следования цветов радуги ( первая буква слова кодирует цвет : каждый – красный , охотник – оранжевый , желает – желтый , знать – зеленый , где – голубой , сидят – синий , фазаны – фиолетовый ). Каждое слово фразы должно быть выведено соответствующим цветом .

15. Создайте макрос в Excel, который переводит расстояния из километров в версты ( одна верста равна 1066,8 м .; ячейки , содержащие километры и версты , должны быть подписаны ).

16. Создайте макрос в Excel, который выделенный диапазон ячеек одного столбца B1:B10 сортирует по возрастанию .

17. Создайте макрос в Excel, который выводит , начиная с ячейки B3, на синем фоне серыми буквами 16 размером четверостишие :

Буря мглою небо кроет , Вихри снежные крутя ; То , как зверь , она завоет , То заплачет , как дитя .

18. Создайте макрос в Excel, вычисляющий объем конуса ( ячейки , содержащие r , h , должны быть подписаны ).

S = 1 3 × p× r 2 × h

19. Создайте макрос в Excel, который для ячеек A2:B10 строит точечную диаграмму ( значения X: A2:A10, значения Y: B2:B10).

20. Создайте макрос в Excel, который вычисляет сумму чисел , расположенных в ячейках A1:B10, и выводит результат в ячейку B11.

21. Создайте макрос в Excel на изменение ширины текущего столбца

( Ширина столбца 20).

22. Создайте макрос в Excel, который объединяет ячейки B7:H7 и выводит на желтом фоне синими буквами в объединенной ячейке сообщение « Создание макроса » шрифтом Times New Roman, обычным , 12 размером .

23. Создайте макрос в Excel, который для ячеек A2:C2 строит круговую диаграмму .

24. Создайте макрос в Excel на изменение высоты текущей строки ( Высота строки 25).

25. Создайте макрос в Excel, вычисляющий площадь круга : S = p× r 2 , где r – радиус круга ( ячейка , содержащая r , должна быть подписана ).

26. Создайте макрос в Excel, который строит график функции y = x 2 — 1 на

27. Создайте макрос в Excel на изменение угла наклона текста в текущей ячейке (90 градусов ).

28. Создайте макрос в Excel, вычисляющий объем полого цилиндра ( ячейки ,

содержащие r 1 , r 2 , h , должны быть подписаны ; r 1 − радиус цилиндра , r 2 − радиус отверстия , h − высота цилиндра ).

V = p × h × ( r 1 2 — r 2 2 )

29. Создайте макрос в Excel на добавление листа в книгу .

30. Создайте макрос в Excel, вычисляющий площадь трапеции : S = a + 2 b × h ,

где a , b – длины оснований , h – высота трапеции ( ячейки , содержащие a , b , h , должны быть подписаны ).

Часть 2. СОЗДАНИЕ ПРОГРАММ С ЛИНЕЙНОЙ СТРУКТУРОЙ

Начальные сведения по решению задач данной части содержатся в части 3 учебно — методического пособия « Программирование на VBA».

Приступая к решению задач этого раздела , следует вспомнить , что :

ü программы с линейной структурой являются простейшими и используются , как правило , для реализации обычных вычислений по формулам ;

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

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

Источник

Adblock
detector

Решаем счётные задачи с помощью Excel VBA

Visual Basic for Applications (VBA) – диалект языка Visual Basic, включённый в состав пакета Microsoft Office. Программы на VBA, называемые макросами, могут выполняться прямо из документа Word или Excel, используя при этом в качестве интерфейса пользователя стандартные для Windows кнопки, поля ввода, списки, окна диалога или переключатели.

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

Перед началом работы:

1. Включите настройку Кнопка Office — Параметры Excel (или Word) — Основные — «Показывать вкладку Разработчик на ленте». В последних версиях офиса настройка может называться иначе, но она там есть :)

2. На вкладке Разработчик нажмите кнопку Безопасность макросов и разрешите выполнение макросов:

параметры макросов

параметры макросов

В противном случае придётся каждый раз разрешать выполнение макросов при открытии документа.

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

3. Нажмите вкладку Разработчик – Макросы, дайте новой программе имя и нажмите кнопку Создать:

создание макроса

создание макроса

Откроется редактор Visual Basic, в котором можно писать, отлаживать, выполнять и сохранять программы.

На скрине ниже показана программа, позволяющая вычислить, сколько процентов составляет значение A от B.

пример программы

пример программы

Вот листинг почти программки такого же типа, только ещё проще.

Sub Project1()
 Dim A, B, C As Double
 A = Val(InputBox("Ввод A", "Введите A", 0))
 B = Val(InputBox("Ввод B", "Введите B", 0))
 C = Sqr(A ^ 2 + B ^ 2)
 MsgBox "Ответ =" & C
End Sub

В простых случаях нам достаточно с помощью окна InputBox получить значение переменной (третьим аргументом ей можно дать значение по умолчанию),
при необходимости проверить, корректно ли введены данные (так как введённая в InputBox величина возвращается в виде строки, можно получить её числовое значение функцией Val или узнать, введено ли вообще числовое значение функцией IsNumeric), произвести расчёты и
вывести результаты в новом окне сообщения, полученном функцией MsgBox. Её первым аргументом мы передаём строку, выводимую в окне, её можно получить сложением строк в двойных кавычек и/или числовых значений, которые нужно преобразовать к строковым функцией Str.

Теперь можно нажать зелёный треугольничек или клавишу F5 в редакторе VBA, чтобы запустить программу.
Если доступно несколько программ или текстовый курсор не установлен внутри программы, компьютер может попросить выбрать нужную по имени:

запуск программы из редактора Visual Basic

запуск программы из редактора Visual Basic

Чтобы макросы не пропали, при первом сохранении рабочей книги нужно выбрать пункт меню «Сохранить как» и указать в списке «Тип файла» значение «Книга Excel с поддержкой макросов (*.xlsm)».

Обычно мы хотим запускать программу не из Visual Basic, а прямо из документа, например, нажимая кнопку.

Чтобы встроить кнопку непосредственно в документ Word или Excel, действуем так:

1. На вкладке разработчика нажмём кнопку «Режим конструктора» и выберем нужный элемент управления, например, кнопку:

выбор инструмента "Кнопка"

выбор инструмента «Кнопка»

2. Потом курсором-крестиком «нарисуем» кнопку в документе и нажмём «Создать» в окне «Назначить макрос объекту», чтобы кнопке была назначена пустая процедура-обработчик её основного события (то есть, нажатия):

добавление кнопки на лист

добавление кнопки на лист

3. После этого можно запрограммировать процедуру обработки нажатия нашей кнопки.

Обращаться к ячейкам Excel из программы VBA тоже очень легко, вот несколько примеров:

Range("B1").Value = 2018	
'Поместить в ячейку B1 текущего листа значение 2018

Range("A1:A10").Select
Range("A1:A10").Value = "Программа"	
'Выделить и заполнить словом "Программа" ячейки A1:A10

Range("C2").Font.Size = 18	
'В ячейке С2 установить размер шрифта 18

For N = 1 To 10
  Range("D" & N).Value = _
   Range("D" & (N + 1)).Value
 Next	
'Сдвинуть вверх ячейки от D1 до D10 (пропадает первое значение)

Sheets("Лист1").Cells(1, 1) = 13 ^ 64	
'Записать в ячейку A1 листа "Лист1" большое числовое значение

Ну и немного более законченного кода.

Попробуйте скопировать в VBA и выполнить эти 2 несложных программы, и начальный опыт программирования в нём у Вас появится :)

Первая программа может быть назначена кнопке и позволяет ввести из столбца A текущего рабочего листа столько числовых значений, сколько их там набрано, но не больше 100.

Полученные значения заносятся в массив A, заполнение прекращается по достижении пустой ячейки, ячейки, заполненной не числом или когда набрано 100 элементов.

Затем от введённых чисел рассчитывается сумма и записывается в ячейку B6.

Sub Кнопка5_Щелчок() 'Кнопка Массив
 Dim A(100) As Double
 Dim N As Integer
 N = 0
 For I = 1 To 100
  V = Range("A" & I).Value
  If (IsEmpty(V) Or IsNumeric(V) = False Or N > 100) Then
   MsgBox "Введено чисел : " & N
   Exit For
  End If
  A(I) = V
  N = N + 1
 Next I
 Dim S As Double
 S = 0
 For I = 1 To N
  S = S + A(I)
 Next I
 Range("B6").Value = S
End Sub

Вторая программа предполагает, что в ячейках B12 и B13 рабочего листа записаны 2 даты. Это могут быть строки, интерпретируемые Вашим Excel как даты, например, 01.01.2001 или даты, полученные формулой, скажем, =СЕГОДНЯ()

По нажатию кнопки даты проверяются, если двух дат не найдено, выводится сообщение и программа завершается.

В противном случае мы вычисляем и выводим в ячейку B16 количество дней между датами, а в C12 и C13 — дни недели по русски. Добавьте небольшое оформление и получите простейший калькулятор дат:

Sub Кнопка4_Щелчок() 'Кнопка Вычислить
 Dim d1, d2 As Date
 d1 = Range("B12").Value
 d2 = Range("B13").Value
 'Обработка ошибок ввода (IsNumeric для чисел)
 If (IsDate(d1) = False Or IsDate(d2) = False) Then
  MsgBox "Введите 2 даты", vbOKOnly, "Ошибка"
  Exit Sub
 End If
 'Расчёты
 Days = DateDiff("d", d1, d2, vbMonday)
 Range("B16").Value = Days 'Прошло дней
 Dim A(7) As String
 A(1) = "Пн": A(2) = "Вт": A(3) = "Ср"
 A(4) = "Чт": A(5) = "Пт": A(6) = "Сб"
 A(7) = "Вс"
 wd1 = Weekday(d1, vbMonday) 'Дни недели
 Range("C12").Value = A(wd1)
 wd2 = Weekday(d2, vbMonday)
 Range("C13").Value = A(wd2)
End Sub

пример "интерфейса" для макроса VBA

пример «интерфейса» для макроса VBA

09.05.2018, 10:56 [9940 просмотров]


К этой статье пока нет комментариев, Ваш будет первым

Понравилась статья? Поделить с друзьями:
  • Пример задача на поиск решения в excel примеры
  • Пример задания функции если в excel
  • Пример задания таблицы excel
  • Пример заданий для прохождения excel собеседования
  • Пример ежедневника в excel