ctKatalog an Office 97 anpassen

Ich benutze Office 97. Beim Versuch, die Projektdatei ctKatalogPlusMP3.xlt Ihres Audio-CD- und MP3-Katalogisierers ctKatalog (Musikantenstapel, c't 9/02, S. 206 und c't 10/02, S. 214) zu öffnen, erscheinen bei mir nur Fehlermeldungen.

vorlesen Druckansicht
Lesezeit: 3 Min.
Von
  • Björn Hansen

Ich benutze Office 97. Beim Versuch, die Projektdatei ctKatalogPlusMP3.xlt Ihres Audio-CD- und MP3-Katalogisierers ctKatalog (Musikantenstapel, c't 9/02, S. 206 und c't 10/02, S. 214) zu öffnen, erscheinen bei mir nur Fehlermeldungen.

Das für Office 2000 und XP entwickelte Projekt ctKatalog nutzt einige Besonderheiten der Programmiersprache VBA, die es in Office 97 noch nicht gab. Das führt zu diversen Fehlern, die sich jedoch durchweg beheben lassen. Als erstes moniert Excel 97 im Modul AutoMakros die unbekannte Konstante msoButtonIconAndCaptionBelow, die Sie in allen betroffenen Zeilen gegen die Konstante msoButtonIconAndCaption ersetzen sollten. Wenn Sie sich an den nun aufrecht stehenden Beschriftungen der Symbolleiste stören, verschieben Sie diese an den unteren Rand des Excel- Programmfensters, indem Sie die Zeile ‘.Position = msoBarRight’ in Position = msoBarBottom ändern. Problem Nummer zwei entsteht durch den Aufruf der VBA-6-Funktion InstrRev in der Routine StringRechts des Moduls ctKatalog. Zwecks Lösung fügen Sie dem Modul die benutzerdefinierte Funktion aus oben stehendem Listing hinzu und ersetzen das Schlüsselwort InstrRev in der genannten Routine durch InstrRev97. Das unbekannte Argument TextToDisplay der Hyperlinks.Add-Methode verursacht das dritte Problem. Es lässt sich nur lösen, indem Sie das Argument inklusive dem Komma davor aus den betroffenen Zeilen entfernen. Der sichtbare Text aller Hyperlinks nennt danach immer die Zieladresse; die Angabe einer alternativen Beschriftung ist ohne das fehlende Argument nicht möglich. Der Hyperlink für den Rücksprung aus einem Katalog- in das Übersichtsblatt beispielsweise erhält damit die Beschriftung ‘Übersicht!Sprungmarke’ anstelle von ‘<< Zurück zur Übersicht’, funktioniert aber - wie seine übrigen Kollegen - tadellos.

In der Userform_Activate-Prozedur des Dialogfelds frmAlbumEdit bemängelt Excel 97 die Zeile ‘Dim ucmMatchCode As uCDDBMatchCode’. Ersetzen Sie das Schlüsselwort uCDDBMatchCode durch Integer. Danach suchen Sie die Zeile If ucmMatchCode <> MATCH_NONE Then und ändern diese wie folgt: If ucmMatchCode <> 0 Then. Aufgrund einer nicht kompatiblen Schnittstelle schließlich verweigert das ActiveX-Control uFREEDB die Zusammenarbeit mit Office 97. Eine modifizierte Version, die das Problem löst, steht auf heise online zum Download bereit (siehe Soft-Link). Hier finden Sie auch eine angepasste Version der für den Cover-Druck zuständigen Word-Dokumentvorlage ctKatalogPlus.dot. (Ralf Nebelo/se)

Diese Funktion ersetzt die in Office 97 nicht vorhandene InstrRev-Funktion.

Public Function InstrRev97(strString As String, _
strSuchString As String) As Integer
Dim intPos As Integer
Dim intI As Integer
Dim strSegment As String
intPos = Len(strString) - Len(strSuchString) + 1
For intI = intPos To 1 Step -1
strSegment = Mid(strString, intI, Len(strSuchString))
If strSegment = strSuchString Then
InstrRev97 = intI
Exit For
End If
Next
End Function (ha)