Usando o Excel VBA para capturar o uso da barra de ferramentas padrão

0

Estou procurando uma maneira de capturar um clique em uma ferramenta de barra de ferramentas padrão no Excel com o VBA. A principal necessidade é capturar qualquer solicitação de copiar, recortar e colar pelo usuário. Eu posso capturar as teclas de atalho para essas funções, mas não consigo encontrar uma maneira de capturar as mesmas funções quando o usuário clica no ícone na barra de ferramentas padrão ou quando o usuário usa o menu para selecionar a função.

    
por user26455 01.03.2010 / 21:46

1 resposta

0

Aqui está um exemplo de John Walkenbalk link

Eu também usei uma macro (chamada pelo evento worksheet_change) para forçar um usuário a 'colar especial'. Deve dar-lhe um bom ponto de partida.

Sub pastefix()
    Dim UndoString As String
    Dim srce As Range

On Error GoTo err_handler

    UndoString = _
        Application.CommandBars("Standard").Controls("&Undo").List(1)

    If Left(UndoString, 5) <> "Paste" And UndoString <> "Auto Fill" Then
        Exit Sub
        End If

    Application.ScreenUpdating = False
    Application.EnableEvents = False
    Application.Undo

    If UndoString = "Auto Fill" Then
        Set srce = Selection
        srce.Copy
        ActiveCell.PasteSpecial _
            Paste:=xlPasteValues, _
            Operation:=xlNone, _
            SkipBlanks:=False, _
            Transpose:=False
        Union(ActiveCell, srce).Select
    Else
        ActiveCell.PasteSpecial _
            Paste:=xlPasteValues, _
            Operation:=xlNone, _
            SkipBlanks:=False, _
            Transpose:=False
    End If

    Application.CutCopyMode = False
    Application.ScreenUpdating = True
    Application.EnableEvents = True

    Exit Sub

err_handler:
    Application.ScreenUpdating = True
    Application.EnableEvents = True
    Application.CutCopyMode = False
End Sub
    
por 16.03.2010 / 16:20