Avatar billede lorentsnv Nybegynder
18. januar 2005 - 15:50 Der er 1 løsning

VSTO: Check om et menupunkt i Excel eksisterer inden det oprettes

Jeg har leget lidt med Visual Studio Tools for Office, og prøvt at implementere et eksempel fra Microsoft på at lave et nyt menupunkt i Excel. Problemet er at menupunktet bliver oprættet/lagt til, hver gang jeg åbner den aktuelle WorkBook med kode i, uden at koden chekcer om menupunktet allerede eksisterer.

Resultatet er at jeg får en ny version af menupunktet hver gang jeg lukker og åbner denne Workbook.

Finnes det en elegant måde at checke om et givet menupunkt fungerer på?

Jeg har følgende kode:
    Private Sub InitMenuBarItems(ByVal Caption As String)
        Try
            MainMenuBar = ThisApplication.CommandBars( _
                "Worksheet Menu Bar")
            MenuBarItem = MainMenuBar.Controls.Add( _
                Office.MsoControlType.msoControlPopup, Temporary:=True)
            MenuBarItem.Caption = Caption

        Catch ex As Exception
            MessageBox.Show(ex.Message, _
                ex.Source, MessageBoxButtons.OK, MessageBoxIcon.Error)

        End Try
    End Sub

Jeg havde håbet på at kunne checke:
If Not IsNothing(MainMenuBar.Controls.Item(Caption)) then
    MenuBarItem = MainMenuBar.Controls.Add( _
                Office.MsoControlType.msoControlPopup, Temporary:=True)
    MenuBarItem.Caption = Caption
End If

Men jeg får en fejl på denne (Run-time exception thrown : System.ArgumentException - The parameter is incorrect.) når menupunktet ikke findes, så det er nok ikke IsNothing jeg skal bruge. Jeg ved jeg kan bruge Try Catch for at undgå fejl, og på den måde opdage om et bestemt menu item findes, men det jeg søger er en måde at chekce om et menu item findes uden at generere en fejl. Kan det lade sig gøre?
Avatar billede lorentsnv Nybegynder
23. januar 2005 - 12:03 #1
Der er vist ingen respons på dette. Jeg lukker spørgsmålet.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester