Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - VBA

Страница: 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, а от топа окна

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам