Страница: 1 |
Страница: 1 |
Вопрос: Как удалить заголовок формы в Excel?
Добавлено: 13.07.07 10:16
Автор вопроса: Jiura
Подскажите пожалуйста как в VBA скрыть заголовок формы? тот синий где пишется свойство caption - нужно чтоб была только область формы но без заголовка
Ответы
Всего ответов: 9
Номер ответа: 1
Автор ответа:
EUGY
Вопросов: 0
Ответов: 454
Профиль | | #1
Добавлено: 13.07.07 12:10
Dim hwnd As Long
hwnd = FindWindow("ThunderDFrame", Me.Caption)
SetWindowLong hwnd, GWL_STYLE, GetWindowLong(hwnd, GWL_STYLE) And Not WS_CAPTION
SetWindowPos hwnd, 0, 0, 0, 0, 0, SWP_FRAMECHANGED Or SWP_NOSIZE Or SWP_NOMOVE Or SWP_NOZORDER
Номер ответа: 2
Автор ответа:
Jiura
Вопросов: 1
Ответов: 4
Профиль | | #2
Добавлено: 13.07.07 14:44
НЕ работает почему то!
После выполнения данного кода форма исчезает совсем с экрана а нужно чтобы просто исчез заголовок
Номер ответа: 3
Автор ответа:
EUGY
Вопросов: 0
Ответов: 454
Профиль | | #3
Добавлено: 13.07.07 14:54
Option Explicit и декларации функций и констант поставил?
Номер ответа: 4
Автор ответа:
EUGY
Вопросов: 0
Ответов: 454
Профиль | | #4
Добавлено: 13.07.07 14:59
Option Explicit
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long
Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Private Declare Function SetWindowPos Lib "user32" (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal x As Long, ByVal y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long
Private Const GWL_STYLE As Long = (-16)
Private Const WS_CAPTION = &HC00000
Private Const SWP_FRAMECHANGED = &H20
Private Const SWP_NOSIZE = &H1
Private Const SWP_NOZORDER = &H4
Private Const SWP_NOMOVE = &H2
Private Sub UserForm_Activate()
Dim hwnd As Long
hwnd = FindWindow("ThunderDFrame", Me.Caption)
SetWindowLong hwnd, GWL_STYLE, GetWindowLong(hwnd, GWL_STYLE) And Not WS_CAPTION
SetWindowPos hwnd, 0, 0, 0, 0, 0, SWP_FRAMECHANGED Or SWP_NOSIZE Or SWP_NOMOVE Or SWP_NOZORDER
End Sub
Номер ответа: 5
Автор ответа:
Jiura
Вопросов: 1
Ответов: 4
Профиль | | #5
Добавлено: 13.07.07 18:48
TO EUGY
Большое спасибо! Все работает
Номер ответа: 6
Автор ответа:
Jiura
Вопросов: 1
Ответов: 4
Профиль | | #6
Добавлено: 13.07.07 19:08
А подскажите поджалуйста как теперь эту форму поместить над определенной ячейкой листа Excel? Чтоб левый верхний угол формы совпадал с левым верхнем углом ячейки Excel?
Номер ответа: 7
Автор ответа:
EUGY
Вопросов: 0
Ответов: 454
Профиль | | #7
Добавлено: 13.07.07 19:48
~
UserForm1.Top = myworksheet.Cells(r,c).Top
~
приблизительно так.
Номер ответа: 8
Автор ответа:
Jiura
Вопросов: 1
Ответов: 4
Профиль | | #8
Добавлено: 14.07.07 10:05
UserForm1.Top = myworksheet.Cells(r,c).Top
Нет так не работает! Top ячеек отсчитывается от A1! и соответственно Top формы не совпадает
Номер ответа: 9
Автор ответа:
bi-lya
Вопросов: 1
Ответов: 125
Профиль | | #9
Добавлено: 14.07.07 15:05
Да не от А1, а от топа окна