VBA Msgbox Custom Button Text

One functionality missing from the VBA MsgBox function is the ability to customize the button text. Using the MessageBox API, I wrote my own class to customize the button text, re-purposing some of the existing messagebox types to return which button was clicked (first, second, third). Custom Msgbox Buttons

Note: Updated 5-25-2016 to support 64-bit versions of Office.
Note: Updated 12-29-2016 to to have close button enabled by default.
Note: Updated 5-22-2017 to use Win API to get handle to application object window.
Note: Updated 6-8-2017 fixed bug – Thanks to Greg Donnells and Brian High for pointing this out.

VBA Msgbox Custom Button Text
Custom MessageBox Button Text

Example Usage :

    Dim cC As clsMsgbox
    Dim iR As Integer

    Set cC = New clsMsgbox
    iR = cC.MessageBoxEx("Do you want to save the changes you made to whatever?", Exclamation + DefaultButton2, , "&Save", "Do&n't Save", "&Cancel")
    If iR = Button1 Then
        Debug.Print "Button1 Clicked"
    ElseIf iR = Button2 Then
        Debug.Print "Button2 Clicked"
    ElseIf iR = Button3 Then
        Debug.Print "Button3 Clicked"
    End If
    Set cC = New clsMsgbox
    cC.Title = "Title"
    cC.Prompt = "Prompt"
    cC.Icon = Question + DefaultButton3
    cC.ButtonText1 = "ButtonText1"
    cC.ButtonText2 = "ButtonText2"
    cC.ButtonText3 = "ButtonText3"
    iR = cC.MessageBox()
    If iR = Button1 Then
        Debug.Print "Button1 Clicked"
    ElseIf iR = Button2 Then
        Debug.Print "Button2 Clicked"
    ElseIf iR = Button3 Then
        Debug.Print "Button3 Clicked"
    End If