Problem with writing long vowels: why do they appear as double letters?

When I try to write accents or vowel length signs on a vowel, which I recorded as macros, sometimes the letter appears as if I have written it two times.
I am using Windows 7, English (US International kb, Times new roman default) on my Fujitsu laptop. I find it easier to use macros for accents or vowel length symbols. I find it easier, because i only have to add the symbol to a letter (i.e. the possibilities are less) and I use it a lot (i.e. it is faster). I use it for transliteration of cuneform texts. Example: I write a + ctrl h (the macro, which i recorded for the sign macron) and expect a with macron. But I get a and another a with macron which partly eclipses the first one. Sometimes it takes a long time to start working correctly

Read these guidelines and ask a good question. In particular, what’s your LO version/operating system/input method?

In other words, assume we are using LO, but w/ a system different from yours. We actually have no idea what your environment looks like, so clarify what type of computer you are using, and exactly what steps you’re performing, what you’ve tried, and what result you got, and what result you expect. Please know that LO runs on many different operating systems. Each has somewhat different interface to key strokes.

What language are you using? Normally you would select a Unicode character that will include both the vowel and the accent. Give us an example.

Here is a macro that I have taken from Andrew Pitonyak’s Useful Macro Information For OpenOffice.org and modified to insert a macron. I have assigned Alt + H to it and it works for me without any problem.

'Author: Andrew Pitonyak
'email:  andrew@pitonyak.org 
  Sub InsertMacron
  Dim oDoc As Object
  Dim oText As Object
  Dim oVCurs As Object
  Dim oTCurs As Object
  oDoc = ThisComponent
  oText = oDoc.Text
  oVCurs = oDoc.CurrentController.getViewCursor()
  oTCurs = oText.createTextCursorByRange(oVCurs.getStart())
  '  Place the text to insert here
  oText.insertString(oTCurs, "̄", FALSE)
 End Sub

Anyway, using a dedicated keyboard layout is a much better method.