Autor Tópico: Ative a função Gravar Macro no Calc do BrOffice 3  (Lida 3823 vezes)

Offline Frank K Hosaka

  • Usuário Ubuntu
  • *
  • Mensagens: 52
    • Ver perfil
Ative a função Gravar Macro no Calc do BrOffice 3
« Online: 31 de Maio de 2011, 10:02 »
Ainda não testei a dica da página http://soplanilhas.blogspot.com/2011/03/opcao-gravar-macro-desabilitada-no.html que consiste em selecionar a opção Ativar Recursos Experimentais (Instáveis) que você encontra na orelha Geral do Menu Ferramentas > Opções. Vou testar logo mais à noite, e de lá vou acrescentar mais comentários sobre o tema.

Offline Frank K Hosaka

  • Usuário Ubuntu
  • *
  • Mensagens: 52
    • Ver perfil
A tabuada do 2 com a macro do Calc
« Resposta #1 Online: 04 de Junho de 2011, 23:55 »
Usando o recurso do gravador de macro, consegui montar a minha primeira macro no BrOffice Calc. A listagem do código a seguir só funciona se você mudar a sintaxe da fórmula para Excel R1C1, através do Menu Ferramentas > Opções > Br Office Calc > Fórmula > Sintaxe da Fórmula. Eis o código:

sub Main
 dim document   as object
 dim dispatcher as object
 document   = ThisComponent.CurrentController.Frame
 dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
 dim arg(0) as new com.sun.star.beans.PropertyValue
 dim i as integer
 for i = 1 to 10
  arg(0).Name = "StringName"
  arg(0).Value = str(i)
  dispatcher.executeDispatch(document, ".uno:EnterString", "", 0, arg())
  dispatcher.executeDispatch(document, ".uno:GoRight", "", 0, arg())
  arg(0).Value = "x"
  dispatcher.executeDispatch(document, ".uno:EnterString", "", 0, arg())
  dispatcher.executeDispatch(document, ".uno:GoRight", "", 0, arg())
  arg(0).Value = "2"
  dispatcher.executeDispatch(document, ".uno:EnterString", "", 0, arg())
  dispatcher.executeDispatch(document, ".uno:GoRight", "", 0, arg())
  arg(0).Value = "="
  dispatcher.executeDispatch(document, ".uno:EnterString", "", 0, arg())
  dispatcher.executeDispatch(document, ".uno:GoRight", "", 0, arg())
  arg(0).Value = "=RC[-4]*RC[-2]"
  dispatcher.executeDispatch(document, ".uno:EnterString", "", 0, arg())
  dispatcher.executeDispatch(document, ".uno:GoDown", "", 0, arg())
  for j=1 to 4:dispatcher.executeDispatch(document, ".uno:GoLeft", "", , arg()):next j
 next i
end sub
« Última modificação: 05 de Junho de 2011, 00:06 por Frank K Hosaka »