Introduction

Introducing UserForm Extensibility for Excel

Add UserForm Extensibility to your Projects via an Extensibility Class for Excel 2016 (32bit or 64bit, Version 16) · Build Beautiful, Modern UserForms for Excel

If you want to add some additional UserForm Extensibility to your Project then these small Classes are a must. The 'UserFormExtensibility' imports other Class Objects like 'SystemMetrics', 'SystemTiming' and 'Easing' to make extending your UserForms Methods easy - you only need to add tiny amounts of Code to do some 'big' things; of course, a little imagination helps too...

You want a UserForm without a Caption, but need a Border with Rounded Corners? Want to design one like the UserForm below? Sure you can do this with a couple of Calls using the '.RemoveCaptionAndBorders' and '.RoundBorderCorners' Methods followed by a couple of Labels and some Image Controls. UserForm Extensibility is declared at the top of any UserForm Code Module like this 'Private Self As New UserFormExtensibility'. After which, each UserForm can be 'Assigned' to the Class via 'Set Self.Assign = Me' in the 'UserForm_Initialize()' Subroutine. From here you have all of the power and functionality via the interface with the minimum of coding - create Non-standard UserForms Shapes with Transparency & Opacity or simple Borderless UserForms with Rounded Corners
You are purchasing version UserForm Extensibility v1.7 featuring the Windows 11 fix


 

 

If you love UserForm Extensibility, you may also like Mint, Slate or Lightbox UserForms


Mint UserForm
Slate UserForm
Lightbox UserForm

Prerequisites

  • Microsoft Excel 2016 Version 16 (32bit or 64bit) · designed for Office 365 Windows 11
  • Basic to moderate Excel Skills and some basic VBA skills to import UserForms and write basic code
  • Windows PC · NOT a Mac!
  • No support is provided for customization of this Software

Features

  • Self.RemoveCaption, Self.RemoveCaptionAndBorders - remove the Caption and/or Borders from a UserForm
  • Self.RoundCorners, Self.RoundBorderCorners - round the UserForm Corners with/without a Border
  • Self.AllowDrag - creates a draggable UI Interface, move the UserForm around with the Mouse
  • Use with both Modal or Modeless UserForms
  • Use ontop of a White or Black Lightbox (included with the purchased file)
  • Bespoke Minified Classes included in this Project: Easing, Lightbox, SystemMetric, SystemTiming and UserFormExtensibility
  • Animations now take place wherever the UserForm is dragged around on the Excel Window
  • Create a borderless Splash Screen with Rounded Corners that presents itself ontop of the main Excel Splash Screen
  • Create Non-standard UserForms Shapes with both Transparency Areas and Opacity. This allows you to create Shapes in Affinity, Photoshop, Gimp or Inkscape and then use them to create a non-standard looking UserForm that can be an Image with / without a Border, depending on how you design it
  • Works with Windows 11

 

 

 





Installation

Open UserFormExtensibility.xlsm and test the Examples. To use UserForm Extensibility in your own Projects open UserFormExtensibility.xlsm and your own Macro-enabled Project. Then open the VBE (Visual Basic Editor) and drag the 3 Classes and any of the UserForms (if required, you can also use your own) into your Project. Add and configure any of the Examples to use the Code


Usage

How to use UserForm Extensibility


Examples
On the 'Example' Sheet you will find all of the UserForm Extensibility examples. The VBA Code used for all of these examples is in the Example, Worksheet Code Module

The following examples are available - Please Note: not all of the examples in the purchased File are detailed in the additional information that follows this list - you will have to purchase the Software to find out more ;)
1. Draggable UserForm without Caption
2. Draggable UserForm without Caption and Borders
3. Draggable UserForm without Caption in White with a Single Slate Coloured Border
4. Draggable UserForm without Caption and Borders with Rounded Corners
5. Draggable UserForm without Caption in White with a Single Slate Coloured Border and Rounded Corners
6. Draggable UserForm without Caption in ButtonFace with a Single Slate Coloured Border and is Destroyed whenever another Worksheet is selected or Created
7. Animated Error (Bug) Modal UserForm demonstrating the Easing Functionality, Escape {ESC} to exit
8. Animated UserForm ontop of a White Lightbox that is set to Fit Excel
9. Animated UserForm ontop of a Black Lightbox that is set to Fit Excel
10. Animated UserForm ontop of a Black Lightbox that is set to Fit to Screen 
11. A 2-Step Lightbox Effect using different Easing for the Lightbox and the UserForm
12. Add Minimise and Maximise Buttons to a UserForm
13. A new Dialog Styled ontop of a Black Lightbox

