You don't in particular need any addons to effectively create effectively longer macros, although many exist that make your life easier. What they all in the end amount to doing though (as the command window/chat box data 'packet' has a maximum size of 255 bytes) is one (or both!) of these two solutions below.
The advantage of doing it manually is that you can more easily test such a macro (there's no addon in between that garbles/processes the macro).
A1: Nested macros
You can work around a few extra characters via nesting macros. There's no reason why you can't do so directly.
E.g. assuming that you have two macros:
bound to buttons called button1 and button2. Then you could hide these buttons and call
which works by sending multiple chat packets. Depending on the content of the macro, more than one physical click may be required to fully complete it.
If you have no buttons available to use, you can use xml/lua scripting to create (hide-able) buttons to bind macros to. Note that this uses multiple macro slots (3+ per macro).
A2: Addon scripts
Macros can be used to call any addon function.
If you have an addon with a loaded
myAddon.lua file and this file contains the function
myLuaFn(x), this would call that function.
This can be used to get around the length limitation by replacing a long macro with lua code, then calling this code.
This method works by doing some of the work locally, and sending a processed chat command.