Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

ПЗ-9. Использование макросов и модулей VBA.




Создадим новый лист Модули. Напишем макрос для заполнения столбца F листа геометрической прогрессией. Вызы­ваем меню Сервис-Макрос-Начать запись, в окне Запись макроса задаем имя ГеомПрогр, нажимаем ОК и дальше выполняем действия для построения прогрессии: в ячейку F1 вводим число 2, нажимаем зеленую галочку, вызываем меню Правка-Заполнить-Прогрессия, в окне Прогрессия выбираем пункты: по столбцам, геометрическая, шаг 2, предельное значе­ние 100000, кнопка ОК, прекращаем запись макроса.

Наносим кнопку из панели Формы на лист и назначаем ей макрос ГеомПрогр, на кнопке задаем название: "Постро­ить геометрическую прогрессию".

Сразу же напишем макрос очистки столбца F: вызовем окно записи, присвоим имя Очистка, нажмем ОК и выделим диапазон F1:F20, нажмем кнопку Delete, щелкнем по ячейке G4, прекратим запись макроса. Нанесем новую кнопку рядом с кнопкой построения прогрессии, присвоим ей макрос Очистка, изменим надпись кнопки: "Очистить столбец F". Пощелкаем созданными кнопками.

Нажмем сочетание клавиш Alt+F8 ( вызов окна Макросы), выберем макрос Очистка, нажмем кнопку Войти. Появится окно с модулем VBA, где активной будет запись про­граммы Очистка (Sub Очистка()). В этой программе перечислены операторы, которые мы за­давали при записи макроса своими действиями.

Sub Очистка()

' Очистка Макрос ' Макрос записан...

Range("F1:F20").Select

Selection.Clear

Range("G4").Select

End Sub

Можно, при необходимости, изменить действия макроса (программы) прямо в данном модуле.

Нанесем на лист еще одну кнопку и присвоим ей макрос Возврат. Находясь на титуль­ном листе, напишем макрос ОткрМодули для открытия листа Модули и присвоим его кнопке открытия.

Теперь на листе Модули сделаем так, чтобы при нажатии специальной кнопки на лист помещалась новая кнопка, на ней появлялась надпись "новая кнопка", а в ячейке А3 производился подсчет количества созданных новых кнопок. Для подсчета новых кнопок объявим переменную n% (объявление в качестве целого числа) в области объявления переменных, там же поместим декларацию "Option Explicit", которая будет инициировать проверку описания встречаемых в программе переменных. В программу макроса открытия листа Модули добавим операторы присвоения нуля переменной n и записи этого значения в ячейку А3.

Option Explicit

Dim n%

Sub ОткрМодули()

' Функция Макрос' Макрос записан...

n = 0

ActiveWindow.ScrollWorkbookTabs Position:=xlLast

Sheets(" Модули ").Select

Range("A3").Select

ActiveCell.FormulaR1C1 = n ' Запись 0 в ячейку А3

End Sub

Запишем макрос (КнопкаAdd - его программа приведена ниже), выполнив все действия по добавлению новой кнопки и изменению надписи на ней. Присвоим этот макрос кнопке с названием "Добавить новую кнопку!". Щелчки по ней будут добавлять на лист новую кнопку. Однако необходимо вести подсчет новых (добавленных) кнопок. Для этого в программе макроса КнопкаAdd необходимо значение переменной n увеличивать на единицу при каждой новой добавленной кнопке. Поэтому в программе макроса КнопкаAdd необходимо добавить операторы (ниже в распечатке программы они находятся в конце и выделены полужирным курсивом).

Sub КнопкаAdd()

' КнопкаAdd Макрос

' Макрос записан....

ActiveSheet.Buttons.Add(399.75, 110.25, 127.5, 29.25).Select

Selection.Characters.Text = "новая кнопка"

With Selection.Characters(Start:=1, Length:=12).Font

.Name = "Arial Cyr"

.FontStyle = "обычный"

.Size = 12 …

.ColorIndex = xlAutomatic

End With

n = n + 1

Range("A3").Select

ActiveCell.FormulaR1C1 = n

End Sub

Обнуление переменной n будет производиться при открытии листа Модули (распечатка программы ОткрМодули приведена выше).

Щелкая по кнопке "Добавить новую кнопку!" будем на листе добавлять кнопки с надписью "новая кнопка" одну над другой – если не вести учет в ячейке А3, то не будем знать, сколько всего добавлено кнопок.

Лист с кнопками и фрагментами программ модулей.

 

Создать кнопку "Закрыть Книгу" на титульном листе и написать для нее макрос. В тексте этого макроса поместить дополнительные операторы (написаны ниже, полужирный шрифт):

b = MsgBox("закрыть книгу? если ДА, то закроем...", vbYesNo, "Не надо, пожалуйста!")

If b = 7 Then ‘значение 7 означает выбор NO в окне диалога

MsgBox ("Все-равно не сможете работать дальше!!!")

GoTo 22

End If

MsgBox ("Ладно, закрывайте... Что делать???")

ActiveWindow.Close

 

Если вместо последнего (подчёркнутого) оператора поставить GoTo 22, то закрытие книги станет невозможным.

 

Для справки: после ПЗ №9 в книге должны быть листы:

Данные, График, 13пт, Титул, ТабУмн, Вклады, СанДень, Синус, ТаблФормулы, Текст, ДатаПропись, Список, Модули, листы контрольных работ и других расчетов.

Кроме того, отдельно д.б. книга ЖурналОпераций.


Поделиться:





Читайте также:

II. Использование галереи фильтров
VIII. ТЕХНИКА ИЗМЕНЕНИЯ ЛИЧНОЙ ИСТОРИИ С ИСПОЛЬЗОВАНИЕМ ВИЗУАЛЬ НОЙ СИСТЕМЫ.
А) С использованием кривых Безье
А. Проверка подлинности процессов при распределении ключей с использованием ЦРК
Билет № 27 Макроэкономические показатели, их взаимосвязь и использование в хоз.практике.
В рыночной экономике роль денег значительно повышается, чему способствуют создание и использование предпосылок, характерных для новых условий хозяйственной деятельности.
Вакуумные фотоэлементы и фотоэлектронные умножители, их использование в звуковом кино. Передающие телевизионные трубки. Изобретение электронно-лучевой трубки.
Ввод данных в базу. Использование формы данных
Ввод табличной формулы с использованием имен диапазонов.
Виды фондов рабочего времени и их использование при расчете необходимой численности работников.






Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...