Frage zu CommandBarsControls
Hallo Forum,
ich habe folgendes Problem:
Ich habe ein VBA-Makro, dass ich nach VB.NET portiere. Dort wird unter anderem für Office 2003 eine Symbolleiste erstellt:
In der Zeile mit objCBar.Controls(i).Style = msoButtonIcon erhalte ich jedoch immer eine Fehlermeldung, dass die Style-Eigenschaft nicht gesetzt werden kann. Wie muss ich den Code umschreiben?
Vielen Dank,
M. Born
ich habe folgendes Problem:
Ich habe ein VBA-Makro, dass ich nach VB.NET portiere. Dort wird unter anderem für Office 2003 eine Symbolleiste erstellt:
...
If Application.Version < "14.0" Then
Set objCBar = Application.CommandBars.Add(Name:=mc_CBAR_NAME, Temporary:=True)
With objCBar
.Visible = True
.Position = msoBarTop
.Protection = msoBarNoCustomize
End With
For i = 1 To 6
objCBar.Controls.Add Type:=msoControlButton
objCBar.Controls(i).Style = msoButtonIcon
objCBar.Controls(i).Tag = gc_CBARBTN_TAG & CStr(i)
objCBar.Controls(i).Parameter = mc_CBAR_NAME
Next
Call knopf_zuweisen(objCBar, 1, 6262, "Makro3", "Generierung starten")
...
In der Zeile mit objCBar.Controls(i).Style = msoButtonIcon erhalte ich jedoch immer eine Fehlermeldung, dass die Style-Eigenschaft nicht gesetzt werden kann. Wie muss ich den Code umschreiben?
Vielen Dank,
M. Born
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 244658
Url: https://administrator.de/contentid/244658
Ausgedruckt am: 12.11.2024 um 19:11 Uhr
6 Kommentare
Neuester Kommentar
Hallo Marco,
da stimmt so einiges nicht, was so in VB.NET nicht funktioniert:
Grüße Uwe
da stimmt so einiges nicht, was so in VB.NET nicht funktioniert:
....
Dim objCBar As Office.CommandBar = Application.CommandBars.Add(mc_CBAR_NAME, 1 ,False , True)
With objCBar
.Visible = True
.Position = Office.MsoBarPosition.msoBarTop
.Protection = Microsoft.Office.Core.MsoBarProtection.msoBarNoCustomize
End With
For i = 1 To 6
Dim button As Office.CommandBarButton = objCBar.Controls.Add(Office.MsoControlType.msoControlButton)
With button
.Style = Microsoft.Office.Core.MsoButtonStyle.msoButtonIcon
.Tag = gc_CBARBTN_TAG & CStr(i)
.Parameter = mc_CBAR_NAME
End with
Next
...
Es kommt hier natürlich sehr darauf an wie du dein Plugin in Visual Studio realisierst welche DLLs du wie eingebunden hast etc. welche Namespaces du importiert hast und und und, das ist leider nicht überall gleich.
Hatte die Parameter der Zeile nachträglich noch etwas abgeändert:
Zur Info On Error Goto macht man in VB.Net auch nicht mehr. Hierfür gibt es das Try ..Catch Konstrukt. Und außerdem gibt es noch diverse weitere Unterschiede die zu beachten sind. Ist also ziemlich aussichtslos an einem kleinen Stück deines Codes hier eine Stichhaltige Aussage treffen zu können.
Grüße Uwe
Hatte die Parameter der Zeile nachträglich noch etwas abgeändert:
Dim objCBar As Office.CommandBar = Application.CommandBars.Add(mc_CBAR_NAME, 1, False, True)
Zur Info On Error Goto macht man in VB.Net auch nicht mehr. Hierfür gibt es das Try ..Catch Konstrukt. Und außerdem gibt es noch diverse weitere Unterschiede die zu beachten sind. Ist also ziemlich aussichtslos an einem kleinen Stück deines Codes hier eine Stichhaltige Aussage treffen zu können.
- Converting Code from VBA to Visual Basic .NET
- http://www.tutorialspoint.com/vb.net/vb.net_quick_guide.htm
- Gewusst wie: Programmgesteuertes Erstellen von Office-Symbolleisten
Grüße Uwe
kein Bug sondern du darfst hier halt nur die Konstanten und Objekte des NetOffice.OfficeApi verwenden und nicht mit denen des COM-Objektes (welche ich oben verwendet habe) vermischen. D.h. die oben verwendeten Konstanten etc. an das Namensschema der NetOffice-API anpassen, dann sollte es laufen.