Vba excel таблица на форме

Vba excel таблица на форме

Width

frmForm1.Caption = “������”

������� 5.2. �������� ������� ����

Initialize

Activate

Deactivate

Click

Private Sub UserForm_Activate()

frmForm1.Caption = “������ �� ����� ��������� � �������”

End Sub

Private Sub UserForm_Click()

frmForm1.Width = frmForm1.Width / 2

frmForm1.Height = frmForm1.Height / 2

frmForm1.Caption = “������ ��� ��� ���!”

End Sub

������� 5.3. �������� ������ ����

Unload

Private Sub UserForm_Initialize()

Load frmForm2

frmForm2.Show

End Sub

Private Sub UserForm_Click()

frmForm2.Hide

End Sub

Private Sub UserForm_Click()

frmForm2.Show

End Sub

�������� ����������� ��������� �� ����� ����������� � ������� ������ ������������, ������� ��������� �� ����� �������� ��� ������ ��������� (���. 5.2).

frm

frmMyForm

lbl

lblInfo

txt

txtInput

cmd

cmdExit

chk

chkSound

opt

optLevel

lsb

lsbTypes

fra

fraChoices

vcb

vcbSpeed

pic

picChema

BackColor

Caption

Enabled

ForeColor

Picture

PicturePosition

Visible

Enabled

ForeColor

MaxLength

PasswordChar

txtResult.Text=” “

������� 5.8. �������� �������

Caption

ForeColor

Picture

PicturePosition

������� 5.9. �������� ������

ListIndex

Private Sub UserForm_Initialize()

List1.AddItem “����”

List1.AddItem “����”

List1.AddItem “�����”

List1.AddItem “������”

List1.AddItem “�������”

End Sub

Private Sub List1_DblClick()

List2.AddItem List1.Text

List1.RemoveItem

List1.ListIndex

End Sub

Private Sub List2_dblClick()

List1.AddItem List2.Text

List2.RemoveItem

List2.ListIndex

Источник: dpivi.ru

Работа с формами в VBA (Excel)

Доброго времени суток! Сегодня мы поговорим о работе с формами VBA, а также рассмотрим практически понятия фильтров и флагов в VBA.

Формы в VBA

Сначала немного теории. Форма — это во многом просто контейнер для хранения других элементов управления. Своего рода, посредник между пользователем и программистом. Форма в VBA нужна для того, чтобы ограничить пользователя нажиманием определённых кнопок и не допустить лишнего вмешательства в код программы.

Немного основных свойств объекта Форма(UserForm):

Name – данное свойство содержит имя формы, или, точнее сказать, имя объекта. Нужно понимать, что данное значение доступно только в теле программы и никак не влияет на конечный результат.
BackColor – содержит цвет фона.
BorderColor – цвет рамки.
Caption – свойство определяет заголовок формы, фактически, это тот же заголовок окна программы. По умолчанию, данное свойство содержит то же значение, что и свойство Name.
Enabled – принимает логическое True или False, и определяет, доступна ли форма.
ShowModal – может принимать только логические значения. True – пока не будет закрыта текущая форма, другая форма или возврат в документ будут недоступны.
Font – определяет шрифт.
ForeColor – определяет цвет переднего плана формы, например, цвет текста.

Флаги и фильтры

Флаги — также называемые checkbox в программировании. Могут принимать только логические значения. Обычно флаги ставят напротив вопросов (как ответ Да/Нет) или функций (выполнять/не выполнять).
Фильтры — в двух словах,процесс проверки на какое либо условие.

Теперь рассмотрим пример, отражающий в себе работу с формами, с флагами и фильтрами в VBA.

Дана таблица 4х5, в каждой ячейке которой записаны числа, “+” , “-” , слова, начинающиеся с больших и маленьких букв и символы, не относящиеся к алфавиту. Необходимо создать пользовательскую форму с набором разных вариантов фильтров.

Читайте также:  Как в excel округлять числа в большую сторону

Выглядит таблица примерно так:

Создаём формы

Добавим форму в редакторе VBA: Insert > UserForm.
С помощью MultiPage в Toolbox делаем 2 страницы.
На первой странице будет располагаться фильтр по первым буквам слов. С помощью TextBox и SpinButton.
На второй странице сделаем с помощью CheckBox и Label разные варианты фильтров. А также добавляем основную кнопку расчётов.
Названия объектов изменятся с помощью Caption.
Всё это должно выглядеть примерно так.

Теперь создадим форму вывода после фильтрации.
Создадим Listbox, Label и Button.

В коде очень много команд настройки и проверки именно для формы, чтобы исключить ошибки в результате. Мы разберём только основные алгоритмы, весь код вы найдёте в исходнике ниже.

Под кнопку расчёта идёт такой код:

С помощью данного цикла мы находим все CheckBox и записываем их значения в массив, чтобы нам было удобнее работать.

Так как код очень громоздкий, то настоятельно рекомендую вам скачать исходники ниже.
Вначале очищаем форму. Затем прописываем в цикле условия в зависимости от «поднятых» флагов. Команды pr_chislo, pr_plus, pr_text вызывают соответствующие булевые функции, которые будут в исходнике ниже.

