How to Create and Transpose Chord Charts With MS Word

by Barry K in Living > Music

71 Views, 0 Favorites, 0 Comments

How to Create and Transpose Chord Charts With MS Word

MSWordChordChartsInstructableThumbnail.png
MSWordChordChartsInstructableThumbnail_2.png

In this Instructable I describe my workflow for creating chord charts (lyrics with chords above) using MS Word. I describe how to create custom styles (e.g., for chords, lyrics). I also include a macro that allows you to transpose chords from within MS Word.

The reason I use MS Word for creating chord charts is its flexibility in formatting. I am a keyboard player that also likes to add notation to my charts. I use Musescore for notation and take screenshots that I then paste into the Word document.

Sometimes after creating a chord chart, I am asked to transpose the chart. I used to convert my chart to text, use an online program to transpose, paste back into Word and reformat. Sometimes I would do search and replace but that can be tricky. To keep my workflow within Word as much as possible, I created a macro (using AI (ChatGPT)) to transpose the chords from within MS Word.

Supplies

Microsoft Word with Visual Basic for Applications (VBA)

Create Chord Chart Template in MS Word - Part 1

Styles.png
StylePaneIcon.png
ChordStyle.png
CustomTitleStyle.png
CustomTitleStyleInStylePane.png
RobotoMono.png

This section describes how to create a Chord Chart template in MS Word. This template will provide a standard format for all of your charts, and the macro to transpose chords.

  1. Open MS Word and create a new document.
  2. Create custom styles for, e.g., Title, Lyrics, Section, Chords. You can create custom styles manually in the Styles Pane, or create a style from an example in the document:
  3. Create a line of text and format it as a Title, e.g., select font, size, font face.
  4. Select the line of text.
  5. Open the Styles Pane.
  6. Select New Style...
  7. Name the style, e.g., "1) Title". Note that put a number before the style so that it gets sorted at the top of the list of styles.
  8. Repeat for all of the styles that you want in your chord chart.

For styles in the body of the chord chart, it is usually helpful to use a mono-spaced font. I use the one that is used in https://www.ultimate-guitar.com/. To get this font, open any chord chart from the site, copy it and paste it into the MS Word document. Move cursor to one of the lines you pasted. You will now see a font called Roboto Mono. From this example, you can modify the font, size, etc., and create a new style.

Save this file as a Word Macro-Enabled Template, .dotm, if you want the ability to transpose the chord chart from within MS Word (details below), otherwise as a Word Template, .dotx.

Once you create a .dotm or dotx template file you can use the file to create new documents based on this template.

(Optional) Create Chord Chart Template in MS Word - Part 2

SongTitlePrompt.png
KeyPrompt.png
BandPrompt.png
ArrangerPrompt.png
SongTitleFilledIn.png

This is an optional step to have MS Word prompt the user to enter a Title, Key, etc.

Type <Ctrl>-F9 on PC, or <Cmd>-F9 on Mac to insert a field. This will create a Field Code that looks like this {}.

Inside the braces, type the following for each field that you want the user to fill in, .e.g.,

{ FILLIN "Enter the song title:" } ({FILLIN "Enter the song key:"}) by {FILLIN "Enter the band name:"} Arr: {FILLIN "Enter the arranger name:"}

Select this line and Right-click on the selection. Select "Toggle Field Codes" and the line should look something like: () by Arr:

Save and close the template file. Create a new document from template; Double-click the .dotm file directly in the Mac Finder or Windows Explorer. You will then be greeted by prompts to enter the field names. See attached.

Transpose Chords Macro

VBEditor.png

MS Word provides the ability to modify document contents programmatically via Visual Basic for Applications (VBA). Since we have a custom chord style, we can write a VBA Macro to do this. I do not know how to program VBA but ChatGPT does. With my prompting and debug iterations with ChatGPT we now have the ability to transpose chords from within MS Word. The code is attached.

NOTE: I was not able to upload a .bas file so I made it a .txt file. Rename this file with a .bas extension.

Import this Macro file into the template file.

  1. Open the .dotm file from File->Open, if not already opened. (Do not open by double-clicking, otherwise it will create a new document.)
  2. Open Visual Basic Editor in MS Word.
  3. In the Project panel, right-click Project and select Insert->Module.
  4. On the inserted Module, right-click and select Import File...
  5. Import the .bas file.

NOTE This macro is intended to run on a chord chart that is formatted with a Custom Style called "4) Chords". If the chord style name changes in the Word document, the style name must be changed in the .bas file.

Save the template file and close it.

Workflow

EnableMacros.png
RunMacro(TransposeInterval).png
RunMacro(SharpsFlats).png
RunTransposeChordsMacro.png
MacrosMenu.png
Wonderful(OriginalKey).png
Wonderful(TransposedKey).png

Here is my workflow when creating a chord chart.

Double-click the .dotm file from the Mac Finder or Windows Explorer. This will create an untitled chord chart document. You will be asked whether to enable macros. If you want to transpose the chords you need to enable macros. Fill in the fields if prompted per Step 2.

I usually base my charts from https://www.ultimate-guitar.com/. Copy the chart from the web site and paste into the new document. I usually select the pasted chart and select Clear Formatting from the Styles Pane. I then assign custom styles to the Section text, Chords, Lyrics, etc.

I then listen to the original recording on which the chord chart is based and modify the chart, as needed, in MS Word. Sometimes I use Musescore to create notation hints for myself and paste in screenshots of the music notation.

So now, let's say you are told that the tune will be sung in a different key than what you original created. You could repeat the above process and transpose the chart from within ultimate-guitar, or other ChordPro applications or web sites, or, you can now transpose from within MS Word, keeping your original formatting (you will still need to manually update the Musescore screenshots though).

Deselect any text in the document and run the TransposeChords macro. Fill in the prompts for the Transpose Interval, and the Sharp or Flat Output.

See attached screenshots of the original chart vs. the transposed chart.

Troubleshooting

  1. Macro fails to transpose some or all chords - Make sure nothing is selected before running the macro.
  2. Nothing is transposed - Make sure the chord style name matches the chord style name in the code.

Conclusions

Using AI to create the macro was very helpful but took several iterations to fix its defects. Even still, it saved me time learning VBA for this one-off project. Thanks, ChatGPT!

Unfortunately, Instructables does not allow me to upload .dotm, .dotx, or .docx files, so hopefully this Instructable will help you create your own. The VBA macro file is attached in in Step 3; change the extension from .txt to .bas .

If you find this Instructable useful, please let me know.

Enjoy!

Barry