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