На основе возвращаемых от функций значений построим таблицу. Та ячейка, которая не прошла фильтрацию, записывается как

Записываем наш массив во вторую форму.
На этом мы закончим.

К сожалению, отобразить весь код не предоставилось возможным, однако, не расстраивайтесь! Мы ответим на все ваши вопросы в комментариях.
Скачать исходник

Источник: codetown.ru

Vba excel таблица на форме

Вопрос: как рисовать эту таблицу и заполнять её?

Пробовал создавать на форме через OLE лист Excel, но как добавить данные не понимаю.

Всякие DataGrid и иже с ними вызывают еще больший ступор.

Как вариант могу воспользоваться listbox – ом, с последующим форматированием строки на столбцы (виртуальные, т.к. создавать их при помощи табуляции), но это очень уж извращенный метод.

Ответы Всего ответов: 5

Ответить

Номер ответа: 1
Автор ответа:
AndreyMp

Вопросов: 28
Ответов: 1182

Профиль | | #1

Добавлено: 12.10.06 09:09

В этом то и вся пробелма. Интуитивно я понимаю что необходимо работать с этими элементами, но найти описание работы не могу. Может поделитесь ссылками?

Во всех найденных мной источниках информации написано, что необходимо указывать источник в виде БД (таблицы). Мне же необходимо просто прорисовать значения в виде таблицы на форме. Ну не создавать же мне файл отдельно, в который занести значения, а потом подключать его (хотя как подключать мне пока тоже не понятно).

Источник: www.vbnet.ru

Vba excel таблица на форме

Width

frmForm1.Caption = “������”

������� 5.2. �������� ������� ����

Initialize

Activate

Deactivate

Click

Private Sub UserForm_Activate()

frmForm1.Caption = “������ �� ����� ��������� � �������”

End Sub

Private Sub UserForm_Click()

frmForm1.Width = frmForm1.Width / 2

frmForm1.Height = frmForm1.Height / 2

frmForm1.Caption = “������ ��� ��� ���!”

End Sub

������� 5.3. �������� ������ ����

Unload

Private Sub UserForm_Initialize()

Load frmForm2

frmForm2.Show

End Sub

Private Sub UserForm_Click()

frmForm2.Hide

End Sub

Private Sub UserForm_Click()

frmForm2.Show

End Sub

�������� ����������� ��������� �� ����� ����������� � ������� ������ ������������, ������� ��������� �� ����� �������� ��� ������ ��������� (���. 5.2).

frm

frmMyForm

lbl

lblInfo

txt

txtInput

cmd

cmdExit

chk

chkSound

opt

optLevel

lsb

lsbTypes

fra

fraChoices

vcb

vcbSpeed

pic

picChema

BackColor

Caption

Enabled

ForeColor

Picture

PicturePosition

Visible

Enabled

ForeColor

MaxLength

PasswordChar

txtResult.Text=” “

������� 5.8. �������� �������

Caption

ForeColor

Picture

PicturePosition

������� 5.9. �������� ������

ListIndex

Private Sub UserForm_Initialize()

List1.AddItem “����”

List1.AddItem “����”

List1.AddItem “�����”

List1.AddItem “������”

List1.AddItem “�������”

End Sub

Private Sub List1_DblClick()

List2.AddItem List1.Text

List1.RemoveItem

List1.ListIndex

End Sub

Private Sub List2_dblClick()

List1.AddItem List2.Text

List2.RemoveItem

List2.ListIndex

Источник: dpivi.ru

Поиск и изменение данных в таблицах Excel (Visual Basic for Applications)

В Excel имеется таблица в которой с помощью формы созданной на Visual Basic for Applications необходимо произвести поиск данных и изменение.

В MS Excel создана таблица следующего вида:

При нажатии на кнопку «Вызов формы» появляется пользовательская форма следующего вида:

На этой форме следующие элементы управления: 6 надписей Lable, Поле со списком ComboBox1 для выбора номера рейса и ListBox1 для списка пассажиров выбранного рейса.

Программные коды следующие:

Сначала вводим переменные:

Программный код для ComboBox1

Private Sub ComboBox1_Change()

‘ эта процедура очищает ранее заполненные поля формы, и после выбора из списка номера рейса

‘ заполняет соответствующими фамилиями ListBox1

1 For sss = 1 To 500

If ComboBox1.Text = Sheets(“Регистрация”).Cells(sss, 1).Text Then

ListBox1.AddItem Sheets(“Регистрация”).Cells(sss, 2).Text

Private Sub CommandButton1_Click()

‘эта процедура для кнопки “Изменить”. После выбора конкретного пассажира заполняются его данные

‘ в текстовых полях в форме “Изменение данных” (она называется frmChange)

If ListBox1.Text = ” ” Then MsgBox “Выберите фамилию пассажира”: Exit Sub

Private Sub ListBox1_Click()

‘после выбора конкретной фамилии в ListBox1 заполняются остальные данные –

‘ фамилия и № билета. Затем в невидимую надпись Label7 вносится выбранная фамилия

