Verwenden von BIN2DEC in einem Makro (Microsoft Excel)
Auf die meisten Excel-Arbeitsblattfunktionen kann in VBA mithilfe des WorksheetFunction-Objekts zugegriffen werden. Einige Funktionen scheinen jedoch möglicherweise nicht verfügbar zu sein. Eine solche Funktion ist BIN2DEC, die einen Binärwert in einen Dezimalwert umwandelt. Der Grund, warum es nicht verfügbar ist, ist, dass BIN2DEC nicht wirklich eine Excel-Arbeitsblattfunktion ist – es ist Teil des Analysis ToolPak-Add-Ins.
In diesem Fall haben Sie zwei Möglichkeiten: Sie können entweder das VBA-Äquivalent des Analysis ToolPak laden oder Ihre eigene BIN2DEC-Funktion in VBA erstellen. Stellen Sie zunächst sicher, dass Sie in Excel das Add-In Analysis ToolPak – VBA installieren. Wenn es nicht in den verfügbaren Add-Ins aufgeführt ist, suchen Sie mit Windows nach der Datei ATPVBAEN.XLA. (Wenn Sie eine andere Sprachversion von Excel als Englisch verwenden, unterscheidet sich der Teil „EN“
der Datei.) Dies ist das eigentliche Add-In, das Sie aktivieren möchten.
Wenn Sie das Add-In aktiviert haben, zeigen Sie den VBA-Editor an und wählen Sie Extras | Referenzen, um das Dialogfeld Referenzen anzuzeigen. Stellen Sie sicher, dass die Referenz atpvbaen.xla ausgewählt ist. Schließen Sie das Dialogfeld, und Sie können BIN2DEC wie jede andere Arbeitsblattfunktion verwenden.
Die andere Möglichkeit besteht darin, eine eigene BIN2DEC-Funktion zu erstellen. Das folgende Beispiel zeigt eine Funktion, die eine Zeichenfolge akzeptiert, die die Binärziffern enthält, und einen numerischen Wert zurückgibt, der den Dezimalwert dieser Zeichenfolge darstellt.
Function Bin2Dec(sMyBin As String) As Long Dim x As Integer Dim iLen As Integer iLen = Len(sMyBin) - 1 For x = 0 To iLen Bin2Dec = Bin2Dec + _ Mid(sMyBin, iLen - x + 1, 1) * 2 ^ x Next End Function
Diese Funktion unterliegt nicht den gleichen Einschränkungen wie die BIN2DEC-Arbeitsblattfunktion. Es funktioniert mit Binärzahlen mit mehr als 10 Ziffern.
_Hinweis: _
Wenn Sie wissen möchten, wie die auf dieser Seite (oder auf einer anderen Seite der ExcelTips-Websites) beschriebenen Makros verwendet werden, habe ich eine spezielle Seite vorbereitet, die hilfreiche Informationen enthält.
ExcelTips ist Ihre Quelle für kostengünstige Microsoft Excel-Schulungen.
Dieser Tipp (3063) gilt für Microsoft Excel 97, 2000, 2002 und 2003.