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...


 

 

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
  • 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

 

 

 



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

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

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

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.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