For i = 1 To 800

If ListBox1.Text = Sheets(“Регистрация”).Cells(i, 2).Text Then

Label3.Caption = Sheets(“Регистрация”).Cells(i, 2).Text
Label4.Caption = Sheets(“Регистрация”).Cells(i, 3).Text
Label7.Caption = i

Private Sub UserForm_Activate()

‘ при активизации формы “Поиск” сначала данные сортируются по убыванию номеров рейсов,

‘ затем заполняется список с номерами рейсов из первого столбца таблицы.

Selection.Sort Key1:=Range(“A2”), Order1:=xlDescending, Header:=xlNo, _

OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom

1 For ads = 2 To 800

If Sheets(“Регистрация”).Cells(ads, 1).Text = “” Then Exit Sub

If Sheets(“Регистрация”).Cells(ads, 1).Text = Sheets(“Регистрация”).Cells(ads + 1, 1).Text Then GoTo 3
ComboBox1.AddItem Sheets(“Регистрация”).Cells(ads, 1).Text

Форма для изменения данных имеет вид:

Private Sub CommandButton1_Click()

‘ переменной ddd присваивается фамилия из невидимой надписи Label7

‘ затем номер билета из этой строки (ddd), соответствующий данному пассажиру

‘ заносится в TextBox2

Worksheets(“Регистрация”).Cells(ddd, 3) = TextBox2.Text

Private Sub CommandButton2_Click()

Selection.Sort Key1:=Range(“A2”), Order1:=xlDescending, Header:=xlNo, _

OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom

Источник: www.ikasteko.ru

Канал в Telegram

Вы здесь

Создание формы в Excel на VBA (+видео)

Для чего нужны формы в VBA?

Форма это некий контейнер, в котором размещаются различные объекты и элементы управления, из которых создается интерфейс приложения, т.е. проще говоря, форма – это холст, на котором разработчик рисует лицо своей программы. С формами Вы сталкиваетесь постоянно. Например, окно браузера, в котором Вы читаете эту страницу, так же является формой с элементами управления и отображения информации. Характерный набор кнопок для формы это “Свернуть”, “Развернуть/Свернуть окно”, “Закрыть”.

В операционных системах (например Windows, MacOS, Linux) содержатся библиотеки, в которых уже заложены функции построения стандартных форм и объектов управления, что значительно упрощает разработку интерфейса большинства прикладных приложении. Такой подход позволяет сделать приложения универсальными в плане переноса на другие рабочие станции (ПК) и легче т.к. нет необходимости “носить” все библиотеки с собой. Эти функции используются различными средами разработки.

В VBA Excel формы позволяют организовать полноценный интерфейс для взаимодействия с пользователем, конечно, имеется много ограничений и неудобств.

Перейдем теперь к практической части создания и конструирования форм.

Добавляются формы в VBA просто, открываем редактор Visual Basic (Alt+F11), в главном меню редактора Insert – UserForm. После чего должна появиться форма, а в структуре книги (окно View – Project Explorer) появится папка “Forms” в которой содержится UserForm1

Конструируется форма в VBA очень просто, выбираем на панели объектов “Toolbox” (View – Toolbox) нужный объект, например “CommandButton”

переходим на форму, жмем ЛКМ (Левая кнопка мыши) и не отпуска тянем до нужных размеров.

Toolbox (Инструменты) – это панель содержащая необходимые для разработки интерфейса объекты (Кнопки, Метки, полосы прокрутки и т.д.). В панель Toolbox можно добавлять новые объекты, для этого щелкните ПКМ по свободной области панели и выберите из контекста “Additional Controls. “. В открывшемся окне выбираете необходимые компоненты.

Учтите, что наборы компонентов могут отличаться на различных ПК и соответственно, приложения, написанные в Excel, не будут работать или будут работать, но с ошибками. Обратите внимание, если выбрать какой-либо объект, например “Кнопку”, то в окне “Properties” (F4), появится список доступных свойств у данного объекта. Это очень удобно, когда необходимо ввести, например метку, поменять цвет или задать более точный размер и т.д. Поэкспериментируйте с созданием/изменением объектов и самой формой.

Как показать (запустить) форму на VBA?

После того как форма была создана, ее необходимо при запуске макроса открыть. Как это сделать?
Все очень просто. Создайте в книге модуль (как это сделать, описано в этой статье) следующего содержания:

Sub ЗапускФормы()
UserForm1.show
End Sub

Запускаете макрос “ЗапускФормы”.
Команда UserForm1.show – дословно UserForm1.Показать, где UserForm1 это имя нашей формы установленное в поле Name. Show(Показать) – метод формы. Для скрытия форм используется метод Hide (Скрыть).

На этом все. Ниже, Вы можете посмотреть видео демонстрирующее все вышеописанное.

Прикрепленный файл: form_vba.zip

Видео: Создание форм в Excel на VBA

Источник: www.programm-school.ru

Добавить комментарий

Adblock
detector
Номер ответа: 2
Автор ответа:
Timofey

Вопросов: 2
Ответов: 4

Профиль | | #2

Добавлено: 12.10.06 09:35