Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.84/76: Рейтинг темы: голосов - 76, средняя оценка - 4.84
0 / 0 / 0
Регистрация: 22.12.2011
Сообщений: 27
1

Можно ли в VBA сделать меняющую размеры форму?

22.12.2011, 14:55. Показов 15786. Ответов 19
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
В VB у Form есть свойство BorderStyle, которому можно присвоить значение Sizebale, а в VBA такому же свойству объекта UserForm можно присвоить только BorderStyleNone или BorderStyleSignle.

Кроме этого, хотелось бы сделать окно без заголовка. Возможно ли?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.12.2011, 14:55
Ответы с готовыми решениями:

Как сделать динамическую таблицу меняющую размеры?
Как сделать динамическую таблицу меняющую размеры?

Креатором сделать меняющую размер форму
Qt 4.7. Хочу чтобы при растягивании формы меняли размер и компоненты: graphicsView и кнопка. Из...

Как сделать форму меняющую цвет
Кто подскажет как сделать чтобы форма меняла цвет при заполнение данных? При открытии формы цвет...

Возможно ли сделать календарь используя html-форму (соблюдая размеры, высоту таблицы и т.д.)
kidASM, а возможно ли сделать календарь используя html-форму (соблюдая размеры, высоту таблицы и...

19
2 / 2 / 1
Регистрация: 10.04.2011
Сообщений: 415
22.12.2011, 15:04 2
размеры формы меняются установкой требуемой ширины и высоты.
0
0 / 0 / 0
Регистрация: 22.12.2011
Сообщений: 27
22.12.2011, 16:44  [ТС] 3
Нужно чтобы пользователь мог менять размеры окна.
0
2 / 2 / 1
Регистрация: 10.04.2011
Сообщений: 415
22.12.2011, 17:11 4
Драг-дропом? Боюсь, не прокатит. А где ты видел диалоговое окно с такими возможностями - там же элементы управления. Как вариант - сделай 4 кнопочки примерно так: http://www.mfco.ru/resform.zip
PS не получается "Прикрепить файл" - говорит "Только txt, zip, rar, gif, jpg или png", хотя давал ему и rar, и zip (
0
0 / 0 / 0
Регистрация: 22.12.2011
Сообщений: 27
22.12.2011, 17:32  [ТС] 5
> А где ты видел диалоговое окно с такими возможностями
Например, в VB6.
> сделай 4 кнопочки
есть у меня такой вариант, но им пользоваться непривычно и неудобно.
Я думаю, можно как-то через API. К тому же мне нужно сворачивать окно до размера одной строки и без заголовка.
Это можно сделать на VB, но с ним другая беда: обработка объектов выполняется значительно медленнее, чем в VBA (СorelDraw).
0
90 / 37 / 14
Регистрация: 03.11.2010
Сообщений: 429
22.12.2011, 19:58 6
Драг-дропом?-Можно сделать имитацию:
Вставляю Label и использую события MouseDown,MouseMove,MouseUp.
Правда при движении мыши граница окна не изменяется, только при MouseUp.
0
2 / 2 / 0
Регистрация: 23.04.2011
Сообщений: 159
27.12.2011, 14:42 7
Через API:
0
2 / 2 / 1
Регистрация: 10.04.2011
Сообщений: 415
27.12.2011, 15:42 8
Как ты файл прикрепляешь, поделись?
0
2 / 2 / 0
Регистрация: 23.04.2011
Сообщений: 159
27.12.2011, 16:37 9
Шутите или в серьезно?
0
2 / 2 / 0
Регистрация: 23.04.2011
Сообщений: 159
27.12.2011, 16:42 10
Sorry, в предыдущем ответе “В” опустить
0
0 / 0 / 0
Регистрация: 22.12.2011
Сообщений: 27
27.12.2011, 17:05  [ТС] 11
Цитата Сообщение от Avtopic
Через API:
Отлично! Именно то, что нужно. Просто я мало с API имел дело и сам не нашел бы нужных функций. Спасибо огромное!
0
2 / 2 / 1
Регистрация: 10.04.2011
Сообщений: 415
27.12.2011, 17:28 12
Цитата Сообщение от Avtopic
Шутите или серьезно?
Конечно серьезно - нафига мне класть файлы на свой сервер, а потом ссылку давать? А указание на файл на локальном диске дает ошибку "только txt, zip, rar, gif, jpg, png", хотя ему даю rar-архив
0
2 / 2 / 0
Регистрация: 23.04.2011
Сообщений: 159
27.12.2011, 18:31 13
To Johny Walker:

После известных изменении на форуме, когда я нажимаю на “Ответить” прямо попадаю в редактор новых сообщении, где наверху находится “Прикрепить файл”.
Может, Вы работаете в старой версии форума.
Если Вы работаете в новом формате, то у вас должен бить такой адрес этой страницы:
http://www.relib.com/forums/thread882668.aspx
и такой адрес редактора новых сообщении при клике на “Ответить”:
http://www.relib.com/forums/post.aspx?id=882668
где и видно возможность прикрепить файл.
Если у вас видеться этот адрес, а “Прикрепить файл” нет, тогда я не знаю, почему у меня такие привилегии.
0
Alex77
28.12.2011, 10:39 14
Цитата Сообщение от Alexxander
Нужно чтобы пользователь мог менять размеры окна.
А может вот так подойдёт:
Visual Basic
1
2
3
4
5
6
7
8
Private Sub UserForm_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
 
If Button = 1 Then
UserForm1.Height = Y
UserForm1.Width = X
End If
 
End Sub
При нажатии над формой (в данном случае левой, для правой "If Button = 2"), и удерживая кнопку двигать мышу - меняется размер формы. Безо всяких АПИ
0 / 0 / 0
Регистрация: 22.12.2011
Сообщений: 27
29.12.2011, 12:47  [ТС] 15
Цитата Сообщение от Alex77
А может вот так подойдёт:
Private Sub UserForm_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
Спасибо за идею! Только это я использую для изменения позиции окна. А изменяемые размеры и прочие своства лучше через API.
0
Alex77
03.01.2012, 08:26 16
Цитата Сообщение от Avtopic
Через API:
Третий раз скачиваю, пробую.
Запускаю проект, жму на все кнопки.
срабатывает только одна - выход.
А так меняется только цифра в текстбоксе.
Что такое [italic][bold]lStyle[/bold] [/italic]
И что должно было произойти с размерами формы.
Я всё таки меняю с помощью Private Sub UserForm_MouseMove
0 / 0 / 0
Регистрация: 22.12.2011
Сообщений: 27
03.01.2012, 13:06  [ТС] 17
Цитата Сообщение от Alex77
Цитата Сообщение от Avtopic
Через API:
Третий раз скачиваю, пробую.
Запускаю проект, жму на все кнопки.
Смотри аттач.
0
Alex77
03.01.2012, 15:26 18
Цитата Сообщение от Alexxander
Цитата Сообщение от Alex77
Цитата Сообщение от Avtopic
Через API:
Третий раз скачиваю, пробую.
Запускаю проект, жму на все кнопки.
Смотри аттач.
Собственно хоть скажите, что должно было происходить.
Форма таскоется за любое место.
И всё.
Ставлю галки, снимаю - ровным счётом ничего не происходит.
Должны же были изменяться размеры формы (так стоял вопрос).
0 / 0 / 0
Регистрация: 22.12.2011
Сообщений: 27
03.01.2012, 15:49  [ТС] 19
Если отмечено WS_THICKFRAME, окно будет менять размеры, как обычно в Windows (перетаскиванием за рамку).
Остальные аттрибуты (не по порядку): Окно имеет заголовок, системное меню, полосы прокрутки и пр. Описание на листе Excel (взято из MSDN).
Для того чтобы окно могло менять размеры надо это указать в его атрибутах. По умолчанию в VBA оно не может менять размеры и внутри VBA нет спсобов сделать это. Поэтому используем API. Подробности в коде программы.
0
Alex77
04.01.2012, 21:53 20
Спасибо, разобрался.
Никто же не подсказал, что в 97 офисе это не катит.
Для проверки предположения поставил ОкнаХР и ОфисХР.
Проверил, пашет.
А потом уже на 98 Окна поставил ОфисХР и тоже работает.
04.01.2012, 21:53
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
04.01.2012, 21:53
Помогаю со студенческими работами здесь

Как сделать прозрачную форму на vba?
возможно сделать форму vba прозрачным? в инете на такого не нашёл ответа

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

Как с помощью VBA сделать форму поиска?
Помогите пожалуйста, как с помощью VBA сделать форму поиска.Т.е. у нас есть таблица с несколькими...

Как можно в форму VBA вставить MSFlexGrid? какие у него есть свойства и методы?
Можно ли в форму VBA в Excel вставить MSFlexGrid? Какие свойства и методы можно применять к нему?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru