Umfang der VBA Unterstützung

Unterstützt LO nur Macros oder kann ich auch Funktionen damit erstellen?

Die VBA-Unterstützung ist sehr begrenzt. Für eine umfassende VBA-Unterstützung müsste man einen Clone von MS Office programmieren und das auch noch plattformunabhängig. Um VBA zu verwenden musst Du MS Office installieren.
Eine Function ist nichts weiter als eine routine (Sub), die einen Wert zurückgibt.

Du kannst auch Funktionen erstellen, hier z.B. eine GreatestDivisor

.
Nebenbei, muss man das nicht unbedingt in Basic machen, sondern es gibt auch Python, ein älteres JavaScript und wenn das nicht reicht kann man Erweiterungen auch in Java, C++ etc schreiben. Alternativ gibt es auch noch die “Fernsteuerung” über einen Port.
.
Mit dem Titel Deiner Frage (VBA) hat das alles wenig zu tun. VisualBasic for Applications ist erstmal ein Produkt von Microsoft, auch wenn die meisten Fragenden das hier als Synonym fur BASIC verwenden. Das Basic ist recht ähnlich, das Problem liegt im völlig anderen Zugang zum Dokument: Eine Funktion eie GreatestDivisor würde kaum Unterschiede zu VBA zeigen, sobald Du aber auf das Dokument zugreifen willst, heisst die Schnittstelle bei Open- und LibreOffice UNO und unterscheidet sich erheblich von VBA.
.
“Einige” Funktionen werden nachgebildet und stehen mit der Option vbasupport auch in LO zur Verfügung. “Einstieg” in die Hilfe-Seiten:
https://help.libreoffice.org/latest/sid/text/sbasic/shared/03103350.html

Falls es mehr um Datenbanken geht, gibt es auch access2base, was ebenfalls auf bessere Kompatibilität zielt.