Isn't it time to bring the macro facility up to snuff?

LO’s macro facility is ridiculously complicated. First, through multiple versions of Writer, you have made it necessary, after installation, to activate macro recording. Why has it stayed “experimental” for so long? The ability to record and assign macros is one of the most fundamental tools for customization.

If I want a macro to, say, delete to the next period, I first have to record it. Once it is recorded, I have to go through 3 or 4 steps to go to my custom library and add its name. Then I have to go to the Tools, Customize, menu, go to LO Macros, go through 3 or 4 steps to find the macro in my custom library, go to the upper part of the dialog and slog through it to identify the key combination I want (in this case ctrl-shift-period), hit Modify, and close. If I want a macro to delete to the next comma, I am out of luck, since the key combination ctrl-shift-comma is not offered. And if the macro doesn’t work, it is a real pain in the neck to get rid of its key assignment.

I suggest that you, first, take a look at the simplicity of recording a macro and assigning it to a key combination in Word or Word Perfect. Second, there is no reason in the world why you can’t make all key combinations reassignable. You have come a long way from early versions of Writer, which offered a very limited range; it’s time to finish the job.

I am using the lateest version of Writer under AMD 64-bit Linux Mint 17 on a PC

No – its time to drop this dump Basic-Stuff and first of all the thing called macro-recording

Its a shame for this great Officesuite to have nowadays this prehistoric Programming-lingoBasic as prioritisized Programming-Interface.

@nsivin these five clicks to bind a macro are to much for you ??? The choice is yours - buy Word if you need it.

Thanks for your question. I will attempt to address your queries.

through multiple versions of Writer, you have made it necessary, after installation, to activate macro recording. Why has it stayed “experimental” for so long? The ability to record and assign macros is one of the most fundamental tools for customization.

It is true that the programming language + Universal Network Objects (UNO) component model + Application Programming Interface (API) combination that is generally referred to as “the macro facility” has been labelled / considered experimental for quite some time. This is likely to continue to be the case as there are many complex aspects to this facility and any view that this facility can easily be improved (other than in very basic terms) is naïve. These are the primary reasons (as I see them) why this facility is languishing:

  • LO is supported largely by a core group of paid developers and much larger group of volunteers. The resources necessary to fully implement (reinvent) a language + UNO + API stack is huge. Many years worth of worth. The Document Foundation (TDF) does not have these kind of resources at its disposal.
  • If this facility is critical to organisation adoption (and here I have my doubts, refer following point about interoperability) then the multi-multi-billion dollar industry of business can afford to donate the substantial funds to get this addressed.
  • “Customization” (implementation detail) sits directly in opposition to interoperability / portability. Many large organisations impose a policy preventing customization as direct API access and use of related tools always reduces the ability to upgrade and increases the work / cost required to do so. Michael Meeks (LO developer) in early 2014 pointed out how macros expose implementation details.
  • A macro accesses implementation rather than specification detail i.e., detail never defined in file format specifications, such as ISO/IEC 26300 (ODF) or ISO/IEC 29500 (OOXML). Refer this forum thread and this User mailing list thread from July 2014.
  • Because LO can write (translate/filter) several file formats the need to handle macros is further complicated. Any mechanism for handling macros, in cases where they are stored in the document library container (instead of the LO or My Macros library containers), needs to be able to either translate the language of the macro, or inform the user the macro is not compatible with the chosen file format. An effort to convert VBA to LO Basic (on file import) was tried and shelved (refer prior User mailing list thread).
  • LO is also cross-platform, thus the programming language needs to likewise be cross-platform capable / distributable. LO Basic (which is apparently considered rather poor) probably needs to be replaced with another language such as Gambas, which seems held in higher regard, although it is only available natively under GNU/Linux (runs under Cygwin on Windows, and porting to MacOS is being discussed). Python may be another option, although (as with Gambas) finding a cross-platform distributable version may be difficult.

If I want a macro to, say, delete to the next period, I first have to record it. Once it is recorded, I have to go through 3 or 4 steps to go to my custom library and add its name. Then I have to go to the Tools, Customize, menu, go to LO Macros, go through 3 or 4 steps to find the macro in my custom library, go to the upper part of the dialog and slog through it to identify the key combination I want (in this case ctrl-shift-period), hit Modify, and close.