1. Draggable UserForm without Caption
To bring up a Draggable UserForm without Caption from a click on an Icon, Button or Shape Object, link a Macro ie. Example1() to your Icon (or Object) and then in a UserForm Code Module, configure the Code below. In any Standard Code Module Show the UserForm like this 'UserForm1.Show 0' for a Modelsss UserForm or 'UserForm1.Show 1' for a Modal UserForm. Please note: a UserForm_DblClick() EVent Handler is added purely so that you can close the UserForm
Option Explicit

Private Self As New UserFormExtensibility

Private Sub UserForm_Initialize()
   Set Self.Assign = Me
   Self.RemoveCaption
End Sub

Private Sub UserForm_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
   Self.AllowDrag
End Sub

' only used for the Demo
Private Sub UserForm_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
   Unload Me
End Sub


2. Draggable UserForm without Caption and Borders
To bring up a Draggable UserForm without Caption and Borders from a click on an Icon, Button or Shape Object, link a Macro ie. Example1() to your Icon (or Object) and then in a UserForm Code Module, configure the Code below. In any Standard Code Module Show the UserForm like this 'UserForm1.Show 0' for a Modelsss UserForm or 'UserForm1.Show 1' for a Modal UserForm. Please note: a UserForm_DblClick() EVent Handler is added purely so that you can close the UserForm
Option Explicit

Private Self As New UserFormExtensibility

Private Sub UserForm_Initialize()
   Set Self.Assign = Me
End Sub

Private Sub UserForm_Activate()
   Self.RemoveCaptionAndBorders
End Sub

Private Sub UserForm_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
   Self.AllowDrag
End Sub

' only used for the Demo
Private Sub UserForm_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
   Unload Me
End Sub

3. Draggable UserForm without Caption in White with a Single Slate Coloured Border
To bring up a Draggable UserForm without Caption in White with a Single Slate Coloured Border from a click on an Icon, Button or Shape Object, link a Macro ie. Example1() to your Icon (or Object) and then in a UserForm Code Module, configure the Code below. In any Standard Code Module Show the UserForm like this 'UserForm1.Show 0' for a Modelsss UserForm or 'UserForm1.Show 1' for a Modal UserForm. Please note: a UserForm_DblClick() EVent Handler is added purely so that you can close the UserForm

Additional changes made to the UserForm:
- the UserForm BackColor is set to &H00FFFFFF&
-The BorderStyle of the UserForm is set to fmBorderStyleSingle
-The BorderColor is set to &H0048423C&
Option Explicit

Private Self As New UserFormExtensibility

Private Sub UserForm_Initialize()
   Set Self.Assign = Me
End Sub

Private Sub UserForm_Activate()
   Self.RemoveCaptionAndBorders
End Sub

Private Sub UserForm_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
   Self.AllowDrag
End Sub

' only used for the Demo
Private Sub UserForm_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
   Unload Me
End Sub

4. Draggable UserForm without Caption and Borders with Rounded Corners
To bring up a Draggable UserForm without Caption and Borders with Rounded Corners from a click on an Icon, Button or Shape Object, link a Macro ie. Example1() to your Icon (or Object) and then in a UserForm Code Module, configure the Code below. In any Standard Code Module Show the UserForm like this 'UserForm1.Show 0' for a Modelsss UserForm or 'UserForm1.Show 1' for a Modal UserForm. Please note: a UserForm_DblClick() EVent Handler is added purely so that you can close the UserForm
Option Explicit

Private Self As New UserFormExtensibility

Private Sub UserForm_Initialize()
   Set Self.Assign = Me
End Sub

Private Sub UserForm_Activate()
   Self.RemoveCaptionAndBorders
   Self.RoundCorners
End Sub

Private Sub UserForm_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
   Self.AllowDrag
End Sub

' only used for the Demo
Private Sub UserForm_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
   Unload Me
End Sub

5. Draggable UserForm without Caption in White with a Single Slate Coloured Border and Rounded Corners
To bring up a Draggable UserForm without Caption in White with a Single Slate Coloured Border and Rounded Corners from a click on an Icon, Button or Shape Object, link a Macro ie. Example1() to your Icon (or Object) and then in a UserForm Code Module, configure the Code below. In any Standard Code Module Show the UserForm like this 'UserForm1.Show 0' for a Modelsss UserForm or 'UserForm1.Show 1' for a Modal UserForm. Please note: a UserForm_DblClick() EVent Handler is added purely so that you can close the UserForm

