Нет, никакого конфликта нет, просто добавьте это в ваше событие Userform_Initialize ().
bytOpacity = 192 ' variable keeping opacity setting
Call SetLayeredWindowAttributes(Obj.hwnd, 0, bytOpacity, LWA_ALPHA)
Мне очень понравилось это в тот день, особенно если вы объединили форму без полей + изменение непрозрачности + cExcel Application Events + Chip Pearson позиционер пользовательской формы и код для изменения форм пользовательской формы.
Вы можете создавать трапециевидные пользовательские формы Metro-Style в VBA: D.
Сохранить пользовательскую форму включенной верх других пользовательских форм:
Public Const SWP_NOMOVE = &H2
Public Const SWP_NOSIZE = &H1
Public Const HWND_TOP = 0
Public Const HWND_BOTTOM = 1
Public Const HWND_TOPMOST = -1
Public Const HWND_NOTOPMOST = -2
'Public - changed on 12/30/14
Public 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 uFlags As Long) As Long
'Public - changed on 12/30/14
Public Declare Function FindWindow Lib "user32" Alias "FindWindowA" _
(ByVal lpClassName As String, _
ByVal lpWindowName As String) As Long
Окно Userform Hacks:
'for shape ===============
Private Type POINT_TYPE
x As Long
y As Long
End Type
'======point type for shape
'for the shape change ==
Private Declare Function SetWindowRgn Lib "user32" (ByVal hwnd As Long, ByVal hrgn As Long, ByVal bRedraw As Boolean) As Long
Private Declare Function CreatePolygonRgn Lib "gdi32" (ByRef lpPoint As POINT_TYPE, ByVal nCount As Long, ByVal nPolyFillMode As Long) As Long
'=======================
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 SetLayeredWindowAttributes Lib "user32" _
(ByVal hwnd As Long, ByVal crey As Byte, ByVal bAlpha As Byte, ByVal dwFlags As Long) As Long
'hide the top bar========================================
Private Declare Function DrawMenuBar Lib "user32" ( _
ByVal hwnd As Long) As Long
Private Declare Function FindWindowA Lib "user32" (ByVal lpClassName As String, _
ByVal lpWindowName As String) As Long
'==========================================================
Private Const GWL_EXSTYLE = (-20)
Private Const WS_EX_LAYERED = &H80000
Private Const LWA_ALPHA = &H2&
'hide the top bar
Private Const WS_CAPTION = &HC00000
Dim formhandle As Long
'for the shape ==========
Private hRegion As Long
'========================
'Remember where we started
Dim mdOriginX As Double
Dim mdOriginY As Double
Public hwnd As Long
Пример: Поместите это в вашу пользовательскую форму инициализации и
Dim bytOpacity As Byte
bytOpacity = 255 ' variable keeping opacity setting
hwnd = FindWindow("ThunderDFrame", Me.Caption)
Call SetWindowLong(Me.hwnd, GWL_EXSTYLE, GetWindowLong(Me.hwnd, GWL_EXSTYLE) Or WS_EX_LAYERED)
Call SetLayeredWindowAttributes(Me.hwnd, 0, bytOpacity, LWA_ALPHA)
Dim ptarr(0 To 28) As POINT_TYPE
'load array for MIE ;-)
'ptarr(0).X = 200: ptarr(0).Y = 100
'ptarr(1).X = 600: ptarr(1).Y = 100
'ptarr(2).X = 500: ptarr(2).Y = 250
'ptarr(3).X = 100: ptarr(3).Y = 250
'ptarr(4).X = 200: ptarr(4).Y = 100
ptarr(0).x = 104: ptarr(0).y = 30
ptarr(1).x = 504: ptarr(1).y = 30
ptarr(2).x = 404: ptarr(2).y = 180
ptarr(3).x = 4: ptarr(3).y = 180
ptarr(4).x = 104: ptarr(4).y = 30
hRegion = CreatePolygonRgn(ptarr(0), 28, 1)
hwnd = FindWindow(vbNullString, Me.Caption)
SetWindowRgn hwnd, hRegion, True
'Code to Place userform next to activecell================
Dim ps As Positions
Me.StartUpPosition = 0
ps = PositionForm(Me, ActiveCell, 0 , -243) 'FhpFormLeftCellRight, cstFvpFormCenterCellBottomcst
' ps = positionform(me,activecell,x, y
Me.Top = ps.FrmTop
Me.Left = ps.FrmLeft
'Me.Top = ActiveCell.Top
'Me.Left = ActiveCell.Left - 10
'==========================================================
'Unload TransbackerSupport
'TransbackerSupport.Show
Call HideTitleBar(Me)