Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Was bewirkt "Dim XXX as String * 2" ?

Was bewirkt "Dim XXX as String * 2" ?
08.07.2019 19:28:14
Werner
Hallo Forum,
ich habe in einem Muster folgende Definition gefunden, die ich nicht ganz verstehe:

Dim XXX as String * 2

Mit dem "* 2" kann ich nichts anfangen. Kann mir jemand erklären, was das bewirkt?
Gruß
Werner

15
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Was bewirkt "Dim XXX as String * 2" ?
08.07.2019 19:36:10
Hajo_Zi
Hallo Werner,
der zugewiesene Wert wird auf 2 Stellen gekürzt. Einfach ausprobieren, vor Frage.

Beiträge von Werner, Luc, robert, J.O.Maximo und folgende lese ich nicht.
Die Beiträge werden auch ignoriert, es erfolgt keine Antwort.
AW: Was bewirkt "Dim XXX as String * 2" ?
08.07.2019 21:22:39
Werner
Hallo Hajo,
als "Basis-Wisser" frage ich mich, auf was ich beim Ausprobieren hätte achten sollen. Jetzt, nach dem Hinweis auf die Länge ist auch diese Frage beantwortet, und ich hätte jetzt einen Test entsprechend machen können.
Trotzdem: vielen Dank für Deine Erläuterungen. Meine Frage ist damit zu meiner vollsten Zufriedenheit beantwortet.
Gruß
Werner
Anzeige
Mensch ärgere dich nicht...
09.07.2019 10:43:17
Martin
Hallo Werner,
ich finde es lobenswert wenn sich Forenmitglieder mit der Variablendeklaration beschäftigen, denn oft genug wird ohne Option Explicit und/oder völlig fehlender/falscher Variablentypen-Zuweisung gearbeitet.
Aber bitte ärgere dich nicht über Hajo, er hat seinen Ruf weg und eckt mit allen möglichen Forenmitgliedern an. Seine Signatur sagt doch schon alles:
Beiträge von Werner, Luc, robert, J.O.Maximo und folgende lese ich nicht.
Die Beiträge werden auch ignoriert, es erfolgt keine Antwort.

Wenn du dich gerade mit der Variablendeklaration befasst: Kennst du eigentlich schon die Deftype-Anweisungen? ;-)
Viele Grüße
Martin
Anzeige
AW: Mensch ärgere dich nicht...
09.07.2019 12:42:44
Werner
Hallo Martin,
nein, diese Anweisung kenne ich (auch!) noch nicht.
Ich stecke gerade mitten in einem großen Problem und werde mich (möglicherweise) zu einem späteren Zeitpunkt damit beschäftigen.
Bisher bin ich auch ohne diese Type ausgekommen.
Trotzdem: Danke für den Hinweis.
Gruß Werner
AW: Mensch ärgere dich nicht...
09.07.2019 16:01:40
Mullit
Hallo,
da würde ich auch mal wagen zu behaupten, das Wissen davon ist auch zunächst mal zu vernachlässigen, das schränkt eher bei der Dekl. ein als das es nützt, hab ich zumindest noch nie genutzt, aber ok als Spezialwissen für Codeanalyse natürlich nicht verkehrt....
http://docs.microsoft.com/de-de/office/vba/language/concepts/getting-started/deftype-statements
Gruß, Mullit
Anzeige
...Und auch, weil es das gibt, ist die leider ...
09.07.2019 18:09:35
Luc:-?
…in VBA üblich gewordene FehlAnwendung der UN (sog ungarische Notation, Win-Variante) überflüssig. Man könnte so sogar die Typ­De­kla­ration mit der eigentlichen UN (Zweck­Kenn­zeichnung!) kombinieren, indem man mehrere Initialen für einen DatenTyp und den Ver­wen­dungs­zweck der speziellen Variable festlegt.
Gruß, Luc :-?
„Der beste Beweis für intelligentes Leben im Universum ist, dass noch niemand versucht hat, Kontakt mit uns aufzunehmen.“ H.Lesch, 2018, Sonneberg
Deshalb Intelligenz steigern mit …

