Làm sao để thiết kế Userform màn hình chào giống như Video này

Liên hệ QC

hunglam123

Thành viên bị đình chỉ hoạt động
Thành viên bị đình chỉ hoạt động
Tham gia
31/3/20
Bài viết
180
Được thích
43
Chào tất cả mọi GPE !
Em có xem 1 video em có thấy video đó có thiết kế 1 màn hình chào , và 1 userform không có nút X ( Close nằm bên trên góc phải ). Vậy cho em hỏi làm cách nào. Mong mọi người chỉ giáo. em xin chân thành cảm ơn ạ !
Khi mở Excel thì nó hiện màn hình chào này tầm 4 giây rồi nó mới hiện Userform đăng nhập
1587453272995.png

1587453330310.png

Video ở đây :
 
Tạo userform rồi cho vào sự kiện workbook_open.không có nút x thật ra chỉ là ẩn thanh tiêu đề thôi bạn.
 
Upvote 0
Upvote 0
Chổ đặt sự kiện workbook_open thì mình biết. còn chổ Ẩn thanh tiêu đề. bạn cho mình xin câu lệnh
Mình lượm nhặt trên này.
Mã:
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 Const WS_SYSMENU As Long = &H80000
Private Const GWL_STYLE As Long = -16&
Private Sub UserForm_Initialize()
HideCloseBox Me
End Sub
Private Sub HideCloseBox(ByVal UserForm As UserForm)
Dim hWnd As Long
Dim WindowStyle As Long
If Application.Version < 9 Then
    hWnd = FindWindow("ThunderXFrame", UserForm.Caption)
Else
    hWnd = FindWindow("ThunderDFrame", UserForm.Caption)
End If
If hWnd <> 0 Then
    WindowStyle = GetWindowLong(hWnd, GWL_STYLE)
    SetWindowLong hWnd, GWL_STYLE, WindowStyle And Not WS_SYSMENU
End If
End Sub
Anh dùng thử
 
Upvote 0
Mình lượm nhặt trên này.
Mã:
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 Const WS_SYSMENU As Long = &H80000
Private Const GWL_STYLE As Long = -16&
Private Sub UserForm_Initialize()
HideCloseBox Me
End Sub
Private Sub HideCloseBox(ByVal UserForm As UserForm)
Dim hWnd As Long
Dim WindowStyle As Long
If Application.Version < 9 Then
    hWnd = FindWindow("ThunderXFrame", UserForm.Caption)
Else
    hWnd = FindWindow("ThunderDFrame", UserForm.Caption)
End If
If hWnd <> 0 Then
    WindowStyle = GetWindowLong(hWnd, GWL_STYLE)
    SetWindowLong hWnd, GWL_STYLE, WindowStyle And Not WS_SYSMENU
End If
End Sub
Anh dùng thử
code này bỏ vào form hay Module. bạn có thể làm 1 file excel gửi cho mình được không
 
Upvote 0
Tạo module rồi dán code này
Mã:
Option Private Module

Public Const GWL_STYLE = -16
Public Const WS_CAPTION = &HC00000
Public Declare Function GetWindowLong _
                       Lib "user32" Alias "GetWindowLongA" ( _
                       ByVal hWnd As Long, _
                       ByVal nIndex As Long) As Long
Public Declare Function SetWindowLong _
                       Lib "user32" Alias "SetWindowLongA" ( _
                       ByVal hWnd As Long, _
                       ByVal nIndex As Long, _
                       ByVal dwNewLong As Long) As Long
Public Declare Function DrawMenuBar _
                       Lib "user32" ( _
                       ByVal hWnd As Long) As Long
Public Declare Function FindWindowA _
                       Lib "user32" (ByVal lpClassName As String, _
                       ByVal lpWindowName As String) As Long

Sub HideTitle(frm As Object)
    Dim lngWindow As Long
    Dim lFrmHdl As Long
    lFrmHdl = FindWindowA(vbNullString, frm.Caption)
    lngWindow = GetWindowLong(lFrmHdl, GWL_STYLE)
    lngWindow = lngWindow And (Not WS_CAPTION)
    Call SetWindowLong(lFrmHdl, GWL_STYLE, lngWindow)
    Call DrawMenuBar(lFrmHdl)
End Sub

Sau đó vào code form thêm
Mã:
Private Sub UserForm_Initialize()
    HideTitle Me
End Sub
 
Upvote 0
Cái vụ này thớt hỏi đã mấy năm nay rồi. Cứ vài tháng hỏi lại.
Cái code bạn đưa ra không chừng chính là một trong những bài ấy.
Lâu quá cháu cũng không nhớ là lượm ở topic nào.
Chứ thớt mà từng hỏi. Chắc anh ta cũng nhớ được ngay ạ
 
Upvote 0
Lâu quá cháu cũng không nhớ là lượm ở topic nào.
Chứ thớt mà từng hỏi. Chắc anh ta cũng nhớ được ngay ạ
Thớt khó tính lắm. Cứ vài tháng hỏi một lần hy vọng được giải pháp xịn hơn.

Nhưng cũng có khả năng là hồi xưa bắt đầu hỏi là Excel 2003, máy "nhà lá" (lời của thớt). Qua mấy năm làm ăn trúng mánh, cứ cải thiện dần lên máy xịn. Cứ mõi đợt cải tiến thì thấy một loạt bài hỏi lại các vấn đề in hệt như xưa. Chắc tại ỷ y lười, hoặc không biết cách vớt code lại từ máy cũ. Hiện giờ thấy win 10, Excel 2019/365. Có lẽ mấy cái code cũ không chạy trên 64-bit.
 
Lần chỉnh sửa cuối:
Upvote 0
Web KT

Bài viết mới nhất

Back
Top Bottom