joelhoro
joelhoro

Reputation: 920

Updating the text displaid in MACROBUTTON in MS Word

I am using macrobutton in VBA to have a field whose value is calculated by accessing some other system, and at the same time, I want to be able to double-click on that field to specify some settings used to retrieve data from that other system.

The whole macro stuff works fine but I can not figure out how to change the label on the macrobutton.

Typically the macrobutton looks like this { MACROBUTTON macro_name label {some_arg}{some_arg2} }

I tried accessing selection.fields(1).code.text and even doing regexp to replace 'label' by something else but that just does not work, i.e. either I lose the args or I screw up the label.

Any advice for this issue, or perhaps a suggestion of some other type of field I could use to achieve this? I wouldn't mind using DOCVARIABLE but these can not respond to clicks and carry arguments?

Upvotes: 1

Views: 1489

Answers (1)

Dan Metheus
Dan Metheus

Reputation: 1438

You should be able to do something like this:

Sub Testit1()
    Dim strText As String
    Dim strLabel As String
    Dim strNewLabel As String

    strLabel = "Chew"
    strNewLabel = "Devour"

    ' Replace the field code values in the first field to change the label
    strText = ActiveDocument.Fields(1).Code.Text
    ActiveDocument.Fields(1).Code.Text = Replace(strText, strLabel, strNewLabel)
End Sub

This will basically do a search and replace inside the field code for the macrobutton field you want to change. ActiveDocument.Fields(1).Code.Text is the part I think you are looking for.

Upvotes: 2

Related Questions