diff --git a/libreoffice-macros.md b/libreoffice-macros.md new file mode 100644 index 0000000..85c0ced --- /dev/null +++ b/libreoffice-macros.md @@ -0,0 +1,96 @@ +# LibreOffice Macros + +## Date Inserter with Header +This will automatically add a custom date format (DD/MM/1YYY HH:MM:sss) with the Header 1 style for quick and easy 'captain logs'. I use the H.E. ([Holocene calendar](https://en.wikipedia.org/wiki/Holocene_calendar)) time format that believes theat humanity started 12,000 years ago with the advent of agriculture. Also, because I am a major [Foundation](https://sandyuraz.com/articles/foundation-time/) by Isaac Asimov nerd. + + + +``` +REM ***** BASIC ***** + +sub Date +rem ---------------------------------------------------------------------- +rem define variables +dim document as object +dim dispatcher as object +rem ---------------------------------------------------------------------- +rem get access to the document +document = ThisComponent.CurrentController.Frame +dispatcher = createUnoService("com.sun.star.frame.DispatchHelper") + +rem ---------------------------------------------------------------------- +dispatcher.executeDispatch(document, ".uno:InsertDateField", "", 0, Array()) + +rem ---------------------------------------------------------------------- +rem dispatcher.executeDispatch(document, ".uno:FieldDialog", "", 0, Array()) + +rem ---------------------------------------------------------------------- +rem dispatcher.executeDispatch(document, ".uno:FieldDialog", "", 0, Array()) + +rem ---------------------------------------------------------------------- +dim args4(1) as new com.sun.star.beans.PropertyValue +args4(0).Name = "Template" +args4(0).Value = "Heading 1" +args4(1).Name = "Family" +args4(1).Value = 2 + +dispatcher.executeDispatch(document, ".uno:StyleApply", "", 0, args4()) + +rem ---------------------------------------------------------------------- +dispatcher.executeDispatch(document, ".uno:InsertPara", "", 0, Array()) + + +end sub + +sub Main +rem ---------------------------------------------------------------------- +rem define variables +dim document as object +dim dispatcher as object +rem ---------------------------------------------------------------------- +rem get access to the document +document = ThisComponent.CurrentController.Frame +dispatcher = createUnoService("com.sun.star.frame.DispatchHelper") + +rem ---------------------------------------------------------------------- +dim args1(1) as new com.sun.star.beans.PropertyValue +args1(0).Name = "Template" +args1(0).Value = "Heading 1" +args1(1).Name = "Family" +args1(1).Value = 2 + +dispatcher.executeDispatch(document, ".uno:StyleApply", "", 0, args1()) + +rem ---------------------------------------------------------------------- +dim args2(5) as new com.sun.star.beans.PropertyValue +args2(0).Name = "Type" +args2(0).Value = 0 +args2(1).Name = "SubType" +args2(1).Value = 0 +args2(2).Name = "Name" +args2(2).Value = "" +args2(3).Name = "Content" +args2(3).Value = "0" +args2(4).Name = "Format" +args2(4).Value = 10051 +args2(5).Name = "Separator" +args2(5).Value = " " + +dim sText as string +sText = Format( Now, "DD.MM.1YYYY HH\:mm\:ss") + +dim textFormatat(0) as new com.sun.star.beans.PropertyValue +textFormatat(0).Name = "Text" +textFormatat(0).Value = sText+CHR$(9) +dispatcher.executeDispatch(document, ".uno:InsertText", "", 0, textFormatat()) + + + + + +rem ---------------------------------------------------------------------- +dispatcher.executeDispatch(document, ".uno:InsertPara", "", 0, Array()) + + +end sub +```