Selecionado uma coluna ou linha de um tabela no writer.

Tentei usar os macros que possui que seleciona o texto para letras maiúsculas para nome próprio porém ela ao selecionar um número de colunas para acionar o macro ele tranca informando que a propriedade ou método não encontrado: getByIndex. Segue modelo de macro:

> " Sub ConverterLetrasIniciais
>     oDoc = thisComponent
>     oSelec = oDoc.getCurrentSelection()
>     ' celula ou intervalo selecionado ?
>     If oSelec.supportsService("com.sun.star.text.TextDocument")
> Then Exit Sub
>     ' cria e exibe uma caixa de diálogo
>     DialogLibraries.loadLibrary ( "Tabela" )
>     oDialogo = CreateUNODialog (DialogLibraries.Tabela.Dialog1)
>     iResp = oDialogo.execute()
>     ' usuário cancelou ? encerra
>     If iResp = 0 Then
>         Exit Sub
>     End If
>     ' verifica estado da caixa de seleção
>     bMinusc = False
>     If oDialogo.Model.CheckBox1.State = 1 Then
>         bMinusc = True
>     End If
>     ' verifica estado do botão de opção
>     bNome = False
>     If oDialogo.Model.OptionButton2.State = 1
> Then
>         bNome = True
>     End If
>     ' inicia a conversão
>     LetrasIniciaisMaiusculas (oSelec, bNome, bMinusc) End Sub" 

.

> "Sub LetrasIniciaisMaiusculas (oSel As
> Object, bNomeProprio As Boolean,
> bMinuscula As Boolean)
>     ' O texto da seleção
>     **oTexto = oSel.getByIndex(0)**
>     sConteudo = oTexto.getString()
>        ' percorre as células selecionadas
>        
>     If bMinuscula Then
>     ' converte as letras em minúsculas
>     sConteudo = LCase(sConteudo)
>     End If
>     If bNomeProprio Then
>     ' converte no estilo de nomes próprios
>     novoCont = LetrasNomeProprio(sConteudo)
>     Else
>     ' converte todas as iniciais para maiúsculas
>     novoCont = TodasIniciaisMaiusculas(sConteudo)
>     End If
>     ' atualiza o conteúdo do texto da tabela
>     oTexto.setString(novoCont) 
End Sub"

.

> "Function TodasIniciaisMaiusculas
> (sCadeia) As String
>     vPalavras = Split (sCadeia)
>     For i = 0 To UBound(vPalavras)
>         letra = UCase(Left$(vPalavras(i),1))
>         Mid(vPalavras(i), 1, 1, letra)
>     Next i
>     TodasIniciaisMaiusculas = Join(vPalavras()) End Function"
> 
> "_____________________________________________ Function LetrasNomeProprio (sCadeia)
> As String
>     vExcluir = Array("e","da","de","do","das","dos")
>     vPalavras = Split (sCadeia)
>     For i = 0 To UBound(vPalavras)
>         bExcluir = False
>         For j = 0 To UBound(vExcluir)
>             If LCase(vPalavras(i)) = vExcluir(j) Then
>                 vPalavras(i) = LCase(vPalavras(i))
>                 bExcluir = True
>                 Exit For
>             End If
>         Next j
>         If Not bExcluir Then
>             letra = UCase(Left$(vPalavras(i),1))
>             Mid(vPalavras(i), 1, 1, letra)
>         End If
>     Next i
>     LetrasNomeProprio = Join(vPalavras()) End Function""

Bom dia,

O macro acima não funciona em tabela do writer. Desta forma alguém teria uma solução para este problema??