macro salvar como no libreoffice 4.0

Bom dia, tenho o seguinte codigo que está a rolar em excel, e gostaria de tambem o ter a rolar em libreoffice 4.0.

Sub SaveIt() 
Dim ck As Boolean 
' SaveIt Macro 
' Macro developed 11/6/2001 by Rick E 
If newName = "" Then 
    str1 = "Enter New File Name Here" 
Else 
    str1 = newName 
End If 
ck = Application.Dialogs(xlDialogSaveAs).Show(str1) 'tá dando erro aqui 

If ck = True Then 
     newName = ActiveWorkbook.Name 
End If 
End Sub

alguem me pode dar uma ajudinha, visto que sou novo nisto. cumps.

Cara vc tem 3 formas de fazer isso:

1 - A extensão Access2Base simplifica, e muito, a API UNO dentro LibreOffice Base. E ao que parece, pelos exemplos, a sintaxe fica bem próxima àquela utilizada no Ms Access.

A partir da versão 4.2 do LibreOffice, essa extensão foi incorporada. Para fazer uso de seus recursos basta colar a instrução abaixo no começo do módulo:

Sub DBOpen(Optional poEvent As Object)
   If GlobalScope.BasicLibraries.hasByName("Access2Base") then GlobalScope.BasicLibraries.LoadLibrary("Access2Base")
   Call OpenConnection(ThisDatabaseDocument)
End Sub

Os objetos, métodos, propriedades, etc. estão descritos (em inglês) na página de ajuda do projeto Access2Base.

( resta resposta foi me dada a uma pergunta que fiz sobre macros VBA por Grafeno )

Ou seja, use o mesmo código, contanto que ative essa extensão Access2Base (ideal é instalar a versão mais recente do LibreOffice )

Usando a extensão access2base o código para “salvar como” ficaria mais ou menos assim:

RunCommand(“SaveAs”)

2 - Converta o código VBA para OoBasic nestye site: http://www.business-spreadsheets.com/vba2oo.asp

3 - Use o “gravador manual ne macros” do LibreOffice e faça manualmente a ação de ir no menu "arquivo → Salvar como: " Para que o Libreoffice transforme essa ação em código de macro, para ativá-la vc tem que ir em:

Menu Ferramentas: → Opções: → Avançado → e ativar as caixas:

  • Ativar funcionalidades experimentais
  • Habiitar Gravador de macros.