Ordem Natural Por Macro CALC

Olá gurus.
Eu utilizo em uma planilha o recurso de ORDEM NATURAL disponibilizado no CALC.
Esse tipo de ordenação cria a seguinte Ordem, muito útil quando se trabalha com códigos (de mercadoria, de itens, contábeis, etc)

   121
    121.1
    121.1.1
    121.1.2
    121A.1
    121A.2
    122
1000.1.A
....

Porém, quando se quer usar esse tipo de ordem por meio de macros, o melhor que consegui criar foi esse código:

Sub OrdemNatural

Doc		= ThisComponent
' Cria Chave
'Plan	= Doc.CurrentController.ActiveSheet()
Plan	= Doc.Sheets.GetbyName("Crimes")
Cods	= Plan.GetCellRangeByName("A2:A816").getDataArray()
Bloco	= Plan.GetCellRangeByName("A1:D816")
' Insere a Chave na coluna adicional
For x = 0 to uBound(Cods)
    Plan.GetCellRangeByName("D"&4+x).value = CInt(Cods(x)(0))
Next

'Campos(x) = Serão usadas X colunas como Chaves
'SortDesc(x) = Serão estabelecidos 2 Parâmetros de Ordenação
Dim Campos(2) As New com.sun.star.util.SortField
Dim SortDesc(2) As New com.sun.star.beans.PropertyValue

' Primeira Chave (A chave criada = COLUNA D) - Ascendente 
 Campos(0).Field = 3
 Campos(0).SortAscending = True
' Segunda Chave - Código Humano (Coluna A)- Ascendente
 Campos(1).Field = 0
 Campos(1).SortAscending = True

' Parâmetros do Descritor
' Campos a considerar
 SortDesc(0).Name = "SortFields"
 SortDesc(0).Value = Campos()
' Contem cabeçalho
 SortDesc(1).Name = "ContainsHeader"
 SortDesc(1).Value = True

' Realizar Ordenação
 Bloco.Sort(SortDesc())
 
' Limpa Coluna da chave
Plan.GetCellRangeByName("D4:D" & x+3 ).ClearContents(1+4)
 
end sub

Ocorre que, assim, é necessário criar uma coluna adicional para que o Ordenador faça a filtragem numérica primeiro. Mas nesse caso, dependendo do número de dados que se está ordenando, ou do tamanho da planilha como um todo, o processo pode se tornar BEM demorado.
Tentei, intuitivamente, um SortDesc(2).Name = "NaturalSort" mas não funcionou.
Sei que usando as rotinas UNO dá pra fazer, e de fato fiz, mas daí o código fica um pouco poluído, e queria evitá-lo.
Alguém tem uma solução, ou sabe se o recurso SORT() possui algum parâmetro para isso?

Ola @Jedison, tem algum arquivo para amostra dos dados.