Em uma macro onde se usa copiar e colar, como cancelar a demarcação (tracejado piscante) da área copiada.
Manualmente é ESC e via Basic da Macro ?
O gravado de macros não grava o comando ESC.
Em uma macro onde se usa copiar e colar, como cancelar a demarcação (tracejado piscante) da área copiada.
Manualmente é ESC e via Basic da Macro ?
O gravado de macros não grava o comando ESC.
Boa noite,
Não achei um comando equivalente ao ESC manual que funcione para o caso, mas encontrei outra rota. Acrescentando as dua linhas abaixo numa macro gravada, em sequencia, retiramos a seleção (tracejado piscante):
rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:SetInputMode", "", 0, Array())
dispatcher.executeDispatch(document, ".uno:Cancel", "", 0, Array())
O primeiro comando entra no modo edição de célula (o que elimina o tracejado) e outro sai (cancela).
Um exemplo completo, que copia o conteúdo da célula A1, cola em D1 e elimina os tracejados:
sub Main
rem ----------------------------------------------------------------------
rem define variables
dim document as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
rem ----------------------------------------------------------------------
dim args1(0) as new com.sun.star.beans.PropertyValue
args1(0).Name = "ToPoint"
args1(0).Value = "$A$1"
dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args1())
rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:Copy", "", 0, Array())
rem ----------------------------------------------------------------------
dim args3(0) as new com.sun.star.beans.PropertyValue
args3(0).Name = "ToPoint"
args3(0).Value = "$D$1"
dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args3())
rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:Paste", "", 0, Array())
rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:SetInputMode", "", 0, Array())
dispatcher.executeDispatch(document, ".uno:Cancel", "", 0, Array())
end sub
Ola @Grafeno, obrigado pela dica, mas não esta dando certo. Uso Win7 + Libo.5.3.5.2, veja arquivo que fiz o teste, não sai a marcação. Teste ai, qual SO usa?
@Gilberto Schiavinatto, eu uso Ubuntu 16.04 + Libo 5.3.4.2, mas em meus testes executei a macro direto da IDE do Basic. Usando um botão de pressão, como no seu arquivo, os comandos copiar e colar não funcionam. Arranjei um Win7 + Libo 5.3.5.2, testei e ocorreu a mesma coisa: macro só funciona executada da IDE do Basic ou do Organizador de Macros.
Seguindo em meus testes, as macros funcionaram quando substitui os botões de pressão por 3 formas (retângulos) com as macros atribuídas. Veja o novo_arquivo_teste.ods