Pergunte aqui
1

Propriedade ou método não encontrado

perguntadas 2017-07-04 11:42:43 +0200

imagem do gravatar de João Batista

updated 2017-07-04 11:46:30 +0200

Olá!

Estou estudando macros através da apostila "Programando Macros Para O OpenOffice.org". Porém ao tentar executar o código abaixo no Writer

Sub editaTabela
    oDoc = StarDesktop.getCurrentComponent()
    oTab = oDoc.createInstance("com.sun.star.text.TextTable")
    oTab.initialize ( 5, 3 )
    oTxt = oDoc.getText()
    oCur = oTxt.createTextCursor()
    oTxt.insertTextContent (oCur, oTab, False)
    Dim oCelula As Object
    oCelula = oTab.getCellByName("A1")
    oCelula.setString("Coluna A")
    oCelula = oTab.getCellByName("B1")
    oCelula.setString("Coluna B")
    oCelula = oTab.getCellByName("C1")
    oCelula.setString("Coluna C")
    Dim oCurTab As Object
    oCurTab = oTab.createCursorByCellName(oTab.CellNames(0))
    oCurTab.gotoStart(False)
    oCurTab.goRight(2, True)
    oCurTab.paraStyleName = "Heading"
    MsgBox oCurTab.getRangeName()
    Dim sNomes() As Variant
    Dim sNomeCelula As String
    sNomes = Array("A","B","C")
    For i% = 1 To 4
        For j% = 1 To 3
            sNomeCelula = sNomes(j%-1)+ Str$(i%+1)
            oCelula = oTab.getCellByName(sNomeCelula)
            If (j% - 1 = 2) Then
                oCelula.setValue(i% + 1)
            Else
                oCelula.setString(sNomeCelula)
            End If
        Next j%
    Next i%
    oCelula = oTab.getCellByName("C5")
    oCelula.setFormula("sum <C2:C4>")
    oCurTab.gotoCellByName("A5", False)
    oCurTab.goRight(1, True)
    oCurTab.mergeRange()
    oCelula = oTab.getCellByName("A5")
    oCelula.setString("Total")
End Sub

obtenho a mensagem:

Descrição da imagem

Desde já, agradeço pela ajuda de vocês.

editar alterar tag assinalar como ofensivo fechar mesclar Excluir

1 Resposta

1

respondidas 2017-07-04 21:21:22 +0200

imagem do gravatar de Olivier

O documento citado é bastante antigo, apesar de ainda ser válido em muitos casos.

Desde sua publicação, houve modificações na API de programação e isso pode ter gerado o erro encontrado.

Para programadores de BASIC e da API do LibreOffice eu recomendo instalar a extensão XRAY, disponível em

https://goo.gl/u7V71y

Baixe e instale no seu LibreOffice e siga o manual para usar. Essa ferramenta permite visualizar os objetos da API, seus métodos, propriedades e muito mais. A API é riquíssima e portanto difícil de programar, ou fica-se restrito ao gravador de macros e suas (muitas) limitações.

com ela você vai saber por que a linha

oCurTab.paraStyleName = "Heading"

não funciona.

editar assinalar como ofensivo Excluir Link mais

Comentários

@Olivier, os links para o site de Bernard Marcelly (criador da Xray) sugeridos no fórum, que vc apontou, então quebrados. Mas eu encontrei os links corretos:

imagem do gravatar de GrafenoGrafeno ( 2017-07-06 17:24:12 +0200 )editar
Login/Registrar para responder

Ferramentas de perguntas

1 seguidor

Estatísticas

Perguntadas: 2017-07-04 11:42:43 +0200

Lidas: 25 vezes

Última atualização: Jul 04