Интернет-журнал "Домашняя лаборатория", 2007 №7
Шрифт:
Рис. 6.9. Список методов объекта Selection.
Из справки по ней (рис. 6.10) узнаем ее синтаксис:
Selection.Collapse Direction:=wdCollapseEnd.
Рис. 6.10. Справка по команде Collapse.
Эта команда
Можно также вставить текст в активный документ "Selection.TypeText Техt="Мой текст" (двоеточие после слова "Text" обязательно). Тогда в специальном снятии выделения со вставленного текста не будет необходимости, — оно будет автоматически сворачиваться к своему концу.
А если вдруг пользователь вызовет программу тогда, когда открытых документов в Word'e нет? Тогда ведь возникнет ошибка программы. Но этого легко избежать — надо просто проверить перед вставкой, есть ли открытые документы и, если нет, создать новый:
If Documents.Count = 0 Then Documents.Add
Осталась еще одна маленькая деталь. Кнопка "Вставить результат в документ" не должна работать, если результат вычислить нельзя (то есть поле "TextBox6" пусто). Как это сделать? Среди всего набора возможных свойств элемента "CommandButton" есть свойство "Enabled" (рис. 6.11) — если его установить как "False" (то есть "ложно"), то кнопка будет отображаться серым цветом и не будет реагировать на события (станет неактивной).
Рис. 6.11.Свойство Enabled элемента CommandButton.
Это свойство можно задать и программно — командой "CommandButton1.Enabled = False". Поставим в процедуру вычисления результата пару команд, активизирующих кнопку, когда результат вычисляется и вставка его в текст возможна, и инактивирующих ее в противном случае, а также зададим с самого начала в форме свойство "Enabled" этой кнопки как "False", — чтобы она была неактивной с самого начала, до того, как в какое-либо окно ввода будут вводиться символы и начнет срабатывать процедура вычисления результата с командами задания состояния кнопки.
Вот готовый код нашей программы:
Private Sub CommandButtonl_Click
If Documents.Count = 0 Then Documents.Add
Selection. Text = "При прохождении тока напряжением в " + TextBox1. Text + " вольт по проводнику длиной " + TextBox4. Text + " метров, сечением " + TextBox3. Text + " кв. мм и удельным сопротивлением " + ТехtBox5. Text + " ом на метр за " + TextBox2. Text + " секунд выделится" + TextBox6. Text + " джоулей теплоты. "
Selection.Collapse Direction:=wdCollapseEnd
End Sub
Private Sub CommandButton2_Click
Unload Me End Sub
Private Sub TextBox1_Change
Scet End Sub
Private Sub TextBox2_Change
Scet End Sub
Private Sub TextBox3_Change
Scet End Sub
Private Sub TextBox4_Change
Scet End Sub
Private Sub TextBox5_Change
Scet End Sub
Private Sub Scet
If IsNumeric (TextBox1. Text) = True And IsNumeric (TextBox2. Text) = True And IsNumeric (TextBox3. Text) = True And IsNumeric (TextBox4. Text) = True And IsNumeric (TextBox5. Text) = True And Not Val (TextBox4. Text) = 0 And Not Val (TextBox5. Text) = 0 Then
rez = ((Val (TextBox1. Text) ^ 2) * Val (TextBox2. Text) * Val (TextBox3. Text)) / (Val (TextBox4. Text) * Val (TextBox5. Text))
TextBox6. Text = Str$ (rez)
CommandButtonl.Enabled = True Else
TextBox6. Text = " "
CommandButton1.Enabled = False
End If
End Sub
Назначить
форме кнопку или пункт меню для вызова из Word нельзя, — это возможно только для модулей. Поэтому переименуем для красоты форму в "Teplotok", например (свойство "Name" объекта "UserForm" — можно задать в окне свойств, выделив форму) и напишем модуль, в котором будет всего одна команда — вызов созданной нами формы:Sub TeploCount
Teplotok.Show
End Sub
Зададим модулю красивое имя ("Teplo", например, через свойство "Name" объекта "Модуль1" (рис. 6.12), если модуль для программы вызова формы был вставлен с помощью пункта "Вставить — Модуль" контекстного меню правой кнопки мыши в Менеджере проектов) и назначим в Word кнопку для вызова макроса "Normal.Teplo.TeploCount". Вот и все — наша программа готова (рис. 6.13).
Рис. 6.12. Задание модулю нужного имени.
Рис. 6.13. Окно готовой программы.
Теперь ее можно вызывать на выполнение соответствующей кнопкой. При желании можно скопировать форму и модуль в отдельный шаблон и создать в нем панель инструментов с кнопкой вызова макроса, — тогда программу можно будет установить и на другие компьютеры, скопировав шаблон с макросом в папку автозагружаемых файлов Word.
ОКОНЧАТЕЛЬНАЯ ДОРАБОТКА
Когда программа написана и отлажена, необходимо придать ей "товарный вид" — сделать так, чтобы использовать ее было удобно и просто, а установка не требовала от пользователя каких-либо невероятных усилий. Кроме того, весьма желательно максимально сократить размер установочного комплекта, — наверняка большинство пользователей будут загружать программу через Интернет, так что стоит позаботиться об их времени и деньгах.
Ниже будут описаны некоторые действия, которые весьма желательно проделать перед тем, как выставлять свое творение на всеобщее обозрение. Как и прежде, в качестве основной платформы для разработки рассматривается Microsoft Word, поэтому все нижеизложенное относится к программам, разработанными именно для этого текстового редактора, если не указано иное.
Для начала надо решить, в каком формате программу стоит оформить — как простой шаблон Word, на основе которого можно создавать документы, как шаблон Word, загружаемый автоматически при запуске Word'а или как простой документ.
1. Если программа предназначена для одномоментных нечасто используемых расчетов или действий и не работает с текстом документа, то ее проще всего поместить в документ Word — с расширением".doc". При необходимости его можно будет открыть и выполнить программу. Например, очень хорошо в качестве отдельного документа сделать инсталлятор программы.