Additional changes made to the UserForm:
- the UserForm BackColor is set to &H00FFFFFF&
-The BorderStyle of the UserForm is set to fmBorderStyleSingle
-The BorderColor is set to &H0048423C&
Option Explicit

Private Self As New UserFormExtensibility

Private Sub UserForm_Initialize()
   Set Self.Assign = Me
End Sub

Private Sub UserForm_Activate()
   Self.RemoveCaptionAndBorders
   Self.RoundBorderCorners
End Sub

Private Sub UserForm_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
   Self.AllowDrag
End Sub

' only used for the Demo
Private Sub UserForm_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
   Unload Me
End Sub

6. Draggable UserForm without Caption in ButtonFace with a Single Slate Coloured Border and is Destroyed whenever another Worksheet is selected or Created
To bring up a Draggable UserForm without Caption in ButtonFace with a Single Slate Coloured Border and is Destroyed whenever another Worksheet is selected or Created from a click on an Icon, Button or Shape Object, link a Macro ie. Example1() to your Icon (or Object) and then in a UserForm Code Module, configure the Code below. In any Standard Code Module Show the UserForm like this 'UserForm1.Show 0' for a Modelsss UserForm or 'UserForm1.Show 1' for a Modal UserForm. Please note: a UserForm_DblClick() EVent Handler is added purely so that you can close the UserForm

Additional changes made to the UserForm:
-The BorderStyle of the UserForm is set to fmBorderStyleSingle
-The BorderColor is set to &H0048423C&
Option Explicit

Private Self As New UserFormExtensibility

Private Sub UserForm_Initialize()
   Set Self.Assign = Me
End Sub

Private Sub UserForm_Activate()
   Self.RemoveCaptionAndBorders
   Self.UnloadOnDeactivate = True
End Sub

Private Sub UserForm_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
   Self.AllowDrag
End Sub

' only used for the Demo
Private Sub UserForm_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
   Unload Me
End Sub

7. Animated UserForm demonstrating the Easing Functionality
To bring up an Animated UserForm for Version 1.1 I have added in an 'Easing' Class Code Module, a .Tweener() Method and a .Tween() Function. I have also added a Top Bar from an Image, a Bug Icon and 2 Button Images - all of these are included in the download. The Code below is the full Code required for the Demo

Additional changes made to the UserForm:
-The BorderStyle of the UserForm is set to fmBorderStyleSingle
-The BorderColor is set to &H00BDBDBD&
Option Explicit

Private Self As New UserFormExtensibility

Private Sub UserForm_Initialize()
   Set Self.Assign = Me
   Self.MoveOffScreen
End Sub

Private Sub UserForm_Activate()
   Self.RemoveCaptionAndBorders
   Self.RoundBorderCorners

   Set Self.Tweener = Me
   Self.Tween
End Sub

Private Sub UserForm_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
   Self.AllowDrag
End Sub

Private Sub UserForm_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
   If KeyAscii.value = 27 Then
      Self.Tween False
      Unload Me
   End If
End Sub

Private Sub OKButtonHovered_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
      Self.Tween False
      Unload Me
End Sub

Public Sub OKButton_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
      Me.OKButtonHovered.Visible = True
      Me.OKButton.Visible = False
End Sub

Private Sub UserForm_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
   Me.OKButtonHovered.Visible = False
   If Me.OKButton.Enabled = True Then Me.OKButton.Visible = True
End Sub

8. Animated UserForm ontop of a White Lightbox that is set to Fit Excel
This is a Demo of overlaying the UserForm ontop of a an Easing Lightbox avaialable via the Extensibility Interfaces (Classes). Both the Subroutine used to create the Effect and the UserForm Code is shown below. As I am using this as an Error Message I wrote the Subroutine to trap Errors - you can see I try to set a String to an Integer which creates the Error. WHen adding the Lightbox, a little more COde is required in the UserForm Code Module:

' Subroutine - Animated UserForm ontop of a White Lightbox that is set to Fit Excel
Public Sub Example8()
   On Error GoTo Catch

   Dim Effect As Lightbox
   Set Effect = New Lightbox

   Effect.TransitionIn FitToExcel, easeOutSine, 160

   '@Ignore IntegerDataType, VariableNotUsed
   Dim i As Integer
   i = "foobar"

Try:
   Effect.TransitionOut easeOutSine, 160
   Exit Sub

Catch:
   With UserForm8
      .Width = 340
      .Height = 120
      .Message.Caption = "Oops, an error has occurred!"
      .InformativeMessage.Caption = "The error no. was " & Err.Number & " and the error was " & Err.Description
      .Show 1
   End With
   Resume Try
End Sub
          
