Pergunte aqui
1

ESC (ESCAPE) em macro.

perguntadas 2017-02-22 01:43:02 +0200

updated 2017-08-05 18:29:13 +0200

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.

editar alterar tag assinalar como ofensivo fechar mesclar Excluir

1 Resposta

1

respondidas 2017-08-03 01:24:59 +0200

imagem do gravatar de Grafeno

Boa noite,


Sei que esta questão está aberta há um tempo, mas apenas hoje me deparei com uma solução para ela.

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


Atte,

editar assinalar como ofensivo Excluir Link mais

Comentários

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?

arq.teste

imagem do gravatar de Gilberto SchiavinattoGilberto Schiavinatto ( 2017-08-04 02:51:55 +0200 )editar

@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.

imagem do gravatar de GrafenoGrafeno ( 2017-08-04 21:27:00 +0200 )editar
1

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

imagem do gravatar de GrafenoGrafeno ( 2017-08-04 21:32:34 +0200 )editar

Ok @Grafeno, agora esta funcionando. Obrigado.

imagem do gravatar de Gilberto SchiavinattoGilberto Schiavinatto ( 2017-08-05 01:58:59 +0200 )editar

Alo @Olivier, conforme comentário do @Grafeno, "Usando um botão de pressão, como no seu arquivo, os comandos copiar e colar não funcionam." pode ser um bug?

imagem do gravatar de Gilberto SchiavinattoGilberto Schiavinatto ( 2017-08-05 02:01:02 +0200 )editar
Login/Registrar para responder

Ferramentas de perguntas

1 seguidor

Estatísticas

Perguntadas: 2017-02-22 01:43:02 +0200

Lidas: 153 vezes

Última atualização: Aug 03 '17