Numeração automática de Ofício no writer

Em meu trabalho redijo vários ofícios seguido do número de ordem e o ano: 001/2020.
Eu gostaria se possível de que a numeração ficasse automática a cada novo documento criado numa pasta específica.
Exemplo: fiz o ofício n. 001/2020; a numeração do seguinte documento será 002/2020 e assim por diante até findar o ano. No ano seguinte começa tudo de novo.
O ideal é que esse arquivo seja salvo com esse nome da numeração.
É possível?

Boa tarde
De uma olhada nesta solução.
https://wiki.documentfoundation.org/Extensions/Projects/Edidoc/pt-br
Não sei se esta sendo atualizado, mas tem o contato dos desenvolvedores.

Muito obrigada pela resposta, estudarei o assunto.

@SandradeAlencar e @schiavinatto, segue o código ajustado enviado pelo @schiavinatto

Macro para Uso no Writer

    Sub SalvarProximoArquivo
'  Pasta = DIRETORIO DE GRAVAÇÂO
Pasta = "C:\Users\GILBERTO\Dropbox\Public\ask.libreoffice\Valentim\"
Ano = 2020
Dim S As String, I As Long
If Right(Pasta, 1) <> "\" Then Pasta = Pasta & "\"
Texto = Texto & "*.odt" 
'a extensão pode também ser colocada como parametro:
'Texto = Texto & "*." & Extensao
S = Dir(Pasta & Texto) 'S contém o nome do 1º ficheiro encontrado
Do Until S = ""
    I = I + 1
    S = Dir() 'S contém o nome do proximo ficheiro da sequência
Loop
    ContarFicheiros = I
    Arq = I

    If Arq < 10 Then : Arq = "00" & Arq ': End If
    ElseIf Arq < 100 Then : Arq = "0" & Arq ': End If 
    ElseIf Arq < 1000 Then : Arq = Arq : End If         
    
    
    	Dim document as object
		Dim dispatcher as object
		document = ThisComponent.CurrentController.Frame
		dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")

		pasta = ConvertToURL(Pasta)

dim args1(1) as new com.sun.star.beans.PropertyValue
args1(0).Name = "URL"
PastaArquivo = Pasta & Arq &"_" & Ano & ".odt"
args1(0).Value = PastaArquivo
args1(1).Name = "FilterName"
args1(1).Value = "writer8"
dispatcher.executeDispatch(document, ".uno:SaveAs", "", 0, args1())

end Sub

@schiavinatto, neste comando Pasta = "C:\Users\GILBERTO\Dropbox\Public\ask.libreoffice\Valentim\",você precisa converter o mesmo em URL, utilizando o ConvertToURL, pois os espaços em branco, a programação não entende e transforma em %. Então eu acrescentei Pasta = ConvertToURL(Pasta)

Eu @schiavinatto
Alterei (na 7a. linha) a extensão para contar somente odt, não contar arquivo(s) abertos se existir.

Perfeito @Conras, obrigado.

Ola @SandradeAlencar, caso queira dar um upgrade na macro acima com a solução do @Conras, acrescente no final antes de End Sub.

Veja a Mensagem, o que faz.

MsgBox "O Arquivo salvo será fechado." & Chr(13) & _
 " E será aberto outro em branco.", 0, "               A T E N Ç Ã O"

CreateUnoService("com.sun.star.frame.DispatchHelper") _
.executeDispatch(ThisComponent.CurrentController.Frame, ".uno:CloseWin", "", 0, args1())

oNuevoDocumento = StarDesktop.loadComponentFromURL( "private:factory/swriter", "_default", 0, Array() )

Eu não entendo nada de programação, só sei que existe he he he… Mas vou estudar um pouco e me inteirar do assunto. Muito obrigada por disponibilizar tais dados.

Ola @SandradeAlencar, Macro incompleta, quando alguém corrigir, grava-la em Minhas macros e liga-la a um Menu…

