{"id":1768,"date":"2013-02-04T19:00:53","date_gmt":"2013-02-04T17:00:53","guid":{"rendered":"http:\/\/www.kastenmaier.de\/?p=1768"},"modified":"2018-05-02T07:54:33","modified_gmt":"2018-05-02T06:54:33","slug":"vsto-word-ribbontab-waehrend-der-laufzeit-ein-ausblenden","status":"publish","type":"post","link":"https:\/\/www.kastenmaier.de\/?p=1768","title":{"rendered":"VSTO &#8211; Word: RibbonTab w\u00e4hrend der Laufzeit ein- \/ ausblenden"},"content":{"rendered":"<h1>Beschreibung<\/h1>\n<p>Hat man sein eigenes Ribbon programmiert und ist dieses dann irgendwann umfangreicher geworden, reicht die Unterteilung eines RibbonTabs in Gruppen evtl. nicht mehr aus. Schnell nutzt man die M\u00f6glichkeit, je nach Einsatzgebiet mehrere RibbonTabs zu generieren. Wenn diese nicht immer ben\u00f6tigt werden, ist es hilfreich, wenn der Nutzer diese &#8222;unn\u00f6tigen&#8220; RibbonTabs w\u00e4hrend der Laufzeit ausblenden kann. <!--more--><\/p>\n<p>In meinem Fall gibt es einen RibbonTab, der immer angezeigt werden soll (<em>MyRibbonTabMain)<\/em>. In diesem gibt es die Einstellungsm\u00f6glichkeit, die anderen RibbonTabs (<em>MyRibbonTab1<\/em>,\u00a0<em>MyRibbonTab2)\u00a0<\/em>anzuzeigen oder ggfs. auszublenden. Diese anderen RibbonTabs beinhalten spezielle Funktionen, die nur selten oder nur von bestimmten Nutzern verwendet werden. Durch die Einstellungsm\u00f6glichkeit kann der jeweilige Nutzer also die f\u00fcr ihn uninteressanten RibbonTabs ausblenden. Solche Einstellungen k\u00f6nnen dann z.B. in einer XML-Datei, die alle Einstellungen des Ribbons enth\u00e4lt, gespeichert werden (nicht Teil dieser Funktion), damit sie bei jedem Start von Word wiederhergestellt werden.<\/p>\n<p>Das folgende Beispiel zeigt, wie eine Funktion, welche Ribbontabs des eigenen Ribbons w\u00e4hrend der Laufzeit ein- und ausblendet, in Visual Studio realisiert werden kann.<\/p>\n<p>Hinweis: Das Ribbon hei\u00dft <em>MyRibbon.<\/em>\u00a0Das Formular, in dem das Ribbon mit allen RibbonTabs enthalten ist, hei\u00dft <em>frmMyRibbon<\/em>. Das Ribbon besteht in diesem Beispiel aus den oben erw\u00e4hnten drei RibbonTabs: <em>MyRibbonTabMain<\/em>, <em>MyRibbonTab1<\/em>, <em>MyRibbonTab2<\/em>. Da <em>MyRibbonTabMain<\/em> immer angezeigt werden soll, wird dieser RibbonTab in der Funktion nicht behandelt.<\/p>\n<h1>Sourcecode<\/h1>\n<pre class=\"brush: vbnet; gutter: true\">&#039; showRibbonTab\r\n&#039; Anzeigen \/ Ausblenden des RibbonTabs mit dem \u00fcbergebenen Namen\r\n&#039;\r\n&#039; Parameter:\r\n&#039; sRibbonTabName As String        - Name des betroffenen RibbonTabs\r\n&#039; bRibbonTabVisibility As Boolean - anzeigen (true) oder ausblenden (false)\r\n&#039;\r\nPublic Sub showRibbonTab(sRibbonTabName As String, bRibbonTabVisibility As Boolean)\r\n    &#039; Variable, um das eigene Ribbon-Formular anzusprechen\r\n    Dim frmMyRibbon As MyRibbon.frmMyRibbon = Globals.Ribbons.GetRibbon(GetType(MyRibbon.frmMyRibbon))\r\n\r\n    &#039; Je nach \u00fcbergebenen RibbonTab sieht der Befehl anders aus ...\r\n    Select Case sRibbonTabName\r\n        Case &quot;MyRibbonTab1&quot;\r\n            frmMyRibbon.MyRibbonTab1.Visible = bRibbonTabVisibility\r\n        Case &quot;MyRibbonTab2&quot;\r\n            frmMyRibbon.MyRibbonTab2.Visible = bRibbonTabVisibility\r\n    End Select\r\nEnd Sub<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Beschreibung Hat man sein eigenes Ribbon programmiert und ist dieses dann irgendwann umfangreicher geworden, reicht die Unterteilung eines RibbonTabs in Gruppen evtl. nicht mehr aus. Schnell nutzt man die M\u00f6glichkeit, je nach Einsatzgebiet mehrere RibbonTabs zu generieren. Wenn diese nicht immer ben\u00f6tigt werden, ist es hilfreich, wenn der Nutzer diese &#8222;unn\u00f6tigen&#8220; RibbonTabs w\u00e4hrend der Laufzeit [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"ngg_post_thumbnail":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[29,45],"tags":[49,46,38],"class_list":["post-1768","post","type-post","status-publish","format-standard","hentry","category-startseite","category-vsto-word","tag-programmieren","tag-vsto","tag-word"],"jetpack_featured_media_url":"","jetpack_shortlink":"https:\/\/wp.me\/p5LyzC-sw","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.kastenmaier.de\/index.php?rest_route=\/wp\/v2\/posts\/1768","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.kastenmaier.de\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.kastenmaier.de\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.kastenmaier.de\/index.php?rest_route=\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/www.kastenmaier.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1768"}],"version-history":[{"count":20,"href":"https:\/\/www.kastenmaier.de\/index.php?rest_route=\/wp\/v2\/posts\/1768\/revisions"}],"predecessor-version":[{"id":2182,"href":"https:\/\/www.kastenmaier.de\/index.php?rest_route=\/wp\/v2\/posts\/1768\/revisions\/2182"}],"wp:attachment":[{"href":"https:\/\/www.kastenmaier.de\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1768"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.kastenmaier.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1768"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.kastenmaier.de\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1768"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}