Custom Task Panes mit VB6

Neben Ribbon, Formularen und Berichten liefert Access 2007 noch eine weitere Möglichkeit zum Anpassen der Benutzeroberfläche: Das Custom Task Pane. Wie Sie dieses erstellen und steuern, erfahren Sie im vorliegenden Beitrag.

Ein Custom Task Pane ist ein spezielles Fenster innerhalb der Benutzeroberfläche von Access 2007 oder einer anderen Office 2007-Anwendung und das benutzerdefinierte Pendant zu den eingebauten Task Panes, die etwa in Access die Eigenschaften oder die Feldliste enthalten.

Der Unterschied zu üblichen Formularen ist, dass Sie Task Panes am Rand des Anwendungsfensters verankern können und dass diese immer sichtbar sind (das heißt, sie werden nicht von Formularen überdeckt- tatsächlich sind Task Panes technisch von den alten Symbolleisten abgeleitet). Ihre Verwendung bietet sich beispielsweise an, um Schnittstellen zu anderen Anwendungen oder andere wichtige Funktionen ständig anzuzeigen. Denkbar ist etwa auch, die Navigation in der Datenbank komplett über ein Taskpane zu realisieren – der einbaute Navigationsbereich von Access 2007 macht es vor.

Neben Visual Basic 6 können Sie solche Custom Task Panes auch mit Visual Studio .NET und Sprachen wie VB.NET oder C# erstellen. Allerdings sind für die daraus entstehenden DLLs das .NET-Framework sowie Assemblies des Visual Studio Tools for Office auf dem Zielrechner Voraussetzung. Mit VB6 geht das wesentlich einfacher, weil man nur die DLL auf den Zielrechner kopieren und sie registrieren muss.

Vorbereitungen

Als Ausgangspunkt dient eine verschlankte Vorlage für ein Add-In-Projekt unter VB6. Dieses legen Sie zunächst über den Menüpunkt Datei/Neues Projekt und die anschließende Auswahl des Eintrags Addin an. Nun geht es ans Ausdünnen: Werfen Sie zunächst das Formular frmAddin raus und leeren Sie dann das Modul hinter dem Objekt Connect bis auf die erste Zeile Option Explicit.

Task Pane-Verbraucher

Um auf die Methoden zum Erzeugen eines Task Panes zuzugreifen, legen Sie zunächst einen Verweis auf die Bibliothek Microsoft Office 12.0 Object Library an. Gegebenenfalls müssen Sie zuvor noch die eingestellte Version 8.0 der gleichen Bibliothek entfernen. Mit der folgenden Zeile fügen Sie dem Projekt die ICustomTaskPaneConsumer-Schnittstelle hinzu:

Implements ICustomTaskPaneConsumer

Bevor Sie die Ereignisprozedur zum Erzeugen des Task Panes anlegen, brauchen Sie noch eine Objektvariable, die einen Verweis auf das zu erzeugende Task Pane aufnimmt und deren Ereignisse abfangen kann:

Public WithEvents CTP As CustomTaskPane

Dann implementieren Sie die einzige Methode der Schnittstelle ICustomTaskPaneConsumer, indem Sie die passenden Einträge aus den beiden Kombinationsfeldern im oberen Bereich des Codefensters auswählen:

Private Sub _
ICustomTaskPaneConsumer_CTPFactoryAvailable _
(ByVal CTPFactoryInst As Office.ICTPFactory) End Sub

Task Pane als UserDocument-Container

Bevor Sie diese Methode mit Leben füllen, legen Sie erst noch ein UserDocument an, das die im Task Pane anzuzeigenden Steuerelemente enthält. Dazu rufen Sie den Eintrag Hinzufügen/Benutzerdokument des Kontextmenüs im Projekt-Explorer auf und wählen dann im Dialog Benutzerdokument hinzufügen das Element Benutzerdokument aus. ändern Sie seinen Namen in aiuTask Pane. Fügen Sie außerdem eine Schaltfläche hinzu. Anschließend brauchen Sie nur noch die soeben angelegte Methode zu füllen:

Private Sub _
ICustomTaskPaneConsumer_CTPFactoryAvailable _
(ByVal CTPFactoryInst As Office.ICTPFactory) Set CTP = CTPFactoryInst.CreateCTP _
("MyAddin.aiuTask Pane", "AiU-Task Pane") CTP.Visible = True End Sub

Dabei kommt das Objekt CTPFactoryInst als Parameter der Methode selbst. CreateCTP erzeugt das Task Pane und die Visible-Methode macht es schließlich sichtbar. Achten Sie dabei auf die genaue Schreibweise der ProgID ihres Benutzerdokuments. Sie setzt sich so zusammen: <Name des VB6-Projekts>.<Name des Benutzerdokuments>. Debugging anwerfen, Access starten, fertig – es erscheint ein Task Pane wie in Abb. 1. Wichtig ist es zu erwähnen, dass das Debuggen an dieser und anderen Stellen in Zusammenhang mit dem Erzeugen von Custom Task Panes und Ribbon-Anpassungen nicht zuverlässig funktioniert. Verwenden Sie in jedem Fall eine Fehlerbehandlung, die gegebenenfalls Fehlercode und -beschreibung ausgibt.

abb001.tif

Abb. 1: Das Access-Fenster mit einem benutzerdefinierten TaskPane

Ein- und ausblenden

Sie haben das Ende des frei verfügbaren Textes erreicht. Möchten Sie ...

Workplace

Jahresabonnement TestzugangOder haben Sie bereits Zugangsdaten? Dann loggen Sie sich gleich hier ein:

Schreibe einen Kommentar