Programmieren - alles kontrollieren 4.941 Themen, 20.715 Beiträge

Funktion MsgBox in Office 2000

Kolti / 7 Antworten / Baumansicht Nickles

Weiß jemand zufällig, ob sich die Syntax in dem Mist verändert hat?


Laut Hilfe lautet die Syntax:
MsgBox (prompt, buttons, title)
Msgbox ("Hallo", 2, "Test")


Funktionieren tut es bei mir aber nur so:
MsgBox (prompt), buttons, title
MsgBox ("Hallo"), 2, "Test"


DAS IST ZUM KOTZEN, vor allen Dingen, wenn man da fast eine Stunde probieren muß, bis dieser Microsoft-Mist funktioniert.


 

bei Antwort benachrichtigen
T-Rex Kolti „Funktion MsgBox in Office 2000“
Optionen

Hi,

habe hier nur Office97, kann es also nicht direkt testen.
Aber ich kann es mir auch nicht vorstellen.

Versuch mal folgendes:

  Dim lngResult As Long

lngResult = MsgBox("Hi Kolti", vbOKOnly + vbInformation, "Test")


Wenn Du den gedrückten Button nicht benötigst, kannst Du es auch so aufrufen:
  Call MsgBox("Hi Kolti", vbOKOnly + vbInformation, "Test")


Und? Klappt es?
 GrüßeT-Rex 
bei Antwort benachrichtigen
Kolti T-Rex „Hi, habe hier nur Office97, kann es also nicht direkt testen. Aber ich kann es...“
Optionen

Hi, T-Rex.
Das funktioniert auch mit
Sub test()
Debug.Print MsgBox("Hi T-Rex", 64, "Test")
End Sub
Das Problem ist halt nur, daß die Syntax nicht mit der Hilfe übereinstimmt.
Ich habe Microsoft mittlerweile ein Fax geschickt und mich über diese blöde Hilfe beschwert.

bei Antwort benachrichtigen
T-Rex Kolti „Danke“
Optionen

Die Hilfe kannst Du sowieso knicken.
Die hat mehr Fehler und mehr Ungereimtheiten als Win95 ;-)

 GrüßeT-Rex 
bei Antwort benachrichtigen
thomas woelfer Kolti „Funktion MsgBox in Office 2000“
Optionen

naja, ich denke das ist eher ein verstaendnissproblem auf deiner seite.

die angegebene syntax fuer den aufruf ist korrekt - du rufst die sache nur nicht richtig auf.

vb hat die etwas merkwuerdige eigenschaft das man beim aufruf einer funktion klammern um die parameter setzen _muss_ (MsgBox(p1,p2,p3)) wenn man den returnwert abholt.

holt man den returnwert _nicht_ ab, dann _darf_ man keine klammern verwenden.

im wesentlichen stammt das daher das der eine weg eben der aufruf einer methode (kein returnwert) der andere der aufruf einer funktion (mit returnwert) ist. das ist (zumindest imho) etwas schwachsinnig, aber seit jahren voellig normaler bestandteil des sprachumfanges.

die klammerung in deinen zweiten beispiel ist voellig sinnlos - beim evalurien fallen die einfach weg.

WM_FYI

this posting contains no tpyos.
bei Antwort benachrichtigen
Kolti thomas woelfer „naja, ich denke das ist eher ein verstaendnissproblem auf deiner seite. die...“
Optionen

Da magst Du sicherlich recht haben, daß es an meinem Verständnis liegt.
Ich habe eigentlich nichts anderes gemacht, als das Beispiel aus einem Lehrbuch von Markt&Technik abzutippen.
So wie die da das Beispiel reingeschrieben haben, ist es zwingend erforderlich, daß vor der Funktion noch das Schlüsselwort Debug.Print oder Call stehen muß. (Das steht aber im Buch nicht dabei.)
Wenn man allerdings die Klammern wegläßt und einfach nur schreibt:
MsgBox "Ausgabe", 2, "Titel"
dann funktioniert es auch ohne Debug.Print oder Call.

Zu meiner Entschuldigung: Ich bin erst beim 2. Kapitel. ;o)

bei Antwort benachrichtigen
thomas woelfer Kolti „@TW“
Optionen

kein problem.. aber wenn du sowas machen willst kann ich nur empfehlen mal die original docu von mx zu vb zu lesen statt mit einem buch von einem dritthersteller anzufangen... die ist zwar nicht doll, aber sie tendiert dazu richtig zu sein :)

WM_GOODLUCK

this posting contains no tpyos.
bei Antwort benachrichtigen
Kolti thomas woelfer „@TW“
Optionen

Nochmals vielen Dank.
Ich mache es eigentlich nur, um mich ein wenig in mein System zu vertiefen.
Die Lösung Makro aufzeichnen, reicht mir nicht mehr. Vor allen Dingen gibt es bei M$ die Probleme, daß Makros aus alten Versionen (zB. Excel 5.0) zwar ins Englische übersetzt werden, beim Kompilieren aber nicht laufen.
Wenn man sich mit dem Thema nicht auseinandersetzt, dann bekommt man das nicht hin.

bei Antwort benachrichtigen