Microsoft Excel

Herbers Excel/VBA-Archiv

Makroname



Excel-Version: 9.0 (Office 2000)

Betrifft: Makroname
von: Stefan
Geschrieben am: 31.05.2002 - 11:53:59

Ich möchte gerne folgendes Programm im Direktfenster anzeigen lassen. Wenn ich aber auf Ausführen gehe, dann fragt er mich bei allen Modulen die mit dem Befehl Function beginnen nach dem Makronamen. Was soll ich hier eingeben, damit er das Programm in VBA erkennt?

Function DezimalNachBinär(Zahl As Double) As String
Dim Losgehts As Boolean
Dim Ausgabe As String
Dim Exp As Long
If Zahl <= (2 ^ 31) - 1 And Zahl = Int(Zahl) Then
For Exp = 30 To 0 Step -1
If Zahl >= (2 ^ Exp) Then
Ausgabe = Ausgabe & "1"
Zahl = Zahl - (2 ^ Exp)
Losgehts = True
Else
If Losgehts = True Then
Ausgabe = Ausgabe & "0"
End If
End If
Next Exp
Else
Ausgabe = "Sorry, geht nur bis 2.147.483.647"
End If
DezimalNachBinär = Ausgabe
End Function


  

Re: Makroname
von: Hans W. Hofmann
Geschrieben am: 31.05.2002 - 21:56:56

Hallo Steffan,

zu Deiner Function lässt sich eine ganze Menge sagen.
Zum Beispiel, wenn man oben eine Long Int Zahl reinsteckt, kann auch maximal eine Long Int raus kommen. Dann fängt man von unten an und hört auf, wenn die Zahl durch ist, Z.B:


Function Dec2Bin(zahl As Long) As String
Dim digit As Long, mask As Long
digit = 0: mask = 1
Do
digit = (zahl And mask) / mask
mask = mask * 2
Dec2Bin = digit & Dec2Bin
Loop Until mask > zahl
End Function

Eine Funktion, die einen Übergabeparameter aufweist kann man nicht einfach im Direktfenster starten. Sie wird von einer andern Sub oder vom Tabellenblatt aus aufgerufen.

HTH
Gruß HW

  

Re: Makroname
von: Sigi E.
Geschrieben am: 31.05.2002 - 23:12:17

Hallo Steffan,

du brauchst eine Sub, die die Funktion DezimalNachBinär() aufruft:

Sub DirektFenster()
    Dim Zahl As Double
    Zahl = 149
    Debug.Print DezimalNachBinär(Zahl)
End Sub

Gruß
Sigi
 

Beiträge aus den Excel-Beispielen zum Thema "Makroname"