Тема: Строим Мини АВК

Прислано Valentin February 01 2009 18:14
#10

Портал сметчиков

Урок 3 -За кулисами ЕКСЕЛЯ.

а)Макросы.


Прежде чем начать манипуляции с нашей базой данных, нам нужно научиться управлять командами ЕКСЕЛЯ.
С работой на листах многие не просто знакомы. Применение формул, функций встроенных в ЕКСЕЛЬ не раз приходилось применять в повседневной работе. А вот создавать свои функции и подчинать ЕКСЕЛЬ своим требованиям пожалуй умеют не многие (кто тему знает, может урок пропустить).

Итак МАКРОСЫ.
Приставка "макро" часто встречается в в техническом и научном языке, происходит от греческого слова - "большой". В ЕКСЕЛЬ -это большая команда, состоит из набора небольних команд.
Макрос -это даже минипрограмма, составленная из определенных команд.
ЕКСЕЛЬ оснащен механизмом, который создает сам макросы.
Он записывает Ваши действия в виде команд VBA (язык понятен приложениям М-офиса), которые впоследствии можно воспроизвести.
Настроим наш ЕКСЕЛЬ на работу с макросами.
Открываем -меню >> сервис >> макрос >> безопасность >> устанавливаем: средняя.
Сохраняем книгу под именем "Урок-3".
Установим для удобства панель инструменов - меню >> вид >> панель инструментов >> Visual Basic. Попробуем записать наш первый макрос.
На панели нажимаем красную кнопочку (записать макрос), имя макроса оставим как есть, ОК и как в магнитофоне -тишина, идет запись.
Вы полняем действия: немного раздвинем столбик B, в ячейку A1 пишим 1, в В1 - Иванов, С1 -муж, D1- 1990. Нажимаем на плавающем окошке - остановить.
Макрос записан. Сотрем все наши записи и попробуем вызвать джина из бутылки.
Нажимаем зеленую стрелку - выполнить макрос - внизу окна -надпись - находится в: выберем- Урок 3, т.е. в нашей книге. Выбираем Макрос1 -жмем -выполнить. Макрос воспроизвел наши записи.
Где же хранятся команды, которые записал макрос??
На панеле жмем- редактор Visual Basic - и попадаем за кулисы, в окно проекта VBA или в среду программирования, где и хранятся все формы книги, листы и пр.
Слева в верхнем окне проекта видим папку MODULES, открываем, в ней Module1- это наш модуль с нашим макросом:

Sub Макрос1()
'
' Макрос1 Макрос
' Макрос записан 31.01.2009 (Valentin)
'

'
Columns("B:B").ColumnWidth = 17.86
Range("A1").Select
ActiveCell.FormulaR1C1 = "1"
Range("B1").Select
ActiveCell.FormulaR1C1 = "Иванов"
Range("C1").Select
ActiveCell.FormulaR1C1 = "муж"
Range("D1").Select
ActiveCell.FormulaR1C1 = "1990"
Range("E1").Select
End Sub


Из записей наших действий все становится понятным. Если мы не знаем каких-то команд VBA, мы можем выполнить интересующие нас действия и ЕКСЕЛЬ сам запишет нужные команды.
Sub Макрос1() -начало макроса или программы, End Sub -окончание.
Но тупое повторение наших действий вряд ли пригодится в нашей программе.
Изменим наш макрос. Зададим условие: Если в ячейке A1 установить значение 2, то B1 должна быть заполнена записью "Иванов Иван Иванович", размер ячейки B1 при этом увеличится ну раза в два. Пишем:

Sub Макрос1()
'
' Макрос1 Макрос
' Макрос записан 31.01.2009 (Valentin)
'

'
Range("A1").Select
If ActiveCell.Value = "2" Then 'если в ячейке А значение 2 тогда:
Columns("B:B").ColumnWidth = 35
Range("B1").Select
ActiveCell.FormulaR1C1 = "Иванов Иван Иванович"
Range("C1").Select
ActiveCell.FormulaR1C1 = "муж"
Range("D1").Select
ActiveCell.FormulaR1C1 = "1990"
Else: 'иначе

Columns("B:B").ColumnWidth = 17.86
Range("A1").Select
ActiveCell.FormulaR1C1 = "1"
Range("B1").Select
ActiveCell.FormulaR1C1 = "Иванов"
Range("C1").Select
ActiveCell.FormulaR1C1 = "муж"
Range("D1").Select
End If 'конец условия

End Sub


Ставим в А1 -2, запускаем, техника нас слушается.

Запускать макрос (программу) через меню панели -очень неудобно.
Создадим кнопочку для запуска макроса.

б)Кнопки.

Выберем в нашей панельке "элементы управления".
Нажмем "Кнопка" и где-то в районе F2 нашего листа нарисуем курсором прямоугольник.
Отпустив кнопку мішки -увидим появившуюся кнопку.
Кликаем по ней два раза, попадаем в окно проекта:
Private Sub CommandButton1_Click()

End Sub

Вставим в тело программы имя нашего макроса: Макрос1
Private Sub CommandButton1_Click()
Макрос1
End Sub

Вернемся к нашей кнопке и выйдем из режима конструктора.
Теперь нажав на кнопку вызывается наша программа Макрос1.

Думаю, сегодня мы достаточно ознакомились с азами программирования в ЕКСЕЛЬ.
Настало время приступить непосредственно к программированию нашей программы.

На следующем уроке этим и займемся.