Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Frage zu CommandBarsControls

Frage Entwicklung Visual Studio

Mitglied: MarcoBorn

MarcoBorn (Level 1) - Jetzt verbinden

25.07.2014, aktualisiert 11:32 Uhr, 1089 Aufrufe, 6 Kommentare

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:
01.
... 
02.
  If Application.Version < "14.0" Then 
03.
    Set objCBar = Application.CommandBars.Add(Name:=mc_CBAR_NAME, Temporary:=True) 
04.
    With objCBar 
05.
      .Visible = True 
06.
      .Position = msoBarTop 
07.
      .Protection = msoBarNoCustomize 
08.
    End With 
09.
    For i = 1 To 6 
10.
      objCBar.Controls.Add Type:=msoControlButton 
11.
      objCBar.Controls(i).Style = msoButtonIcon 
12.
      objCBar.Controls(i).Tag = gc_CBARBTN_TAG & CStr(i) 
13.
      objCBar.Controls(i).Parameter = mc_CBAR_NAME 
14.
    Next 
15.
    Call knopf_zuweisen(objCBar, 1, 6262, "Makro3", "Generierung starten") 
16.
...
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
Mitglied: colinardo
LÖSUNG 25.07.2014, aktualisiert um 11:40 Uhr
Hallo Marco,
da stimmt so einiges nicht, was so in VB.NET nicht funktioniert:
01.
.... 
02.
Dim objCBar As Office.CommandBar = Application.CommandBars.Add(mc_CBAR_NAME, 1 ,False , True) 
03.
With objCBar 
04.
   .Visible = True 
05.
   .Position = Office.MsoBarPosition.msoBarTop 
06.
   .Protection = Microsoft.Office.Core.MsoBarProtection.msoBarNoCustomize 
07.
End With 
08.
For i = 1 To 6 
09.
      Dim button As Office.CommandBarButton = objCBar.Controls.Add(Office.MsoControlType.msoControlButton) 
10.
      With button       
11.
         .Style = Microsoft.Office.Core.MsoButtonStyle.msoButtonIcon 
12.
         .Tag = gc_CBARBTN_TAG & CStr(i) 
13.
         .Parameter = mc_CBAR_NAME 
14.
      End with 
15.
Next 
16.
...
Grüße Uwe
Bitte warten ..
Mitglied: MarcoBorn
25.07.2014 um 11:28 Uhr
Hallo Uwe,
vielen Dank für Deine erneute Hilfe.

Ich habe Deinen Code verwendet, aber das Makro stoppt direkt nach Aufruf von
01.
Dim objCBar As Office.CommandBar = Application.CommandBars.Add(mc_CBAR_NAME, , , True) 
.

Ich habe direkt danach eine MsgBox eingefügt, die aber schon nicht mehr aufgerufen wird. Setze ich vor den ganzen Block eine Fehlerbehandlung
01.
 On Error GoTo Err_CreateCommandBar 
, dann wird mir ein Fehler angezeigt. Lasse ich diese Zeile weg, kommt keine Exception-Meldung o.ä.

So langsam bin ich hier ziemlich ratlos...

Viele Grüße,
Marco
Bitte warten ..
Mitglied: colinardo
25.07.2014, aktualisiert um 11:42 Uhr
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:
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.

Grüße Uwe
Bitte warten ..
Mitglied: MarcoBorn
25.07.2014 um 11:59 Uhr
Hallo Uwe,
ich realisiere das ganze in SharpDevelop, nicht in VisualStudio. Ich möchte den Code in einer XLL verwenden. Es sieht danach aus, dass der Bug von NetOffice kommt, da ich folgende Nachricht erhalte, wenn ich statt der On Error Goto ein Try-Catch verwende (On Error war aus dem alten VBA-Code noch drin):

01.
Unable to cast COM object of type 'System.__ComObject' to class type 'NetOffice.OfficeApi.CommandBar'. Instances of types that represent COM components cannot be cast to types that do not represent COM components; however they can be cast to interfaces as long as the underlying COM component supports QueryInterface calls for the IID of the interface. 
02.
   at FKGenDNA.StartUp.mbo_create_ribbon()
Ich werde mal den Entwickler von NetOffice ansprechen, ob dort ein Bug vorliegt.

