Olá Gilvan
Obrigado pela pronta resposta, ainda mais em um domingo.
A macro que gravei segue abaixo. Ela faz o que quero mas sempre começa na
mesma célula (B2) e não na célula ativa.
Deve ser algo na referência args1(0).Value = "$B$2"
O ideal seria que primeiro ele usasse a célula ativa: args1(0).Value =
"ActiveCell"
Minha planilha de exemplo é a seguinte:
Obrigado,
Antônio Olinto
================
REM ***** BASIC *****
sub teste2
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 = "$B$2"*
dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args1())
rem ----------------------------------------------------------------------
dim args2(1) as new com.sun.star.beans.PropertyValue
args2(0).Name = "By"
args2(0).Value = 1
args2(1).Name = "Sel"
args2(1).Value = false
dispatcher.executeDispatch(document, ".uno:GoDown", "", 0, args2())
rem ----------------------------------------------------------------------
dim args3(1) as new com.sun.star.beans.PropertyValue
args3(0).Name = "By"
args3(0).Value = 1
args3(1).Name = "Sel"
args3(1).Value = false
dispatcher.executeDispatch(document, ".uno:GoDown", "", 0, args3())
rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:Cut", "", 0, Array())
rem ----------------------------------------------------------------------
dim args5(1) as new com.sun.star.beans.PropertyValue
args5(0).Name = "By"
args5(0).Value = 1
args5(1).Name = "Sel"
args5(1).Value = false
dispatcher.executeDispatch(document, ".uno:GoRight", "", 0, args5())
rem ----------------------------------------------------------------------
dim args6(1) as new com.sun.star.beans.PropertyValue
args6(0).Name = "By"
args6(0).Value = 1
args6(1).Name = "Sel"
args6(1).Value = false
dispatcher.executeDispatch(document, ".uno:GoUp", "", 0, args6())
rem ----------------------------------------------------------------------
dim args7(1) as new com.sun.star.beans.PropertyValue
args7(0).Name = "By"
args7(0).Value = 1
args7(1).Name = "Sel"
args7(1).Value = false
dispatcher.executeDispatch(document, ".uno:GoUp", "", 0, args7())
rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:Paste", "", 0, Array())
rem ----------------------------------------------------------------------
dim args9(1) as new com.sun.star.beans.PropertyValue
args9(0).Name = "By"
args9(0).Value = 1
args9(1).Name = "Sel"
args9(1).Value = false
dispatcher.executeDispatch(document, ".uno:GoRight", "", 0, args9())
rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:ToggleMergeCells", "", 0,
Array())
rem ----------------------------------------------------------------------
dim args11(1) as new com.sun.star.beans.PropertyValue
args11(0).Name = "By"
args11(0).Value = 1
args11(1).Name = "Sel"
args11(1).Value = false
dispatcher.executeDispatch(document, ".uno:GoLeft", "", 0, args11())
rem ----------------------------------------------------------------------
dim args12(1) as new com.sun.star.beans.PropertyValue
args12(0).Name = "By"
args12(0).Value = 1
args12(1).Name = "Sel"
args12(1).Value = false
dispatcher.executeDispatch(document, ".uno:GoLeft", "", 0, args12())
rem ----------------------------------------------------------------------
dim args13(1) as new com.sun.star.beans.PropertyValue
args13(0).Name = "By"
args13(0).Value = 1
args13(1).Name = "Sel"
args13(1).Value = false
dispatcher.executeDispatch(document, ".uno:GoLeft", "", 0, args13())
rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:ToggleMergeCells", "", 0,
Array())
rem ----------------------------------------------------------------------
dim args15(1) as new com.sun.star.beans.PropertyValue
args15(0).Name = "By"
args15(0).Value = 1
args15(1).Name = "Sel"
args15(1).Value = false
dispatcher.executeDispatch(document, ".uno:GoDown", "", 0, args15())
rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:DeleteRows", "", 0, Array())
rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:DeleteRows", "", 0, Array())
rem ----------------------------------------------------------------------
dim args18(1) as new com.sun.star.beans.PropertyValue
args18(0).Name = "By"
args18(0).Value = 1
args18(1).Name = "Sel"
args18(1).Value = false
dispatcher.executeDispatch(document, ".uno:GoRight", "", 0, args18())
end sub
Em 22 de abril de 2018 12:33, Gilvan Vilarim <gilvan.vilarim@gmail.com>
escreveu:
Não manjo muito de macros, mas ao gravar um teste eu vi que ele gera a
movimentação de forma relativa usando GoDown ou GoRight, por exmeplo.
Somente ao mesclar ele usa um intervalo absoluto. Veja o que ele gerou (eu
apenas digitei uns valores como 123 e 456 e depois mesclei duas celulas). O
pessoal aqui vai dar mais ideias.
...
Em 22 de abril de 2018 12:12, Antonio Silva <aolinto.lst@gmail.com>
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.
--
Antônio Olinto
São Paulo, Brasil
--
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.libreoffi
ce.org/pt-br/usuarios/
--
/*
*Prof. Gilvan Vilarim*
Instituto Federal de Educação, Ciência e Tecnologia do Rio de Janeiro -
IFRJ
Federal Institute of Education, Science and Technology of Rio de Janeiro
http://www.gilvanvilarim.com.br/
*/