I thought about using spaces and the following code works for that but there are instances where even the lyric lines have many spaces at the start of the line like in the chorus the line "Yeah I love....". If you were to use tab and no more than 3 spaces to align lyrics with chords and use tabs for spacing the Title then the following works. Also keep in mind that the code looks for 4 spaces so when you have sections like "Solo" or "Bridge" where you only list the chords and don't need to align with lyrics those types of progressions need to have at least one place where you use 4 spaces in a row.
This is a temporary fix until you figure out the ratio thing, which is way above me. Looking forward to seeing the solution.
Also I'm very interested in the transposing code you spoke of.
Code:
Sub ChordFont()
Dim oRng As range
Set oRng = ActiveDocument.range
With oRng.Find
Do While .Execute(FindText:=" ")
oRng.Start = oRng.Sentences(1).Start
oRng.End = oRng.Paragraphs(1).range.End
oRng.Font.TextColor.RGB = RGB(0, 0, 255)
oRng.Collapse 0
Loop
End With
lbl_Exit:
Set oRng = Nothing
Call HighlightChorus
Exit Sub
End Sub
Sub HighlightChorus()
Dim oRng As range
Set oRng = ActiveDocument.range
With oRng.Find
Do While .Execute(FindText:="[Chorus]")
oRng.Start = oRng.Sentences(1).Start
oRng.End = oRng.Paragraphs(1).range.End
oRng.HighlightColorIndex = wdYellow
oRng.Collapse 0
Loop
End With
lbl_Exit:
Set oRng = Nothing
Exit Sub
End Sub