How do I change the text of a label control in custom Excel ribbon created with VSTO?


I've created a custom tab in Excel ribbon with VSTO, and I'd like to change the text of a label placed in this tab from my add-in code (when user presses the button BtnCHangeWbDest, an input text box may appear and save the value in LblWbDestination).

Would you know how to do that?

<?xml version="1.0" encoding="utf-8" ?>
<customUI xmlns="" loadImage="GetImage">
      <tab id="myTab" label="My Tab">
        <group id="GrpCopySheet" label="Copy sheet">
          <button id="BtnCopySheet" label="Copy current sheet" onAction="CopyCurrentSheet"
                  size="large" screentip="Copy current sheet to a workbook." image="copy_doc_excel"/>
          <labelControl id="Label1" label="Destination workbook:" />
          <labelControl id="LblWbDestination" label="No workbook has been selected"/>
          <button id="BtnChangeWbDest" label="Change workbook" showImage="false" onAction="ChangeWbDest"/>

Open in new window

Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.


To dynamically set the text, you can use the GetLabel attribute of the button instead of the Label attribute and set this to the name of a function in the ribbon class code that returns the label text.

in the xml:
<button id="BtnCopySheet"  GetLabel = "GetMyLabelText"   etc

in the class:
Public Function GetMyLabelText(control As IRibbonControl) As String
End Function

That's a VB example but the C# is fairly similar.


Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
Sorry, just re-read your post. If it's the tab label you want to change, use the GetLabel attribute of the tab.

JulienVanAuthor Commented:
Hi xenacode,

Thanks for your response, it works fine.

Here is a C# example if somebody is look for code snippet: .
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
Microsoft Development

From novice to tech pro — start learning today.