Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.01.2010, 16:09   #1
Vorron21
Новичок
Джуниор
 
Регистрация: 03.01.2010
Сообщений: 3
Восклицание

Привет Всем и всех с Новым годом
Недавно заинтересовался VBA, но тут же наткнулся на проблему

Как создать в форме таблицу (4 столбца и 50 строк). Из обычных Controls ничего похожего не нашел.

Я пробовал и ListBox и Spreadsheet - ничего не подходит. Первый - потому что нет границ между строками и столбцами, да и муторно это очень.
ListBox может и подошел бы, но в нем нет такой обычной и нужной штуки как граница между столбцами и строками.
Второй - нельзя ограничить кол-во столбцов в таблице, да и кол-во строк таблицы ограничивается только вручную, программно изменить не получилось у меня. В итоге Spreadsheet - да это хорошая таблица на форме, но очень большая, такой объем ячеек мне на форме не нужен.

Еще один вопрос:
Как создать событие для Control-а, которые создается в ходе выполнения кода программы с помощью Controls.Add?

Последний раз редактировалось EducatedFool; 03.01.2010 в 17:25.
Vorron21 вне форума Ответить с цитированием
Старый 03.01.2010, 18:14   #2
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,858
По умолчанию

Цитата:
Как создать в форме таблицу (4 столбца и 50 строк). Из обычных Controls ничего похожего не нашел.
Для этих целей можно использовать элемент FlexGrid:

http://www.programmersforum.ru/showthread.php?t=52937
http://www.programmersforum.ru/showp...7&postcount=24


Пример того, что может получиться: http://ExcelVBA.ru/pictures/20110926-526-79kb.jpg


Цитата:
Как создать событие для Control-а, которые создается в ходе выполнения кода программы с помощью Controls.Add?
Есть 2 варианта:

1) Программно прописывать код для созданных элементов управления:
http://www.programmersforum.ru/showp...49&postcount=2
Код:
With TempForm.CodeModule
    Line = .CountOfLines
    .InsertLines Line + 1, "Sub CommandButtonl_Click()"
    .InsertLines Line + 2, "MsgBox ""Привет!"""
    .InsertLines Line + 3, "Unload Me"
    .InsertLines Line + 4, "End Sub"
End With
2) Использовать классы:
http://www.programmersforum.ru/showp...65&postcount=9

Последний раз редактировалось EducatedFool; 26.09.2011 в 16:21.
EducatedFool вне форума Ответить с цитированием
Старый 03.01.2010, 19:02   #3
Vorron21
Новичок
Джуниор
 
Регистрация: 03.01.2010
Сообщений: 3
По умолчанию

Уау, спасибо, EducatedFool, за такой быстрый ответ . Вы не представляете как помогли мне. Дня три бьюсь головой об стенку - ничего не выходит.

Сейчас все попробую
Vorron21 вне форума Ответить с цитированием
Старый 04.01.2010, 23:00   #4
Vorron21
Новичок
Джуниор
 
Регистрация: 03.01.2010
Сообщений: 3
По умолчанию

Да не все так просто, как хотелось бы.
Оказывается есть несколько разновидностей Grid. FlexGrid - классная штука, но есть один пробел - нет возможности непосредственного редактирования пользователем содержимого ячеек (как TextBox). Я понимаю, можно создать событие KeyPressed и т.п. Но все равно это неудобно.

Еще есть MSHFLXGD, тоже не решает этой проблемы.

Я так понимаю, Data Bound Grid Control это позволяет сделать, но я не смог разобраться в управлении кол-вом и содержимым ячеек таблицы .
Vorron21 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Таблица в C# (не БД) mopozoff Общие вопросы .NET 6 15.11.2015 00:15
Таблица AIda__ Microsoft Office Excel 3 01.12.2009 13:19
таблица тася Microsoft Office Excel 17 25.01.2009 00:29
Таблица frutty Компоненты Delphi 1 07.04.2008 09:29