ازالة اطار الـ Userform

إزالة إطار الـ Userform 


 كيفية إخفاء الحدود على نموذج مستخدم _( Userform ) _باستخدام VBA

وUserform بدون شريط العنوان وزر X فهي الآن أكثر جمالا من Userform العادي.

إنشاء نموذج مستخدم _ ( Userform  ) _ بمثل هذا الشكل له جاذبية أكثر ومزيد من التفاعل من قبل

المستخدم وخاصة مع شاشات البداية .


نتطرق إلى الكود البرمجي المستخدم لعمل ذلك .


الخطوات :

  1. الكود المستخدم يوضع داخل موديول .
  2.  نقوم بتسمية الموديول من خلال الخصائص بإسم HideTitleBar .



'Permits any person to use this code provided that the source is mentioned
'https://elshriefacademy.blogspot.com

Option Explicit
Option Private Module
Public Const GWL_STYLE = -16
Public Const WS_CAPTION = &HC00000

#If VBA7 Then

Public Declare PtrSafe Function GetWindowLong _
                       Lib "user32" Alias "GetWindowLongA" ( _
                       ByVal hWnd As Long, _
                       ByVal nIndex As Long) As Long

Public Declare PtrSafe Function SetWindowLong _
                       Lib "user32" Alias "SetWindowLongA" ( _
                       ByVal hWnd As Long, _
                       ByVal nIndex As Long, _
                       ByVal dwNewLong As Long) As Long

Public Declare PtrSafe Function DrawMenuBar _
                       Lib "user32" ( _
                       ByVal hWnd As Long) As Long

Public Declare PtrSafe Function FindWindowA _
                       Lib "user32" (ByVal lpClassName As String, _
                       ByVal lpWindowName As String) As Long

#Else

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

#End If

Sub HideTitleBar(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

تلميحات
ستعمل هذه الميزة مع إصدارات 32 بت و 64 بت من إكسيل.
في كل مرة يتم فيها تشغيل الـ Userform ، فإنه يستدعي البرنامج الفرعي UserForm_Initialize ويخفي شريط العنوان.


كيفية استخدام الكود أعلاه .

نضع بحدث الـ Initialize للـ  Userform

الكود التالي :



'Permits any person to use this code provided that the source is mentioned
'https://elshriefacademy.blogspot.com

Private Sub UserForm_Initialize()

    HideTitleBar Me

End Sub

Developer MS Office VBA Application, Data Analyst, Designer And Developer of Blogger Templates, Microfinance, HR Specialist, leading businesses, Front End Web Developer.

More About

تعليق واحد

  1. good