Vielen Dank nochmal,
Marco
Bitte warten ..
Mitglied: colinardo
25.07.2014, aktualisiert um 12:10 Uhr
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.
Bitte warten ..
Mitglied: MarcoBorn
25.07.2014 um 12:33 Uhr
Ich hatte die Deklarationen und Parameter schon entsprechend angepasst, erhalte aber weiterhin die Fehlermeldung. Mal sehen, was Sebastian auf meine Mail hin antwortet...
Bitte warten ..
Ähnliche Inhalte
Netzwerkgrundlagen
Fragen zum Heimnetzwerk
gelöst Frage von bambulkoNetzwerkgrundlagen11 Kommentare

Ich werde demnächst bauen und möchte schon mal anfangen mein Heimnetzwerk zu planen. Ich möchte jeweils eine Doppel-LAN Dose ...

Windows 10
Frage zur Cortona
Frage von avitasWindows 101 Kommentar

Lassen sich damit auch Texte in Word diktieren oder geht das nicht, falls ja, was muss ich da einstellen ...

Administrator.de Feedback
Fragen werden nicht angezeigt?
gelöst Frage von LochkartenstanzerAdministrator.de Feedback8 Kommentare

Moin, Mir ist aufgefallen, das in der Ansicht "Neue Fragen" meine beiden Fragen zum feedback nicht angezeigt werden: Bug ...

Backup
Fragen zu VEEAM
gelöst Frage von HenereBackup4 Kommentare

Hallo, nachdem mir VEEAM hier ans Herz gelegt wurde, kann mir doch bestimmt auch jemand ein paar Fragen dazu ...

Neue Wissensbeiträge
Viren und Trojaner

Deaktivierter Keylogger in HP Notebooks entdeckt

Information von bitcoin vor 17 StundenViren und Trojaner1 Kommentar

Ein Grund mehr warum man Vorinstallationen der Hersteller immer blank bügeln sollte Der deaktivierte Keylogger findet sich im vorinstallierten ...

Router & Routing

Lets Encrypt kommt auf die FritzBox

Information von bitcoin vor 21 StundenRouter & Routing

In der neuesten Labor-Version der FB7490 integriert AVM unter anderem einen Let's Encrypt Client für Zugriffe auf das Webinterface ...

Internet

Was nützt HTTPS, wenn es auch von Phishing Web-Seiten genutzt wird

Information von Penny.Cilin vor 3 TagenInternet17 Kommentare

HTTPS richtig einschätzen Ob man eine Webseite via HTTPS aufruft, zeigt ein Schloss neben der Adresse im Webbrowser an. ...

Webbrowser

Bugfix für Firefox Quantum released - Installation erfolgt teilweise nicht automatisch!

Erfahrungsbericht von Volchy vor 4 TagenWebbrowser8 Kommentare

Hallo zusammen, gem. dem Artike von heise online wurde mit VersionFirefox 57.0.1 sicherheitsrelevante Bugs behoben. Entgegen der aktuellen Veröffentlichung ...

Heiß diskutierte Inhalte
Batch & Shell
Trusted Sites für alle User auf dem PC einpflegen
Frage von xXTaKuZaXxBatch & Shell12 Kommentare

Aufgabestellung: Es sollen auf 1 PC (bzw. mehreren PCs) vertrauenswürdige Sites per Powershell eingetragen werden, die für alle User ...

Voice over IP
Telefonstörung - Ortsrufnummern kein Verbindungsaufbau
Frage von Windows10GegnerVoice over IP10 Kommentare

Hallo, sowohl bei uns als auch beim Opa ist es über VoIP nicht möglich Ortsrufnummern anzurufen. Es kommt nach ...

Vmware
DOS 6.22 in VMWare mit CD-ROM
gelöst Frage von hesperVmware10 Kommentare

Hallo zusammen! Ich hab ein saublödes Problem. Es ist eine VMWare mit DOS 6.22 zu erstellen auf dem ein ...

Cloud-Dienste
PIM als SaaS Nutzungsgebühr
Frage von vanTastCloud-Dienste8 Kommentare

Moin, wir haben uns ein PIM (Product Information Management) nach unseren Ansprüchen für viel Geld als SaaS-Lösung bauen lassen. ...