Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1016to1020
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

vbYes: welcher Variablen-Typ?

vbYes: welcher Variablen-Typ?
21.10.2008 15:17:44
David
Hallo zusammen,
Nur eine kurze Frage: wenn ich eine Msgbox mit Wahlmöglichkeit habe, z. Bsp. Ja/Nein, als welchen Typ muss ich dann die entsprechende Variable definieren? Sind das einfach nur Strings oder haben die irgendeinen speziellen Typ?
(mögliche Werte sind ja z. Bsp. vbYes, vbNo, vbCancel etc.)
Gruß
David

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: vbYes: welcher Variablen-Typ?
21.10.2008 15:19:00
Hajo_Zi
Hallo David,
die kanns Du al Byte oder Integer definieren. Es steht da auch immer ein Zahlen wert dahinter, ich glaube bis 7.

AW: vbYes: welcher Variablen-Typ?
21.10.2008 15:22:00
David
Danke Hajo,
ich hatte es jetzt erst mal als String definiert, das hat auch geklappt. Hab früher meist ohne zwingende Variablen-Deklaration gearbeitet, da war das kein Thema.
Aber die Zeiten ändern sich ... ;-)
Gruß
David
AW: vbYes: welcher Variablen-Typ?
21.10.2008 15:20:46
Andi
Hi,
der Rückgabewert einer MsgBox ist vom Typ Integer;
vbYes etc sind nur Schlüsselwörter die einen Wert zwichen 1 und 7 repräsentieren.
Schönen Gruß,
Andi
Anzeige
AW: vbYes: welcher Variablen-Typ?
21.10.2008 15:26:00
David
Alles klar,
Danke.
Gruß
David
AW: vbYes: welcher Variablen-Typ?
21.10.2008 15:32:00
Reinhard
Hallo Andi,
bist du dir sicher?

Sub dd()
Dim T
T = MsgBox("frage", vbYesNoCancel)
MsgBox TypeName(T)
End Sub


Gruß
Reinhard

AW: vbYes: welcher Variablen-Typ?
21.10.2008 15:34:00
Hajo_Zi
Hallo Reinhard,
ein Blick in Die Hilfe reicht manchmal auch
vbOK 1 Schaltfläche OK gedrückt
vbCancel 2 Schaltfläche Abbrechen gedrückt
vbAbort 3 Schaltfläche Abbruch gedrückt
vbRetry 4 Schaltfläche Wiederholen gedrückt
vbIgnore 5 Schaltfläche Ignorieren gedrückt
vbYes 6 Schaltfläche Ja gedrückt
vbNo 7 Schaltfläche Nein gedrückt
Gruß Hajo
Anzeige
AW: vbYes: welcher Variablen-Typ?
21.10.2008 15:28:33
Reinhard
Hi David,
Long, siehe Code

Sub dd()
Dim T
T = vbYes
MsgBox TypeName(T)
End Sub


Um den Wert von z.B. vbyes zu sehen, über Ansicht das Direktfenster einblenden, dort dann eingeben:
?vbyes
und Enter drücken.
Gruß
Reinhard

AW: vbYes: welcher Variablen-Typ?
21.10.2008 20:17:35
Nepumuk
Hallo Reinhard,
du könntest sie aber auch so deklarieren:
Public Sub Beispiel()
    Dim enmReturn As VbMsgBoxResult
    enmReturn = MsgBox("Klick 'nen Button", vbYesNoCancel, "Klick")
    Debug.Print enmReturn
End Sub

Die Rückgabewerte der Msgbox sind nämlich enumerierte Konstanten. Und die sind immer vom Typ Long, wie du richtig erkannt hast.
Gruß
Nepumuk
Anzeige
AW: vbYes: welcher Variablen-Typ?
21.10.2008 21:38:52
Reinhard
Hallo Nepumuk,
das was ich als richtig erkenne hält sich sehr in Grenzen :-))
Ich gehe aber davon aus alle vb... Konstanten sind als Long definiert.
Die Ausgangsfrage war ja, welchen Variablentyp hat vbyes.
Und das ist für mich eindeutig Long, siehe Code.
Jetzt kommt aber die MsgBox ins Spiel, die laut Vba-Hilfe einen Integerwert zurückliefert.
Das mag ja stimmen, aber nachprüfen kann zumindest ich das nicht, denn es erfolgt da wohl eine automatische Typumwandlung je nachdem wie ich die Variable deklariert habe die das Ergebnis der MsgBox aufnimmt.

Sub Test()
Dim a As Byte, b As String, c As Integer, d As Long, x
MsgBox TypeName(vbYes)
x = MsgBox("Frage", vbYesNoCancel)
a = x
b = x
c = x
d = x
MsgBox TypeName(a)
MsgBox TypeName(b)
MsgBox TypeName(c)
MsgBox TypeName(d)
End Sub


Mir ist es mit meinen kenntnissen nicht möglich festzustellen welchen Variablentyp das Ergebnis der MsgBox hat bevor ich/der Code das sehe ist es schon umgewandelt in den Variablentyp der Variablen in der ich es speichere,
Gruß
Reinhard

Anzeige
Jetzt reicht es aber... ;-)
22.10.2008 08:12:03
David
Hätte ich geahnt, welche Diskussionen ich mit meiner vermeintlich einfachen Frage lostrete, hätte ich die wohl gar nicht gestellt.
Danke allen Beteiligten. Ich denke, es ist auch nicht sooo wichtig, welche Variable es denn nun genau ist, solange es überhaupt funktioniert.
Viel Spass noch hier im Forum und bei der Gelegenheit mal einen herzlichen Dank an alle, die sich immer sehr bemühen, so ziemlich jedes Problem zu lösen und jede Frage ausführlich zu beantworten. Durch die Mitarbeit hier im Forum konnte ich meinen Excel- und VBA-Level schon erheblich (!) steigern.
Gruß
David
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige