Шаг 199.
VBA в MSExcel. Практические приемы программирования на VBA. Тема: заполнение базы данных. Практика (окончание)

    На этом шаге мы рассмотрим использование макрорекордера.

    Процедура ЗаголовокРабочегоЛиста выглядит немножко устрашающе. При ее написании лучше всего воспользоваться MacroRecorder, который переведет производимые действия по созданию примечаний пользователем вручную на язык VBA. Итак, для активизации MacroRecorder выберите команду Сервис | Макрос | Начать запись (Tools | Macro | Record New Macro) и запустите MacroRecorder на запись. После задания всех параметров в появившемся диалоговом окне Запись макроса (Record Macro) и нажатия кнопки ОК появится плавающая панель инструментов с кнопкой Остановить запись (Stop Recording). Теперь все производимые действия будут записываться до тех пор, пока не будет нажата эта кнопка. Постройте примечания по следующему алгоритму. Кроме того, для того чтобы разобраться, как программируется закрепление области на рабочем листе, в этот алгоритм входит также и закрепление первой строки рабочего листа.

  1. Щелкните кнопку заголовка второй строки. Вторая строка выделится. Выберите команду Окно | Закрепить области (Window | Freeze Panes).
  2. Выделите ячейку A1 и выполните команду Вставка | Примечание. Очистите появившееся текстовое поле и введите текст Фамилия клиента.
  3. Для завершения вводы выделите ячейку B1 и снова выполните команду Вставка | Примечание. Очистите появившееся текстовое поле и введите текст Имя клиента и т. д. последовательно для ячеек от С1 до H1.

    Перечисленные выше действия будут переведены MacroRecorder в следующий макрос.

Sub Макрос1()
'
' Макрос1 Макрос
' Макрос записан 29.01.2014 (Медведев)
'

'
    Rows("2:2").Select
    ActiveWindow.FreezePanes = True
    Range("A1").Select
    Range("A1").AddComment
    Range("A1").Comment.Visible = False
    Range("A1").Comment.Text Text:="Фамилия клиента"
    Range("B1").Select
    Range("B1").AddComment
    Range("B1").Comment.Visible = False
    Range("B1").Comment.Text Text:="Имя клиента"
    Range("C1").Select
    Range("C1").AddComment
    Range("C1").Comment.Visible = False
    Range("C1").Comment.Text Text:="Пол клиента"
    Range("D1").Select
    Range("D1").AddComment
    Range("D1").Comment.Visible = False
    Range("D1").Comment.Text Text:="Направление" & Chr(10) & _
                                          "выбранного тура"
    Range("E1").Select
    Range("E1").AddComment
    Range("E1").Comment.Visible = False
    Range("E1").Comment.Text Text:="Путевка оплачена?" & Chr(10) & _
                                          "(Да/Нет)"
    Range("F1").Select
    Range("F1").AddComment
    Range("F1").Comment.Visible = False
    Range("F1").Comment.Text Text:="Фото сданы?" & Chr(10) & _
                                          "(Да/Нет)"
    Range("G1").Select
    Range("G1").AddComment
    Range("G1").Comment.Visible = False
    Range("G1").Comment.Text Text:="Наличие паспорта" & Chr(10) & _
                                          "(Да/Нет)"
    Range("H1").Select
    Range("H1").AddComment
    Range("H1").Comment.Visible = False
    Range("H1").Comment.Text Text:="Продолжительность" & Chr(10) & _
                                          "поездки"

End Sub

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

    Аналогично, при написании фрагмента программы, связанного с созданием текстового поля, лучше всего воспользоваться MacroRecorder, который переведет производимые пользователем вручную действия по созданию текстового поля на язык VBA. Итак, для активизации MacroRecorder выберите команду Сервис | Макрос | Начать запись (Tools | Macro | Record New Macro) и запустите MacroRecorder на запись. После задания всех параметров в появившемся диалоговом окне Запись макроса (Record Macro) и нажатия кнопки ОК появится плавающая панель инструментов с кнопкой Остановить запись (Stop Recording). Теперь все производимые действия будут записываться до тех пор, пока не будет нажата эта кнопка. Постройте текстовое поле по алгоритму:

  1. Нажмите кнопку Надпись (Text box) панели Рисование (Drawing) и создайте на рабочем листе текстовое поле.
  2. Наберите в текстовом поле следующий текст:
        Программа составлена Константином Брикаловым 
        для регистрации клиентов туристической фирмы.
    
  3. Выделите текстовое поле и смените цвет его заливки на желтый, нажав кнопку Цвет заливки (Fill Color) панели инструментов Рисование (Drawing).

    Перечисленные выше действия будут переведены MacroRecorder в следующий макрос.

Sub Макрос2()
'
' Макрос2 Макрос
' Макрос записан 29.01.2014 (Медведев)
'

'
    ActiveSheet.Shapes.AddTextbox(msoTextOrientationHorizontal, 9.75, 45#, _
        108.5, 96#).Select
    Selection.Characters.Text = _
        "Программа составлена Константином Брикаловым для регистрации " & Chr(10) _
        & "клиентов" & Chr(10) & "туристической " & Chr(10) & "фирмы"
    With Selection.Characters(Start:=1, Length:=86).Font
        .Name = "Arial Cyr"
        .FontStyle = "обычный"
        .Size = 10
        .Strikethrough = False
        .Superscript = False
        .Subscript = False
        .OutlineFont = False
        .Shadow = False
        .Underline = xlUnderlineStyleNone
        .ColorIndex = xlAutomatic
    End With
    Selection.ShapeRange.Fill.ForeColor.SchemeColor = 13
    Selection.ShapeRange.Fill.Visible = msoTrue
    Selection.ShapeRange.Fill.Solid
End Sub

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

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




Предыдущий шаг Содержание Следующий шаг