' UserForm Code          
Option Explicit

Private Self As New UserFormExtensibility
Private PEasingType As TEasing

Public Property Get EasingType() As TEasing: EasingType = PEasingType: End Property
Public Property Let EasingType(value As TEasing): PEasingType = value: End Property

Private Sub UserForm_Initialize()
   Set Self.Assign = Me
   Self.MoveOffScreen
   EasingType = easeBackInQuartic
End Sub

Private Sub UserForm_Activate()
   Self.RemoveCaptionAndBorders
   Self.RoundBorderCorners

   Set Self.Tweener = Me
   Self.Tween True, EasingType
End Sub

Private Sub UserForm_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
   Self.AllowDrag
End Sub

Private Sub UserForm_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
   If KeyAscii.value = 27 Then
      Self.Tween False, EasingType
      Unload Me
   End If
End Sub

Private Sub OKButtonHovered_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
   Self.Tween False, EasingType
   Unload Me
End Sub

Public Sub OKButton_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
   Me.OKButtonHovered.Visible = True
   Me.OKButton.Visible = False
End Sub

Private Sub UserForm_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
   Me.OKButtonHovered.Visible = False
   If Me.OKButton.Enabled = True Then Me.OKButton.Visible = True
End Sub

Lots more Demos include:

9. Animated UserForm ontop of a Black Lightbox that is set to Fit Excel
10. Animated UserForm ontop of a Black Lightbox that is set to Fit to Screen
11. A 2-Step Lightbox Effect using different Easing for the Lightbox and the UserForm
12. Add Minimise and Maximise Buttons to a UserForm
13. A new Dialog Styled ontop of a Black Lightbox
14. A Splash Screen for Excel
15. Making a UserForm with Transparent Affinity - Object Designed in Affinity with Red Layer RGB(255, 0, 0) as Long value and then 2 Shapes (Insert as Picture in Worksheet)
16. Making a UserForm with Transparent Affinity - Object Designed in Affinity with Red Layer RGB(255, 0, 0) as Long value and then 2 Shapes (Load directly into UserForm)
17. Making a UserForm with Transparent Inkscape - Object Designed in Inkscape with Red Background Square RGB(255, 0, 0) as Long value and then 2 Shapes with 0 Stroke and No Paint Stroke (or you can use Stroke set to 1px same Colour as each Shape)
18. Hotels example of a Transparent Non-standard UserForm Shape
19. Geek Logo UserForm. Sharp Edges, Curves, Missing parts don't look so good

Slate

A Bug, Error UserForm I designed using this Software - see Example 7

 

The main UserForm Extensibility Example Sheet - I have included the Bug Icon, the Bar and the Button Images I created for Example 7

 

A Screenshot of a UserForm with its Caption removed

A Screenshot of a UserForm with its Caption and Borders removed

A Screenshot of a UserForm with its Caption removed and a Border with Round Corners

An Animated UserForm ontop of a White Lightbox

A New Confirmation Dialog for v1.4 ontop of a Black Lightbox

A Splash Screen

An Image with Transparency (Red) and 2 Shapes Designed in Affinity Inserted into the Worksheet and then Copied into the Picture Member of the UserForm (Has a Border after inserting into the Worksheet as a Picture)

An Image with Transparency (Red) and 2 Shapes Designed in Inkscape Loaded directly into the Picture Member of the UserForm (Does not have a Border after Designing without Stroke and using the direct Load)

This is an example of downloading an image, setting the Transparent Colour of one part of the Image to RGB(255, 0, 0) Red and then Loading it into the Picture Member of the UserForm

The Final Hotels Image presented as a Non-standard UserForm Shape ontop of the Worksheet



FAQ

* There are currently no FAQ for UserForm Extensibility




UserForm Extensibility Videos

This is the first video of UserForm Extensibility in action for Examples 1 through to 8. In this demonstration, I go through each of the examples on the Example Sheet. Music Lost & Found (Original Mix) by Roman Messer, Roxanne Emery Get it Here · view this UserForm Extensibility video on YouTube

This is the second video of UserForm Extensibility in action for Examples 9 through to 13. Music Lost & Found (Original Mix) by Roman Messer, Roxanne Emery Get it Here · view this UserForm Extensibility video on YouTube

This is the third video of UserForm Extensibility in action for Examples 13 through to 19. Music is Horizon, by Mark Kubiszyn. Listen to it Here

This is a video of the Splash Screen opening up when you open the UserForm Extensibility Software



Support

