Whilst we wait for The Word guru's to float by, maybe something like this:

Sub CreateSmartQuotesToggleButton()
    ' Get the Ribbon object
    Dim objRibbon As IRibbonUI
    ' Check if the custom tab already exists. If so, exit.
   ' This prevents adding the tab multiple times.
    On Error Resume Next 
    ' Handle potential error if tab doesn't exist
    Application.CommandBars("Ribbon").FindControl(ID:="SmartQuotesTab")
    If Err.Number = 0 Then 
        ' Tab already exists    On Error GoTo 0 
        ' Reset error handling
        Exit Sub
    End If
    On Error GoTo 0 
    ' Reset error handling
    ' Create the custom Ribbon tab
    Set objRibbon = Application.CommandBars("Ribbon")
    With objRibbon.Controls.Add(Type:=msoControlCustom, ID:="SmartQuotesTab")
        .Caption = "Smart Quotes" 
        ' Tab caption    .Visible = True
        ' Create the toggle button within the tab
        With .Controls.Add(Type:=msoControlToggleButton, ID:="SmartQuotesToggle")
            ' Button caption .
            .Caption = "Smart Quotes" 
            ' Tooltip 
            .Description = "Toggle Smart Quotes on/off" 
            ' Procedure to execute on click
            .OnAction = "ToggleSmartQuotes" 
            ' Procedure to get the button's pressed
            .OnGetPressed = "GetSmartQuotesToggleState" 
            ' Procedure to get the button's pressed state
            .ImageMso = "Symbol" 
            ' Choose an appropriate icon (or create a custom one) - "Symbol" is a placeholder.  Look up msoImageMso values for options.
            .Visible = True
        End With
    End With
    ' Invalidate the Ribbon to reflect changes
    objRibbon.Invalidate
    ' Initialize the Smart Quotes state and the button state
    bSmartQuotesEnabled = Application.AutoCorrect.AutoFormatAsYouTypeReplaceQuotes
    ' Update the button state  
    objRibbon.InvalidateControl "SmartQuotesToggle" 
End Sub

' Callback procedure for the toggle button's OnAction event

Sub ToggleSmartQuotes(control As IRibbonControl, pressed As Boolean)
     ' Update global variable   
    bSmartQuotesEnabled = pressed 
    Application.AutoCorrect.AutoFormatAsYouTypeReplaceQuotes = pressed  Application.AutoCorrect.AutoFormatReplaceQuotes = pressed 
    ' Important: Set both!
    ' Optionally, provide visual feedback (e.g., a message box or status bar update)
    ' MsgBox "Smart Quotes are now " & IIf(pressed, "On", "Off") <=== ' Remove Rem if required
    ' Invalidate the control to update the button's appearance if needed.
    ' In most cases this will not be necessary.
    ' Application.CommandBars("Ribbon").InvalidateControl "SmartQuotesToggle"
End Sub

' Callback procedure for the toggle button's OnGetPressed event

Sub GetSmartQuotesToggleState(control As IRibbonControl, pressed As Boolean)
    ' Set the button's pressed state based on the global variable    
    pressed = bSmartQuotesEnabled 
    End Sub

' Procedure to run when the document opens (or when the add-in is loaded)

Sub AutoOpen()
    ' Create the button if it doesn't exist
    CreateSmartQuotesToggleButton 
End Sub

' Procedure to run when the add-in is loaded

Sub AddInInitialize()
    ' Create the button if it doesn't exist    
    CreateSmartQuotesToggleButton 
End Sub