The multiple levels of storage / access is unlikely to ever be addressed as this is simply a factor of complex storage requirements i.e., library container > library > module > function. I will admit that the built-in UI for the macro facility is rather rough. I do not see this being addressed, other than perhaps to fix in piecemeal manner some of the more problematic areas. Ultimately, I feel it may be better to store macros separately from documents and use some sort pack-n-go facility for bundling these implementational aspects with a particular document. If this ever happens, it will likely take some considerable time / effort.

I suggest that you, first, take a look at the simplicity of recording a macro and assigning it to a key combination in Word or Word Perfect. Second, there is no reason in the world why you can’t make all key combinations reassignable. You have come a long way from early versions of Writer, which offered a very limited range; it’s time to finish the job.

Fair comment. I am not familiar with the facilities in either Word or WordPerfect, but presumably the reference (for Word) is to the steps indicated here. Since I rarely use macros, the steps in LO do not bother me, but obviously the case will be different for those making regular / extensive use of this facility. I agree with the key assignation aspect - the UI for this could be improved. Obviously the easier it can be made for users, the better.

I don’t understand very well why a piece of program is called macro. For me approach in the old 123, what IBM tried to cut with Lotus Smartsuite version, and was forced to recover. Functions-and-Macros-Guide 1991. Sometimes it’s incompressible how things evolve. Maybe there is not too much interest in to be user friendly.

@mariosv, the term macro, at least in terms of office software, has become synonymous with program, due to the widespread use of MSO.

Yes I know @Owen1, that’s what I dislike. Even what could be true macros are a program but I think at app level instructions.

@nsivin - It seems you are very familiar with the macros in LibO. May I suggest you join the development team and work on this topic?

I’d be glad to help, but I have never learned to write macros. I only record them—quite a few, but without any VBA programming. If I can help, let me know.

I wouldn’t call myself a seasoned programmer in VBA, but have done a fair bit creating solutions for work (nursing) in Excel VBA. I’ve created an Audits Manager for post-discharge interview data collection, and an Assets Manager, since my portfolio includes managing equipment in operating theatres and recovery. I’ve also had a play with Gambas - trying to port my app to Linux/BASIC/SQLite3 and successfully ported an app to Python. Would love to be involved in LO ‘VBA’ in some way. Sign up where?

@oweng
Thanks for your detailed reply. It summarises other information I found at various places on the web.

There is nothing to be done except to say that from my experience with MS Office (2003), the lack of a working and documented macro programming environment for LO must undoubtedly kill it stone dead for a surprisingly large proportion of potential end users.

VBA is very widely used and supported: you can buy books in the local supermarket; guidance, reliable code snippets and more are available from MS, from forums and websites supported by their MVPs, and from numerous customising service providers who publish code to show how competent they are. In short, VBA users have a large and carefully-nurtured amateur and professional network, partly because that makes it impossible for them to migrate from MS Office, but also because that’s the way office software is frequently used.

Writing short-ish macros is part of peoples’ daily activities in offfices and laboratories. Usually there is someone who can do it reasonably well and can help colleagues. Wordprocessing requirements are sometimes quite simple, like finding and changing items, setting styles and so on, but a macro recorder is not enough for that. Customisation under contract for big enterprises, such as the European state institutions that have gone open source, is a totally different matter.

Perhaps too much attention has been focussed in various discussions on the choice of language and IDE, and on VBA features like autocompletion. For what it’s worth, I mention Arduino, which uses a well-documented system of “hooking” in to libraries in a way that “protects” beginners from the more difficult aspects of C++ (the natural high-level language of the microprocessor family that’s used). Children don’t find it too difficult to get started, and there are books for those who want to progress to the “real thing”. Arduino is derived from and linked to the development system Processing, which happens to use Java; the language doesn’t matter if the documentation and examples are adequate. Arduino’s native IDE is as primitive as an IDE can get, but that just doesn’t seem to matter.

On a personal note, I retired a few years ago and am now helping an author who doesn’t understand computters prepare some books for publication. I’m not going to do that by hand and will give up the struggle and buy MS Office.