VBA Application.CutCopyMode = False – O que é?
In this Article
VBA Application.CutCopyMode = False
Se você já gravou macros ao copiar e colar, provavelmente já viu a seguinte linha de código:
Application.CutCopyMode = False
Essa linha de código “limpa” a área de transferência*. Se você tiver copiado uma célula do Excel, a execução dessa linha de código removerá a animação em torno da célula copiada:
CutCopyMode é uma propriedade em nível de aplicativo que indica se um programa do Microsoft Office (por exemplo, o Excel) está no modo Cortar ou Copiar. Enquanto estiver no modo copiar (ou cortar), o Excel tem algo armazenado em sua área de transferência que pode ser colado.
Não tenho conhecimento de um momento em que você precisaria definir Application.CutCopyMode como True.
Como Evitar CutCopyMode = False
Normalmente, você pode evitar a necessidade de definir Application CutCopyMode = False usando as práticas recomendadas do VBA Copy+Paste. Como exemplo, a linha de código a seguir copia e cola uma célula em uma única linha, eliminando a necessidade de definir CutCopyMode como False:
Sub CopiarColar_UmaLinha()
Range("a1").Copy Range("b1")
End Sub
Obter o Status de Application.CutCopyMode
Ocasionalmente, você pode querer obter o status do Application.CutCopyMode. Isso pode ser feito para evitar erros ao tentar colar quando não há nada na área de transferência. Para obter o status, use o código a seguir:
Sub Obter_Status_Application_CutCopyMode()
Select Case Application.CutCopyMode
Case Is = xlCopy
MsgBox "Modo Copiar"
Case Is = xlCut
MsgBox "Modo Cortar"
Case Is = False
MsgBox "Não está no Modo Cortar ou Copiar"
End Select
End Sub
*Application.CutCopyMode limpará apenas a área de transferência do aplicativo Microsoft Office (ex.: Excel). Ele não limpará a área de transferência do Windows. Clique no link para saber mais sobre como limpar a área de transferência do Windows usando o VBA.