Anzeige
...verstehe ich nicht ganz, Luc:-?
09.07.2019 21:45:38
Martin
Was genau meinst du mit Fehlanwendung der ungarischen Notation? Auch mir ist der Gedanke gekommen die Typ­De­kla­ration mit der eigentlichen UN zu kombinieren, wobei es aber leider zu wenigen Überschneidungen kommt (Boolean und Byte / Double und Date / Single und String).
Viele Grüße, Martin
Aha, du kennst das also, ...
10.07.2019 00:07:32
Luc:-?
…Martin,
dann wird's kürzer. ;-)
Es gibt ja bekanntlich 2 Varianten der UN, die im Sinne des Erfinders, bei der der Verwendungszweck der Variable gekennzeichnet wird, und die auf einer Fehl-Interpretation (der Windows-Pgmmierer) beruhende PrimitivVariante, bei der über­flüssigerweise der Datentyp (nochmals) gekennzeichnet wird. Beide UN-Varianten haben keinen Einfluss auf die VariablenDeklaration, sondern dienen nur der Über­sicht des Pgmmierers. Wenn man nun DefType verwendet, also mehrere Initialen für einen Datentyp festlegt, kann man je eine für einen anderen Verwendungszweck der Variablen festlegen, zB:
Initiale=Datentyp/Verwendungszweck
a-b=Boolean/allgemein
c-e=Boolean/Vergleichswerte
f-h=Integer/Vergleichswerte
i-k=Integer/Indizes (Zähler)
l-n=Long/Indizes (Zähler)
o-q=Long/allgemein
usw
Allerdings ist man bei 26 Buchstaben dann schnell am Ende, falls man nicht nur wenige Verwendungs­zwecke kennzeichnen will/muss und diese durch Groß-/KleinBuchstaben (GB/KB) unterscheiden kann. Dann muss man aber beachten, dass die nachfolgenden eigent­lichen VariablenNamen für GB/KB-Datentyp-Initiale unterschiedlich sind, weil VBA nicht case-sensitiv ist. Das setzt natürlich eine ziem­liche Disziplin voraus und ist im Grunde auch nur für autarke Projekte zu empfehlen, nicht für Pgmm/PgmTeile, die immer wieder in ver­schiedenen Projekten eingesetzt wdn sollen (Function Procedures inkl UDFs für ZellFml-Einsatz).
Luc :-?
Anzeige
AW: Aha, du kennst das also, ...
10.07.2019 07:41:11
Martin
Hallo Luc:-?,
die von dir bezeichnete "bekanntliche PrimitivVariante" der UN ist mir leider nicht geläufig. Kannst du mal ein Beispiel für eine solche doppelte Datentyp-Kennzeichnung geben?
Ich würde es ebenfalls bevorzugen wenn DefType nicht nur den ersten Buchstaben sondern bis zu drei Buchstaben unterstützen würde. Mit nur 26 Buchstaben gestaltet die sich Anwendung von Deftype in der Tat schwierig.
Viele Grüße
Martin
Na, die findet man doch ständig hier u.anderswo …
10.07.2019 15:11:42
Luc:-?
…in VBA-Pgmm, Martin,
zB loLetzte As Long, boGerade As Boolean, raBereich As Range. Wird der DatenTyp nachträglich geändert, kann die Änderung dieser Pseudo-UN-Kennung leicht vergessen wdn, so dass sie dann eine FalschInfo liefert. Das wird im bekannten WartHog-Artikel im Netz ausführlich dargestellt, zB:
https://www.herber.de/forum/archiv/1516to1520/1516175_Typen_unvertraeglich.html
https://www.herber.de/forum/archiv/1308to1312/1311944_Mehrfachselektion_von_Sheets__Zeilen_einfuegen.html
http://www.office-loesung.de/ftopic623920_0_0_asc.php
http://www.office-loesung.de/ftopic607897_0_0_asc.php
http://www.drdobbs.com/conversations-hungarian-warthogs
http://dailydoseofexcel.com/archives/2007/04/14/vba-editors
http://dailydoseofexcel.com/archives/2007/04/12/excel-vbe-multiline-search-and-replace
Luc :-?
Anzeige
AW: Na, die findet man doch ständig hier u.anderswo …
10.07.2019 15:56:56
Martin
Hallo Luc:-?
Als du "der Windows-Pgmmierer" geschrieben hattest, habe ich irrtümlicher Weise an die Microsoft-Mitarbeiter gedacht und wusste nicht was du meintest. Allerdings muss ich zugeben, dass auch ich manchmal in der Eile sehr nichtssagende Variablennamen vergebe (z.B. strTest). Es ärgert mich im Nachgang immer, wenn ich dann solchen Quark hier im Forum poste ;-)
Viele Grüße
Martin
AW: Na, die findet man doch ständig hier u.anderswo …
10.07.2019 16:08:58
Daniel
guckst du hier:
https://de.wikipedia.org/wiki/Ungarische_Notation
für kurze Beispielcodes im Forum sind die verwendeten Variablenbezeichnungen eigentlich egal, weil diese der Anwender ja sowieso in seiner eigenen Datei dann kontextbezogen und entsprechend seiner eigenen Systematik (sofern er eine hat) vergeben muss.
Gruß Daniel
Anzeige
Man kann ggf auch mit 26 bzw 52 InitBstaben …
11.07.2019 01:40:07
Luc:-?
…auskommen, Martin (& Daniel),
wenn man bedenkt, dass der eigentliche Name erst nach der Initiale kommt, den unterschiedl wählt und das nicht auch noch über die Initiale regelt. Und wenn man ein ganzes AddIn so gestaltet, kann man auch die UDFs darin einbeziehen. Nur wird es dann uU mit ihrer EinzelPublikation (zB in Foren) schwieriger. Das betrifft bei mir ohnehin schon viele ältere UDFs, wenn auch nicht aus diesem Grund… ;-)
Luc :-?
AW: Was bewirkt "Dim XXX as String * 2" ?
08.07.2019 19:50:19
onur
XXX hat immer die Länge 2 - d.h.: wenn der zugewiesene Text länger mehr als 2 Zeichen hat, wird er auf die ersten 2 gekürzt, wenn weniger als 2, werden Leerzeichen rechts angehängt, bis Länge=2.
Dim XXX as String * 3
XXX= "Hallo"
Debug.Print XXX ' Ergibt 'Hal'
XXX= "Ha"
Debug.Print XXX ' Ergibt 'Ha '

Anzeige
AW: Was bewirkt "Dim XXX as String * 2" ?
08.07.2019 21:17:26
Werner
Hallo onur,
vielen Dank für Deine Erläuterungen. Meine Frage ist damit zu meiner vollsten Zufriedenheit beantwortet.
Gruß
Werner

314 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige