A API do Calc é muito diferente da API do Excel, portanto, embora o VBA tenha muita semelhança com o StarBasic, é necessário escrever um código separado para lidar com as diferentes chamadas da API. Para testar se o arquivo que está sendo trabalhado é o Calc, isso funciona no StarBasic:
If oDoc.supportsService("com.sun.star.sheet.SpreadsheetDocument") Then
REM Run code for Calc
Else
REM Run code for Excel
End If
O maior problema que vejo é que você está falando sobre como executar esse código de dentro da planilha. Se a planilha for salva como .xls ou .xlsx, o OpenOffice e o LibreOffice desativarão as macros quando o arquivo for aberto. Eu acredito que é vice-versa para o Excel se a planilha é salva como um arquivo .ods. Mesmo se você escrever todo o código corretamente, pelo menos um dos programas se recusará a executá-lo.
Embora seja possível que um programa externo teste se o Excel ou o Calc abriram uma planilha e executam o bloco de código aplicável, não vejo isso funcionando com macros incorporadas na planilha.