LibreOffice Basic Programming -- Resources for Learning

H Everyone,

Does anyone know of any books, pdf files, or courses where one can learn LibreOffice Basic and the ins and outs of macros in LibreOffice?

All the best,


Can you tell us more about your experience level? Do you already do Excel VBA programming? Other programming? Are you comfortable with OOP models?

Hi Everyone,

Thank you so much for your helpful suggestions on where to find more information on LibreOffice Basic Programming and Macros in LibreOffice.

I have only just perused Andrew Pitonyak’s book on OpenOffice Macros Explained and I am in awe of the depth and complexity involved here. Does anyone have a suggestion for something more geared toward beginners?

Also, if it is really that involved – would it be worth my while to just put my energy into learning Java and Python instead and programming extensions, etc. Rather than “macros”?

Again, to everyone who provided an answer, Thank you.

All the best,


Hello @Essay,
Macros are code in Basic, Java, Python and more. You will get more from Python but if you want to deal with basic, here is a guide which may be helpful to you > StarOfficeTM 6.0 Basic Programmer’s Guide

Thank you Ratslinger! Much appreciated!

BTW, a few years ago I audited a Python Course at MIT which was excellent. On-Line & no cost for auditing. Still went through the process including tests & grading.

Hi Ratslinger,

Very cool. I am surprised they allowed you to take the tests and provided grading for your projects. Very good deal. Was that through MIT Open Courseware?

All the best,


Yes. It was Introduction to Computer Science and Programming in Python

Macro Guides | LibreOffice Documentation - LibreOffice User Guides specifically Andrew Pitonyak’s book. Also Information and resources for LibreOffice macros - The Document Foundation Wiki .

1 Like

Hi erAck,

Thanks for the great suggestions. This is very helpful.

All the best,


As most didn’t changed:

but actually my first steps were guided by this german FAQ

Documentation is incomprehensible without MRI

[Tutorial] Introduction into object inspection with MRI

Thank you Wanderer. Unfortunately, I do not have any real abilities with reading German – so, this will not help me personally. All the best, Shawn.

Chrome has a nice ability to translate websites. Wouldn’t read books, but for FAQ etc works good.

At this link you can find a lot documents, tutorials and videos too. Almost everything in just one place.

Thank you FelipeAle,

This will surely help any Spanish speakers who want to learn macros and LibreOffice Basic Programming.

All the best,


1 Like

The entire LibreOffice API is not also written in python.
Checkout ooouno · PyPI

I am the author of this library. I just got released yesterday.


Hi vib,

Thank you for your help with this. Very much appreciated.

Given the ability to write the macros in Python, would you recommend learning Python directly and then simply use the library of LibreOffice macros for Python or would you stick with LibreOffice Basic Programming – if you were a beginner just starting out?

All the best,


Simply use the language you already know. If it is some flavour of Basic, then let it be Basic for now. ooouno is a high level addition if you use to generate Python code with some professional code editor in a professional integrated development environment (IDE).
The best way to learn Python is a simple text editor with syntax highlighting. The simpler the better but syntax highlighting is necessary.
Some level of basic familiarity with Basic, Python, Java or C++ is the precondition to start learning about UNO. The steep learning curve is not imposed by your chosen language. It is hardly flattened by some helping addition (before you know exactly what it does). The steep learning curve is imposed by the thing you talk to which is the API of this office suite.

1 Like

Hi Villeroy,

Thanks for the explanation of the difference between the actual programming language and the Application Programming Interface. I was certainly a bit confused on that point.

So, any language, provided the API supports that language will work to program LibreOffice, correct?

Thanks again.