Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Сообщений [ 7 ]
- aap77
- генерал-полковник
- Неактивен
- Зарегистрирован: 12.09.2011
- Сообщений: 925
- Поблагодарили: 242
Тема: Общая форма для просмотра свойств Класса
В данной теме рассказываю о создании простой формы пользователя для просмотра свойств какого-либо Класса.
Для начала создадим пользовательскую форму UserForm в редакторе VBA, для этого в шаблоне Normal создайте новую форму.

В окне Properties задайте следующие свойства формы:
1. Name - form_ClassInfo (уникальное имя формы)
2. Height - 400 (высота формы)
3. Width - 300 (ширина формы)
4. ShowModal - False (при ShowModal = False, Активный документ доступен для редактирования, при ShowModal = True Активный документ доступен для редактирования только после закрытия формы.
Post's attachments002.jpg
002.jpg 115.45 Кб, 2 скачиваний с 2012-05-17
You don't have the permssions to download the attachments of this post.
- aap77
- генерал-полковник
- Неактивен
- Зарегистрирован: 12.09.2011
- Сообщений: 925
- Поблагодарили: 242
Re: Общая форма для просмотра свойств Класса
Далее на созданной форме создаем элементы управления как показано на рисунке

Файл формы на данном этапе вложен в следующем посте
Post's attachments003.jpg
003.jpg 183.68 Кб, 2 скачиваний с 2012-05-17
You don't have the permssions to download the attachments of this post.
- aap77
- генерал-полковник
- Неактивен
- Зарегистрирован: 12.09.2011
- Сообщений: 925
- Поблагодарили: 242
Re: Общая форма для просмотра свойств Класса
Для вставки формы в Ваш проект разархивируйте вложенный архив в какую-нибудь папку.
Откройте редактор VBA, выберете проект Normal, выведете правым кликом всплывающее меню и выберете ImportFile. Укажите путь к разархивированному файлу с расширением .frm
Post's attachmentsform_ClassInfo.rar 1.55 Кб, 1 скачиваний с 2012-05-17
You don't have the permssions to download the attachments of this post.
- aap77
- генерал-полковник
- Неактивен
- Зарегистрирован: 12.09.2011
- Сообщений: 925
- Поблагодарили: 242
Re: Общая форма для просмотра свойств Класса
После создания интерфейса формы откроем окно кода формы и создадим свойство Unit(Единица измерения), для радиокнопок находящихся в рамке «Единицы измерения» события Chenge
Public Unit As WdMeasurementUnits
Private Sub opb_Lines_Change()
If Me.opb_Lines.Value = True Then
Me.Unit = wdPicas
End If
End Sub
Private Sub opb_UnitApplication_Change()
If Me.opb_UnitApplication.Value = True Then
Me.Unit = ThisDocument.Application.Options.MeasurementUnit
End If
End Sub
Private Sub opb_UnitCentimeters_Change()
If Me.opb_UnitCentimeters.Value = True Then
Me.Unit = wdCentimeters
End If
End Sub
Private Sub opb_UnitInches_Change()
If Me.opb_UnitInches.Value = True Then
Me.Unit = wdInches
End If
End Sub
Private Sub opb_UnitMillimeters_Change()
If Me.opb_UnitMillimeters.Value = True Then
Me.Unit = wdMillimeters
End If
End Sub
Private Sub opb_UnitPicas_Change()
If Me.opb_UnitPicas.Value = True Then
Me.Unit = wdPicas
End If
End Sub
Private Sub opb_UnitPoints_Change()
If Me.opb_UnitPoints.Value = True Then
Me.Unit = wdPoints
End If
End Sub
Отредактировано aap77 (17.05.2012 20:04:22)
- aap77
- генерал-полковник
- Неактивен
- Зарегистрирован: 12.09.2011
- Сообщений: 925
- Поблагодарили: 242
Re: Общая форма для просмотра свойств Класса
Далее создадим функцию перевода единиц измерения в зависимости от свойства Unit:
Public Function Value(Num As Variant) As Single
If Me.Unit = wdInches Then
Value = PointsToInches(Num)
Exit Function
ElseIf Me.Unit = wdCentimeters Then
Value = PointsToCentimeters(Num)
Exit Function
ElseIf Me.Unit = wdMillimeters Then
Value = PointsToMillimeters(Num)
Exit Function
ElseIf Me.Unit = wdPoints Then
Value = Num
Exit Function
ElseIf Me.Unit = wdPicas Then
Value = PointsToPicas(Num)
Exit Function
End If
End Function
- aap77
- генерал-полковник
- Неактивен
- Зарегистрирован: 12.09.2011
- Сообщений: 925
- Поблагодарили: 242
Re: Общая форма для просмотра свойств Класса
Теперь создадим свойство Info в котором будет содержаться текст выводимой информации.
Общий код для созданной нами формы будет выглядеть так:
Public Unit As WdMeasurementUnits
Dim Info As String
Private Sub opb_Lines_Change()
If Me.opb_Lines.Value = True Then
Me.Unit = wdPicas
End If
End Sub
Private Sub opb_UnitApplication_Change()
If Me.opb_UnitApplication.Value = True Then
Me.Unit = ThisDocument.Application.Options.MeasurementUnit
End If
End Sub
Private Sub opb_UnitCentimeters_Change()
If Me.opb_UnitCentimeters.Value = True Then
Me.Unit = wdCentimeters
End If
End Sub
Private Sub opb_UnitInches_Change()
If Me.opb_UnitInches.Value = True Then
Me.Unit = wdInches
End If
End Sub
Private Sub opb_UnitMillimeters_Change()
If Me.opb_UnitMillimeters.Value = True Then
Me.Unit = wdMillimeters
End If
End Sub
Private Sub opb_UnitPicas_Change()
If Me.opb_UnitPicas.Value = True Then
Me.Unit = wdPicas
End If
End Sub
Private Sub opb_UnitPoints_Change()
If Me.opb_UnitPoints.Value = True Then
Me.Unit = wdPoints
End If
End Sub
Public Function Value(Num As Variant) As Single
If Me.Unit = wdInches Then
Value = PointsToInches(Num)
Exit Function
ElseIf Me.Unit = wdCentimeters Then
Value = PointsToCentimeters(Num)
Exit Function
ElseIf Me.Unit = wdMillimeters Then
Value = PointsToMillimeters(Num)
Exit Function
ElseIf Me.Unit = wdPoints Then
Value = Num
Exit Function
ElseIf Me.Unit = wdPicas Then
Value = PointsToPicas(Num)
Exit Function
End If
End Function
Во вложении находится файл созданной формы
Отредактировано aap77 (17.05.2012 21:08:37)
Post's attachmentsform_ClassInfo.rar 1.85 Кб, 4 скачиваний с 2012-05-17
You don't have the permssions to download the attachments of this post.
- andrkar
- Модератор
- Неактивен
- Откуда: Томск
- Зарегистрирован: 10.03.2010
- Сообщений: 431
- Поблагодарили: 26
Re: Общая форма для просмотра свойств Класса
Сообщений [ 7 ]
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Вы можете помочь в развитии форума, сделав пожертвование:
Или помочь сайту популярной криптовалютой:
BTC Адрес: 1Pi3a4c6sJPbfF2sSYR2noy61DMBkncSTQ
ETH Адрес: 0x7d046a6eaa1bd712f7a6937b042e9eee4998f634
LTC Адрес: LUyT9HtGjtDyLDyEbLJZ8WZWGYUr537qbZ
USDT (ERC-20) Адрес: 0x7d046a6eaa1bd712f7a6937b042e9eee4998f634
Яндекс Деньги: 410013576807538
А тут
весь список наших разных крипто адресов, может какой добрый человек пожертвует немного монет или токенов - получит плюсик в карму от нас :) Благо Дарим, за любую помощь!