Ветой статті ми будемо створювати программукоторая буде вставляти в документ Wordтабліцу. Ти звичайно ж скажеш: --Зачем мені потрібна ця програма, якщо естьстандартная, нічим не гірша за цю. і будешькак завжди неправий. Адже з цієї статті ти не тільки поповниш знання в VBA, але і научішьсяпісать і застосовувати на практиці ActiveXкомпоненти.
Есліти зовсім не знайомий з програмуванням наVBA, то можеш прочитати мою статтю "ІспользованіеUserForm в VBA". У ній дається краткоеопісаніе мови, проводиться паралель междуVBA і VB, їх подібності та відмінності.
СозданіеActiveX компонента
Ура. Настала пора писати свій ActiveX компонент.Пісать його ми будемо на VisualBasic "e. І так, почнемо. Запускаємо Бейсік, перед вами з'являється вікно New Project, вибираємо в ньому" ActiveX Control ". Перед вами повинна появітсятакая форма:
Вона схожа на обичнуюформу у якій властивість BorderStyle = 0 - None. Нуладно, йдемо далі. Кидаємо сюди текстовоеполе, властивість Text = 1, властивість Locked = True (чтобинельзя було ввести текст в це текстовоеполе). Нижче ставимо дві кнопки. Властивість Caption 1 кнопки = "<", свойство Caption 2 кнопки = ">". Підганяємо розмір User Control" a під наші кнопки ітекстовое поле. Тепер надопереіменовать наш проект і User Control. Дамо ім'я проекту Mein, UserContol "y" Spin ". Ваш ActiveX долженвиглядеть приблизно так:
Після того як ми її оголосили переходимо ксобитію Initialize User Control "a, і вводимо тудаследующій код:
Private Sub UserControl_Initialize ()
Number = 1
End Sub
Здесьми присвоюємо змінної Number значення1. Тепер переходимо до події Click первойкнопкі і вводимо туди такий код:
Private Sub Command1_Click ()
If Number> 1 Then
Number = Number - 1
Text1.Text = Number
End If
End Sub
Прінажатіі на неї ми перевіряємо змінну Number, якщо вона більше 1 віднімаємо від неї 1, втекстовое поле вставляємо значення етойпеременной. У подія Click другий кнопківставляем код:
Private Sub Command2_Click ()
If Number <100 Then
Number = Number + 1
Text1.Text = Number
End If
End Sub
Онаналогічен коду першої кнопки, тільки здесьвсе навпаки. змінна перевіряється, якщовони менше ста до її значенням прібавляетсяпо 1 при кожному натисканні другої кнопки. Як визаметілі діапазон цифр в текстовому полі від 1до 100.
Все, зі створенням ActiveX закінчено, залишилося толькооткомпіліровать його в ОСГ файл. Для етогозаходім File натискаємо на Make Mein.ocx, вибираємо для цього відповідну директорію інажімаем OK.
VisualBasic при компіляції реєструє OCX "си всистемі, тому цей файл будетавтоматіческі доданий в список ActiveX" овпрограмм пакета MS Office. А щоб використовуватися в проектах VisualBasic "a доведеться натиснути Project> Components> Browse. Відкрити папку в которойнаходятся потрібний OCX і клікнути по ньому 2 рази.
Созданіепрограмми для WORD "A
Кідаемдва таких інструменту на нашу форму, одінпод іншим, зліва від них ставимо лейбли, вверхній мітці властивість Caption = "Чіслостолбцов", в нижній "Число рядків" .Нижче всього цього ставимо дві кнопки, уверхней властивість Name = cmdNewTables, властивість Caption = "Створити таблицю ", у ніжнейсоответственно Name =" cmdCancel ", Caption =" Скасувати ". З права можна помістити лейблс описом програми. У вас должнополучітся приблизно так:
Сінтерфейсом програми розібралися, а це, повір мені читач, зовсім не мало.Пріступаем до завершальної стадії нашейстатьі, пишемо програмний код нашейпрограмми. Він зовсім не складний благодарятому що ми використовуємо ActiveX компоненти. Отже, почнемо, перед цим злегка закатімрукава, так на всякий випадок, щоб не заважає :))). Кількома два рази по кнопці cmdNewTables і вносимо туди такий код:
Private Sub cmdNewTables_Click ()
Dim myrange
Set myrange = ActiveDocument.range (0, 0)
Selection.Tables.Add range: = myrange, NumRows: = Spin2.Number, _ NumColumns: = Spin1.Number
Selection.Collapse Direction: = wdCollapseEnd
Unload Me "вивантажувати наше вікно
End Sub
Ондостаточно простий і я не буду заострятьвніманіе на кожному рядку програми (есліти щось не зрозуміло можеш посмотретьсправку, в ній все детально описано), а лішьоб'ясню підключення нашого ActiveX компонента, вірніше двох його примірників.
Private Sub cmdCancel_Click ()
Unload Me "вивантажити це вікно
End Sub
Осталсяпоследній штрих - винести нашу програму напанель інструментів MS Word "а. Для етогосоздаем новий модуль (він создаетсяаналогічно формі, даємо йому ім'я modTables. Івпісиваем в нього наступний код:
Послередактірованія кнопки закриваємо вікно "Налаштування" і тиснемо по новій кнопці. Якщо все сделаліправільно, має відкритися вікно яке миделалі вище.
Все.В цій статті ми навчилися писати ActiveXкомпоненти, вставляти таблицю в документWord "а. Свої побажання, зауваження та інше, шліть мені на мило [email protected]. Не забувайте відвідувати мій сайт: www.worldvb.narod.ru. Також мене можна знайти в ICQ: 347384533.
Спасібочто прочитали мою статтю. ))).