I don't believe there is any way to do this without a Mod (API) script, and it would require a very specific custom one to do just this for that purpose. Adding items that grant a spellcasting ability to a character does not actually add the spell to the character sheet (as far as I can tell from my limited testing right now). So if you add the Mac-Fuirmidh Cittern to CharacterA, it doesn't automatically add all of the related spells to their 'Spells' tab. You can still manually add the spells to CharacterA (either by creating them yourself, or by dragging them from the compendium if you have access). The issue with creating a macro at this point is spells are one of several 'repeating' sections on the character sheet (including items, attacks, traits, etc.). So you can't reference a spell by its name; instead you reference it by its number on that specific character sheet. If it is the first spell in the 1st level spells, then your macro would be %{selected|repeating_spell-1_$0_spell}, which would be the same as simply clicking on the spell from the character sheet. The second spell in the 5th level spell list for that character would be %{selected|repeating_spell-5_$1_spell}. Each character will have a unique repeating list based on which spells they have added to their character sheet, and which order those spells are listed. You might be interested in using a chat menu instead, like this one . Lastly, just to clarify some terms: A macro is just a piece of text that has been added as a button of some kind, either on the Collection tab, or as a character sheet Ability. You could type the same thing in chat and it would behave the same way. Macros are available for all players to use, but are 'read-only' and cannot 'write' to character sheets unless they run a script. A script is a piece of javascript code that runs through the 'Mod (API) Sandbox', and requires the game creator to have a paid Roll20 Pro Account to use. Scripts can make changes to character sheets or tokens, or automate other tasks that basic macros cannot. So a macro could be just some text that you want to output, or it could include attribute or ability references from a character sheet, or it could be a script command.