ПЗ-10. Использование макросов и модулей VBA для других задач. 
";


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



ЗНАЕТЕ ЛИ ВЫ?

ПЗ-10. Использование макросов и модулей 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, то не будем знать, сколько всего добавлено кнопок.



Поделиться:


Последнее изменение этой страницы: 2017-01-20; просмотров: 323; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.216.230.107 (0.004 с.)