Please remember you have purchased very affordable Software and you have not paid for a full-time Software design agency - I am but one man. Occasionally I may help with small tweaks, but these requests will be put on a much lower priority due to their nature. You have not PAID for Support, Support is 100% optional and I provide it for your convenience, so please be patient, polite and respectful

Support (limited) for my Software includes

  • Responding to questions or problems regarding the Software and its features
  • Fixing valid (replicated) bugs and reported issues for the VERSION I HAVE WRITTEN

Software support does not include

  • Customization and installation services
  • Support for third party software or ANY kind of development whatsoever

Before seeking support

  • Make sure your question is a valid Software Issue and not a customization request
  • Make sure you have read through the FAQ's, online documentation and any related video guides before asking support on how to accomplish a task
  • Ensure that you access to the VBOM is allowed and that Macros can run in Excel
  • Make sure to provide 'proof of purchase' and state the name / version of the Software that you are having issues with when requesting support by Email or via Facebook

How to get Support

Contact Mark Kubiszyn on the Email address provided when you purchased the Software, including the Order Number
...or Contact Mark Kubiszyn via our Facebook Page - remember to be patient, if there has been an issue with your download, Mark will always respond within 48 hours and will Email you the File directly if neccessary or via Messenger. For other issues the response time may be considerably longer and I may choose to respond to specific questions only (as is my right), depending on what has been asked

Future Builds

* No ideas as yet!

Bug Fixes

* There are currently no bugs identified for UserForm Extensibility

Changelog

Read more information on the status of each release below. The latest Version including a description of any changes is shown first

16.12.2021 - (Version 1.7)

Fix for Windows 11 OS, for a Lightbox. The code detects the the OS Build Number >=22000 indicating Windows 11 or greater and then rounds the Window corners and adjusts the Windows Width & Height



10.11.2021 - (Version 1.6)

Added Examples of creating UserForms with Transparency and Opacity. This enables you to design non-standard looking UserForms very easily with or without a Border, depending on how you initially design them. You can use Packages like Affinity or Photoshop to create your masterpieces. For info, if you don't want a Border and want to design without a Border, then the images desinged in Affinity and loaded directly into the UserForm Picture Memeber seem less jagged on darker Backgrounds
15. Making a UserForm with Transparent Affinity - Object Designed in Affinity with Red Layer RGB(255, 0, 0) as Long value and then 2 Shapes (Insert as Picture in Worksheet)
16. Making a UserForm with Transparent Affinity - Object Designed in Affinity with Red Layer RGB(255, 0, 0) as Long value and then 2 Shapes (Load directly into UserForm)
17. Making a UserForm with Transparent Inkscape - Object Designed in Inkscape with Red Background Square RGB(255, 0, 0) as Long value and then 2 Shapes with 0 Stroke and No Paint Stroke (or you can use Stroke set to 1px same Colour as each Shape)
18. Hotels example of a Transparent Non-standard UserForm Shape. Flat Edges work best, so this Image looks really nice
19. Geek Logo UserForm. Sharp Edges, Curves, Missing parts don't look so good



30.10.2021 - (Version 1.5)

Added an example of adding a Splash Screen - this doesn't switch off the main Excel Splash Screen but it does present a new one on top of it
14. A Splash Screen for Excel



16.10.2021 - (Version 1.4)

Added a New Confirmation Dialog (UserForm 10) to the Project
13. A new Dialog Styled ontop of a Black Lightbox



14.10.2021 - (Version 1.3)

Added the ability to Add Minimise and/or Maximise Buttons to a Standard UserForm
12. Add Minimise and Maximise Buttons to a UserForm



13.10.2021 - (Version 1.2)

Adjusted the Code to allow Animations to ease out wherever the UserForm is dragged around on the Excel Window

Additional Examples and Functionality including a Lightbox:
8. Animated UserForm ontop of a White Lightbox that is set to Fit Excel
9. Animated UserForm ontop of a Black Lightbox that is set to Fit Excel
10. Animated UserForm ontop of a Black Lightbox that is set to Fit to Screen
11. A 2-Step Lightbox Effect using different Easing for the Lightbox and the UserForm



12.10.2021 - (Version 1.1)

Additional Examples and Functionality:
7. Animated Error (Bug) Modal UserForm demonstrating the Easing Functionality, Escape {ESC} to exit
The addition of the 'Easing' Class Code Module and inclusion of an .Tweener() Method together with the .Tween() Function now handles all of the animation In and Out. I have kept it so that you animate In and then the Out animation goes the reverse way (for this release). I have alos included a Top bar with no ttitle, an Icon, a Strong Message Text, Informative Text and an okay button



12.10.2021 - (Version 1)

General release of UserForm Extensibility