2014-04-10 11 views
13

Die VBA documentation definiert das folgende Token:undokumentierte vba spezielle Schlüsselwörter - Kreis und Maßstab

special-form = “Array“/“Circle”/“Input”/“InputB”/“LBound”/“Scale”/“UBound” 

Nach dem documemtation:

A special-form is a reserved-identifier that is used in an expression as if it was a program defined procedure name but which has special syntactic rules for its argument.

Aber es gibt keine Erwähnung der Zweck dieser Schlüsselwörter, noch dort Nummer, Art der Parameter und Rückgabewerte.

Einige sind in anderen Orten dokumentiert:

  • Array mit einer variablen Anzahl von Parametern
  • Eingang und InputB eine wörtliche Array zurückgibt sind mit Leitung verwendet
  • LBound und Ubound gibt zurück prospektiv tho erste und letzte Index eines Arrays, gleich wie VB

Meine Frage ist:
Was ist der Zweck der Kreis und Maßstab und wie werden sie verwendet?

fand ich die richtige (ungerade) Syntax von Kreis, die die gleiche wie die

CIRCLE(xcenter, ycenter), radius[,[color][,[start],[end][,aspect]]] 

BASIC statement

ist und gibt keine Syntaxfehler (ich keine Erwähnung von Maßstab gefunden haben, obwohl es doesn ‚t scheinen alle Parameter zu haben), aber ich kann es nicht zu einer variablen zuweisen, und wenn ich versuche, den Code (die syntaxically korrekt) ich folgende Fehlermeldung erhalten, ist auszuführen:

Method not valid without suitable object

Code:

Sub test1() 
    Circle (5, 5), 10 
End Sub 

Sub test2() 
    Scale 
End Sub 
+2

http://msdn.microsoft.com/en-us/library/office/gg264450(v=office.15).aspx –

+8

VB erbte die ungerade Syntax von Grafik-Methoden (was Kreis/Skala sind) von QBASIC und VBA weiter geerbt sie von VB (auf dem es basiert). Vermutlich wurde entschieden, dass die speziellen Parser-Regeln für diese Konstrukte in der Laufzeit nicht entfernt werden, sondern einfacher als Noop. –

Antwort

5

VB erbte die ungerade Syntax von Grafikmethoden (was für Kreis/Skala) sind von QBASIC und VBA weiter sie von VB geerbt (auf dem es basiert). Vermutlich wurde entschieden, dass die speziellen Parsing-Regeln für diese Konstrukte in der Laufzeit nicht entfernt werden, sondern einfacher als Noop.

CREDIT Alex K. (siehe seinen Kommentar)