Uma versão mais limpa:
sub CortaCola
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(1) as new com.sun.star.beans.PropertyValue
args1(0).Name = "By"
args1(0).Value = 1
args1(1).Name = "Sel"
args1(1).Value = false
dispatcher.executeDispatch(document, ".uno:GoDown", "", 0, args1())
dispatcher.executeDispatch(document, ".uno:GoDown", "", 0, args1())
dispatcher.executeDispatch(document, ".uno:Cut", "", 0, args1())
dispatcher.executeDispatch(document, ".uno:GoRight", "", 0, args1())
dispatcher.executeDispatch(document, ".uno:GoUp", "", 0, args1())
dispatcher.executeDispatch(document, ".uno:GoUp", "", 0, args1())
dispatcher.executeDispatch(document, ".uno:Paste", "", 0, args1())
dispatcher.executeDispatch(document, ".uno:GoRight", "", 0, args1())
dispatcher.executeDispatch(document, ".uno:ToggleMergeCells", "", 0,
args1())
dispatcher.executeDispatch(document, ".uno:GoLeft", "", 0, args1())
dispatcher.executeDispatch(document, ".uno:GoLeft", "", 0, args1())
dispatcher.executeDispatch(document, ".uno:GoLeft", "", 0, args1())
dispatcher.executeDispatch(document, ".uno:ToggleMergeCells", "", 0,
args1())
dispatcher.executeDispatch(document, ".uno:GoRight", "", 0, args1())
dispatcher.executeDispatch(document, ".uno:GoDown", "", 0, args1())
end sub
Em 22/04/2018 16:14, Gilberto Schiavinatto escreveu:
Uma macro exemplo:
/sub CortaCola //
//rem ==> partindo da célula ativa . ---------------------------//
//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(1) as new com.sun.star.beans.PropertyValue//
//args1(0).Name = "By"//
//args1(0).Value = 1//
//args1(1).Name = "Sel"//
//args1(1).Value = false//
//dispatcher.executeDispatch(document, ".uno:GoDown", "", 0, args1())//
//dispatcher.executeDispatch(document, ".uno:GoDown", "", 0, args1())//
//dispatcher.executeDispatch(document, ".uno:Cut", "", 0, Array())//
//rem
----------------------------------------------------------------------//
//dim args4(1) as new com.sun.star.beans.PropertyValue//
//args4(0).Name = "By"//
//args4(0).Value = 1//
//args4(1).Name = "Sel"//
//args4(1).Value = false//
//dispatcher.executeDispatch(document, ".uno:GoRight", "", 0, args4())//
//dispatcher.executeDispatch(document, ".uno:GoUp", "", 0, args4())//
//dispatcher.executeDispatch(document, ".uno:GoUp", "", 0, args4())//
//dispatcher.executeDispatch(document, ".uno:Paste", "", 0, Array())//
//rem
----------------------------------------------------------------------//
//dim args8(1) as new com.sun.star.beans.PropertyValue//
//args8(0).Name = "By"//
//args8(0).Value = 1//
//args8(1).Name = "Sel"//
//args8(1).Value = false//
//dispatcher.executeDispatch(document, ".uno:GoRight", "", 0, args8())//
//dispatcher.executeDispatch(document, ".uno:ToggleMergeCells", "", 0,
Array())//
//rem
----------------------------------------------------------------------//
//dim args10(1) as new com.sun.star.beans.PropertyValue//
//args10(0).Name = "By"//
//args10(0).Value = 1//
//args10(1).Name = "Sel"//
//args10(1).Value = false//
//dispatcher.executeDispatch(document, ".uno:GoLeft", "", 0, args10())//
//dispatcher.executeDispatch(document, ".uno:GoLeft", "", 0, args10())//
//dispatcher.executeDispatch(document, ".uno:GoLeft", "", 0, args10())//
//dispatcher.executeDispatch(document, ".uno:ToggleMergeCells", "", 0,
Array())//
//rem
----------------------------------------------------------------------//
//dim args14(1) as new com.sun.star.beans.PropertyValue//
//args14(0).Name = "By"//
//args14(0).Value = 1//
//args14(1).Name = "Sel"//
//args14(1).Value = false//
//dispatcher.executeDispatch(document, ".uno:GoRight", "", 0, args14())//
//dispatcher.executeDispatch(document, ".uno:GoDown", "", 0, args14())//
//end sub/
Em 22/04/2018 12:12, Antonio Silva escreveu:
Olá pessoal
Estou tentando fazer uma macro bem simples no Calc.
A partir de uma célula ativa movo o duas células para baixo, recorto, movo
uma célula para o lado direito e duas células para cima, colo, movo uma
célula para direira, desmarco Mesclar, movo três células para esquerda,
desmarco Mesclar, movo uma célula para direita e uma para baixo.
No entanto isso deve ser feito de forma relativa. Não em uma célula
determinada, mas a partir de uma célula ativa.
Fiz muito esse tipo de macro no Excel mas há um bom tempo só uso o
LibreOffice no Linux. Esta é a primeira vez que necessito fazer uma macro
no Calc.
Agradeço qualquer sugestão.
Abraços e boa semana para todos.
--
Você está recebendo e-mails da lista usuarios@pt-br.libreoffice.org
# Informações sobre os comandos disponíveis (em inglês):
mande e-mail vazio para usuarios+unsubscribe@pt-br.libreoffice.org
# Cancelar sua assinatura: mande e-mail vazio para:
usuarios+unsubscribe@pt-br.libreoffice.org
# Arquivo de mensagens: https://listarchives.libreoffice.org/pt-br/usuarios/
Context
Privacy Policy |
Impressum (Legal Info) |
Copyright information: Unless otherwise specified, all text and images
on this website are licensed under the
Creative Commons Attribution-Share Alike 3.0 License.
This does not include the source code of LibreOffice, which is
licensed under the Mozilla Public License (
MPLv2).
"LibreOffice" and "The Document Foundation" are
registered trademarks of their corresponding registered owners or are
in actual use as trademarks in one or more countries. Their respective
logos and icons are also subject to international copyright laws. Use
thereof is explained in our
trademark policy.