A Macro conta os Arquivos da Pasta, acrescenta 1 + a terminação _2020.odt e salva.

Sub SalvarProximoArquivo
'  Pasta = DIRETORIO DE GRAVAÇÂO
Pasta = "C:\Users\GILBERTO\Dropbox\Public\ask.libreoffice\Valentim\"
Ano = 2020
Dim S As String, I As Long
If Right(Pasta, 1) <> "\" Then Pasta = Pasta & "\"
Texto = Texto & "*.*" 
'a extensão pode também ser colocada como parametro:
'Texto = Texto & "*." & Extensao
S = Dir(Pasta & Texto) 'S contém o nome do 1º ficheiro encontrado
Do Until S = ""
	I = I + 1
	S = Dir() 'S contém o nome do proximo ficheiro da sequência
Loop
	ContarFicheiros = I
	Arq = I+1
	
	If Arq < 10 Then : Arq = "00" & Arq ': End If
	ElseIf Arq < 100 Then : Arq = "0" & Arq ': End If 
	ElseIf Arq < 1000 Then : Arq = Arq : End If 		
	
dim args1(1) as new com.sun.star.beans.PropertyValue
args1(0).Name = "URL"
PastaArquivo = Pasta & Arq &"_2020.odt"
args1(0).Value = PastaArquivo
args1(1).Name = "FilterName"
args1(1).Value = "writer8"
CreateUnoService("com.sun.star.frame.DispatchHelper") _
.executeDispatch(ThisComponent.CurrentController.Frame, ".uno:SaveAs", "", 0, args1())
end Sub

Até PastaArquivo esta gerando certo a gravação final que da erro.
Esta gerando este erro:

Descrição da imagem

Necessita alguém com mais experiência em programação, corrigir ( Alô: @Grafeno, @ohallot, @Conras ), faça correção em Adicionar Resposta, para pontuar.

Vou acompanhar esse assunto. Obrigada.

@schiavinatto não cheguei a programar em Writer ainda. Não sei como funciona. Vou tentar algo aqui e retorno. Já possuo algo desta necessidade, mas em Calc.

Fiquei interessada nessa sua solução em Calc. Como devo proceder para obter sua ajuda?
Eu prefiro trabalhar com planilhas, inclusive eu faço esses documentos também no Calc, porque consigo mudar vários campos de forma automática como data, data por extenso, número do documento. Obrigada.

@SandradeAlencar, caso queira enviar suas necessidades para o @schiavinatto ou para mim, em nossos perfis possui nossos e-mails de contato.

Ola @Conras, acerte seu perfil, não esta aparecendo o email de contato, preencha no campo email. Se colocou informação no Quadro a direta, não é visível, (deve ser bug ) já informei o administrador. Abraço.

Ola @SandradeAlencar, a solução em Calc e mais versátil, se os Ofícios for um texto padrão com poucas alterações poderá ser um arquivo com 3 planilhas: Formulário e preenchido e salvo em Banco de dados e uma terceira para Consulta.

Não haveria necessidade de Diretório para arquivo dos Ofícios.

Na verdade os ofícios que utilizo são 16, de acordo com aquelas 16 planilhas (as quais postei dúvidas aqui). Nestes 16 ofícios podem ocorrer variações com as seguintes hipóteses: 1) inclusão de alunos; 2) exclusão de aluno; 3) aumento de cotas; 4) diminuição de cotas 5) nenhuma alteração. Então, nesses ofícios eu copio os dados dos bolsistas das planilhas de forma manual e os colo no ofício.

Ola @SandradeAlencar, me envie o arquivo completo, veja contato aqui: https://wiki.documentfoundation.org/User:Schiavinatto, pode confiar sigilo de dados garantido.

Enviei e-mail para gilbertoschiavinatto@yahoo.com.br. Obrigada.

Veja o Edidoc
https://wiki.documentfoundation.org/Extensions/Projects/Edidoc/pt-br

Obrigada pessoal.