VBA Application.CutCopyMode = False
Se você gravou macros enquanto copiava e colava, provavelmente viu a seguinte linha de código:
1 | Application.CutCopyMode = False |
Esta linha de código “limpa” a área de transferência *. Se você copiou uma célula do Excel, executar esta linha de código removerá a animação ao redor da célula copiada:
CutCopyMode é uma propriedade de nível de aplicativo que indica se um programa do Microsoft Office (ex. Excel) está no modo Recortar ou Copiar. Enquanto estiver no modo de cópia (ou corte), o Excel tem algo armazenado em sua área de transferência que pode ser colado.
Não estou ciente de uma época em que você precisaria definir Application.CutCopyMode como True.
Evitando CutCopyMode = False
Geralmente, você pode evitar a necessidade de definir Application CutCopyMode = False usando as práticas recomendadas VBA Copy + Paste. Por exemplo, a seguinte linha de código copia e cola uma célula em uma única linha, eliminando a necessidade de definir CutCopyMode como False:
123 | Sub CopyPaste_OneLine ()Intervalo ("a1"). Copiar intervalo ("b1")End Sub |
Obter o status de Application.CutCopyMode
Ocasionalmente, você pode desejar obter o status de Application.CutCopyMode. Potencialmente para evitar erros ao tentar colar quando não houver nada na área de transferência. Para obter o status, use o seguinte código:
123456789101112 | Sub Get_Application_CutCopyMode_Status ()Selecione Case Application.CutCopyModeCase Is = xlCopyMsgBox "Modo Copiar"Case Is = xlCutMsgBox "Modo de corte"Case Is = FalseMsgBox "Não está no modo Cortar ou Copiar"End SelectEnd Sub |
* Application.CutCopyMode limpará apenas a área de transferência do aplicativo Microsoft Office (ex. Excel). 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.