Unbenutzte Variablen

seid bedankt! Mztools werde ich mir anschauen, blockweises
Kommentieren finde ich nicht, auf das Mittagspausentool warte
ich, ansonsten lebe ich erstmal mit den überflüssigen
Variablen. Ist ja eh alles nicht soooo schlimm, es hätte halt
die ständige Gefahr der Verwirrung etwas gemildert.

Hi Ralf,

mztools läuft zwar auf VB5.0 und VB6.0, bei Excel aber erst ab XL2000, deshalb benutze ich es nicht.

Ein einfaches Tool um Blockweise einzurücken, auszukommentieren und die Gegenbefehle findest du in der vbeplusde.xla von hans herber.

http://www.herber.de/tools/vbeplusde.zip

Danach hast du im Editor 4 Symbole für
Einrücken
Zurückrücken***
Auskommentieren
DeAuskommentieren***

*** Wie nennt man das?

Läuft auf XL97 aufwärts. Einbinden über Extra-Add-Ins in Excel.

Das Problem mit den Variablen ist ja schon am Sonntag gelöst, wie Rainer sagte :smile:

Bis dahin könntest du als winzigen Workaround das Lokalfenster im Editor nutzen, okay, das hilft dir nur für eine Prozedur so richtig weiter, und man muß halt beobachten welche Variablen immer auf Empty bleiben. So richtig der Bringer ist es das nicht für deine Zwecke.

Oops, mir fällt grad ein, du meintest ja nicht Excel, Word oder Access, glaub.
Macht nix, dann freuen sich über meinen Beitrag vielleicht andere *lächel*

Gruß
Reinhard

Hallo Reinhard,

Das Problem mit den Variablen ist ja schon am Sonntag gelöst,
wie Rainer sagte :smile:

ähmmmm … Gaaaaanz langsam. :smile: Ich habe keinen Termin versprochen. Mir fallen immer mehr Fallen ein, in die ich da tapsen kann … Ich habe noch keine Ahnung, wann das einigermaßen zuverlässig funktioniert. Mir ist gerade eingefallen, daß ich Kommentare ja auch berücksichtigen muss …

Gruß, Rainer

Hi Rainer,

ähmmmm … Gaaaaanz langsam. :smile: Ich habe keinen Termin
versprochen. Mir fallen immer mehr Fallen ein, in die ich da
tapsen kann … Ich habe noch keine Ahnung, wann das
einigermaßen zuverlässig funktioniert. Mir ist gerade
eingefallen, daß ich Kommentare ja auch berücksichtigen muss

Mme d. kam vor etlichen Jahren auf die Idee, aus einer Glaswand, die bis zum Boden reichte, ein Fenster zu machen, damit die Eckbank davor nicht so blöd ausschaut. 6 Monate später hatte ich 600 Stunden Eigenleistung sowie Material und Fremdleistung für 80.000,- DM in meinem Goldenen Buch stehen :smile:))

Gruß Ralf

Hallo Rainer,

Das Problem mit den Variablen ist ja schon am Sonntag gelöst,
wie Rainer sagte :smile:

ähmmmm … Gaaaaanz langsam. :smile: Ich habe keinen Termin
versprochen.

Sorry, mein Fehler, da habe ich „Das wird doch ein Spiel für’s ganze Wochenende“ völlig fehlgedeutet :smile:)

Mir fallen immer mehr Fallen ein, in die ich da
tapsen kann … Ich habe noch keine Ahnung, wann das
einigermaßen zuverlässig funktioniert. Mir ist gerade
eingefallen, daß ich Kommentare ja auch berücksichtigen muss

Wieso Kommentare? meinst du das Ein/Auskommentieren oder in Bezug auf Variablenbenutzung?

Mir fielen Variablenproblematiken mit globalen Variablen ein, dazu DefType, Enum usw.
Dann die Abarten von Dim wie Public Static usw.
Redim nicht zu vergessen, sowie const.

Und wenn der untersuchende Code mit Passwort geschützt ist, muss ja das Passwort gefunden werden, gelöscht, der Code nach unbenutzten Variablen durchsucht und das Passwort wieder gesetzt werden.
Der Code dafür, grad für Excel2007 würde mich schon sehr stark interesssieren :smile:)

Btw. ich habe Code um den Code aller Module in Excel auszulesen.
Ungetestet sage ich mal, für Word,Access müßte das rel. leicht umzuändern sein.
Dann hätte mal schon alles als Array in einer String-Variablen.
Interesse?

Gruß
Reinhard

Hallo Reinhard,

ähmmmm … Gaaaaanz langsam. :smile: Ich habe keinen Termin
versprochen.

Sorry, mein Fehler, da habe ich „Das wird doch ein Spiel für’s
ganze Wochenende“ völlig fehlgedeutet :smile:)

*gg* Ich habe mich nur geirrt, das ist doch deutlich mehr, als ich im ersten Moment dachte.

Mir fallen immer mehr Fallen ein, in die ich da
tapsen kann … Ich habe noch keine Ahnung, wann das
einigermaßen zuverlässig funktioniert. Mir ist gerade
eingefallen, daß ich Kommentare ja auch berücksichtigen muss

Wieso Kommentare? meinst du das Ein/Auskommentieren oder in
Bezug auf Variablenbenutzung?

Auskommentierte Zeilen hatte ich gemeint. Steht da eine Deklaration, muss ich die ignorieren.

Mir fielen Variablenproblematiken mit globalen Variablen ein,
dazu DefType, Enum usw.
Dann die Abarten von Dim wie Public Static usw.
Redim nicht zu vergessen, sowie const.

Ja. Und die Variablen im Kopf der Prozedur oder Funktion. Das alte ‚Global‘ darf man auch noch verwenden. :smile:

Und wenn der untersuchende Code mit Passwort geschützt ist,
muss ja das Passwort gefunden werden, gelöscht, der Code nach
unbenutzten Variablen durchsucht und das Passwort wieder
gesetzt werden.

Passwortgeschützter Code?

Der Code dafür, grad für Excel2007 würde mich schon sehr stark
interesssieren :smile:)

Ich versuche mich erst mal an VB6. :smile:

Btw. ich habe Code um den Code aller Module in Excel
auszulesen.
Ungetestet sage ich mal, für Word,Access müßte das rel. leicht
umzuändern sein.
Dann hätte mal schon alles als Array in einer
String-Variablen.
Interesse?

Noch nicht. Lass mich erst mal mit VB6 voran kommen. Bisher habe ich noch nicht mal die Liste der verwendeten Variablen innerhalb einer Form. An das ganze Projekt ist noch nicht zu denken und die Auswertung habe ich noch gar nicht angefangen. :smile: Erst wenn ich das fertig habe denke ich mal über VBA nach.

Gruß, Rainer

Hallo Rainer,

*gg* Ich habe mich nur geirrt, das ist doch deutlich mehr, als
ich im ersten Moment dachte.

ja, habe da auch mal darüber so rumgedacht und ein bißchen probiert,
und vom Grundproblem her schon lösbar, aber unheimlich aufwendig alle möglichen Konstellationen richtig auszulesen, sind zwar nur Strings, aber die Problematiken addieren sich.

Eine ist, daß da eine marode Sub vorliegt, es also gar kein End Sub gibt!?

Oder, in einer Zeile stehen mehrere Anweisungen.

Und dies, das, jenes, das läppert sich aufwandsmäßig.

Mir fallen immer mehr Fallen ein, in die ich da
tapsen kann … Ich habe noch keine Ahnung, wann das
einigermaßen zuverlässig funktioniert. Mir ist gerade
eingefallen, daß ich Kommentare ja auch berücksichtigen muss

Wieso Kommentare? meinst du das Ein/Auskommentieren oder in
Bezug auf Variablenbenutzung?

Auskommentierte Zeilen hatte ich gemeint. Steht da eine
Deklaration, muss ich die ignorieren.

Scheint einfach, aber was wenn das Hochkomma irgendwo in der Zeile steht.

Oder auch, Ralf hat „Rem“ benutzt.

Oder auch, gibt ja Tools dafür, die CodeZeilen wurden nummeriert,
da sieht man mit If left(x,1)="’" then schlecht aus.

Mir fielen Variablenproblematiken mit globalen Variablen ein,
dazu DefType, Enum usw.
Dann die Abarten von Dim wie Public Static usw.
Redim nicht zu vergessen, sowie const.

Ja. Und die Variablen im Kopf der Prozedur oder Funktion. Das
alte ‚Global‘ darf man auch noch verwenden. :smile:

Jaaaaa, ich fand gleich ein WE als sehr knapp eingeschätzt :smile:

Und wenn der untersuchende Code mit Passwort geschützt ist,
muss ja das Passwort gefunden werden, gelöscht, der Code nach
unbenutzten Variablen durchsucht und das Passwort wieder
gesetzt werden.

Passwortgeschützter Code?

Ja, in VBA, im Editor Rechtsklick auf das Projekt, irgednwo da unter Eigenschaften–Schutz kann man es schützen, also der Code ist dann nicht sichtbar.
Naja, MS-Schutz, mit einem Editor hast das binnen ner Minute oder 2 beseitigt.

Der Code dafür, grad für Excel2007 würde mich schon sehr stark
interesssieren :smile:)

Ich versuche mich erst mal an VB6. :smile:

Schad :frowning:

Btw. ich habe Code um den Code aller Module in Excel
auszulesen.
Ungetestet sage ich mal, für Word,Access müßte das rel. leicht
umzuändern sein.
Dann hätte mal schon alles als Array in einer
String-Variablen.
Interesse?

Noch nicht. Lass mich erst mal mit VB6 voran kommen.

Mir wurscht, habe alten Code ausgepackt, damit experimiert und kam auf was schnelles schlankes um Module auszulesen, was ich vorher noch nicht hatte.
Steht im Anhang.

Kennst du dich mit #If aus? Ich kann zwar mit
#If VBA60=0
ermitteln ob Excel 97 oder höher vorliegt, das klappt,
aber wie bekomme ich heraus ob ein Code in Word oder Excel gestartet wird um dementsprechend kompilieren zu lassen
„Word“ bzw. „Excel“ wird bei Eingabe „erkannt“, also aus excel wird Excel, also muß es eine bekannte Konstante sein, aber ich kanns nicht auswerten, egal mit Excel=0, Excel is empty o.ä.
Ich denke, du siehst in den Codes besser was ich meine *gg*

Bisher
habe ich noch nicht mal die Liste der verwendeten Variablen
innerhalb einer Form.

Ja und, das war Samstag :smile:

An das ganze Projekt ist noch nicht zu
denken und die Auswertung habe ich noch gar nicht angefangen.

-) Erst wenn ich das fertig habe denke ich mal über VBA nach.

Nix da, Sonntag 23:59 ist Abgabetermin … *lächel*

Gruß
Reinhard

Option Explicit
'#If Not Word Is Empty Then
’ Const g = „ja“
'#Else
’ Const g = „nein“
'#End If

Sub Module3() 'für Word
' verweis auf MS Visual basic for application extensibility setzen
' bei XL97 nicht Version 5.3 nehmen!, Bei Word97 doch 5.3 !?
Dim N As Long, VBComp As VBComponent, Dok As Document
'Set Dok = Documents("Normal.dot") 'klappt nicht, ungültiger Name ?
Set Dok = ThisDocument
'Set Dok = ActiveDocument
With Dok.VBProject.VBComponents
 ReDim Satz(.Count - 1) As String
 For N = 1 To .Count
 Satz(N - 1) = .Item(N).CodeModule.Lines(1, .Item(N).CodeModule.CountOfLines)
 Satz(N - 1) = .Item(N).Name & vbLf & Satz(N - 1)
 Next N
End With
For N = 0 To UBound(Satz)
 MsgBox Satz(N)
Next N
End Sub
'
Sub Module3() 'für Excel
' verweis auf MS Visual basic for application extensibility setzen
' bei XL97 nicht Version 5.3 nehmen!
Dim N As Long, VBComp As VBComponent, Wkb As Workbook
Set Wkb = Workbooks("PERSONL.XLS")
With Wkb.VBProject.VBComponents
 ReDim Satz(.Count - 1) As String
 For N = 1 To .Count
 Satz(N - 1) = .Item(N).CodeModule.Lines(1, .Item(N).CodeModule.CountOfLines)
 Satz(N - 1) = .Item(N).Name & vbLf & Satz(N - 1)
 Next N
End With
End Sub

Lösung unbenutzte Variablen anzuzeigen AccessVba

seid bedankt! Mztools werde ich mir anschauen, blockweises
Kommentieren finde ich nicht, auf das Mittagspausentool warte
ich, ansonsten lebe ich erstmal mit den überflüssigen
Variablen. Ist ja eh alles nicht soooo schlimm, es hätte halt
die ständige Gefahr der Verwirrung etwas gemildert.

Hallo Ralf,

unter XL2003 und Access2003 gibts im Editor unter AndereHilfsmittel–Projektübersicht o.ä. dann so ein Bildchen, sogar in Farbe :smile:

http://www.hostarea.de/server-03/Maerz-d946721f9c.jpg

Und irgendwo wirste ja einen 2003 Rechner finden.

Und, blockweises Kommentieren findest du unter Anpassen… der Symbolleiste, wo genau da weiß ich nicht, ich klicke immer solange durch bis ichs finde, genau wie Kamera usw. *gg*

Gruß
Reinhard

Nachtrag zur Lösung
Hallo,

es nennt sich „Übersicht: Programmcode“, wie hier ersichtlich:

http://www.hostarea.de/server-03/Maerz-a0ef99b2bf.jpg

Gruß
Reinhard

Hallo,

Hallo Reinhard,

und genauso schaut MZ TOOLS aus …

MfG Alex

Hallo Alex,

und genauso schaut MZ TOOLS aus …

aha, da haben wir wieder so einen tragischen Fall, MZ hat dem armen Programmierer Bill die Idee geklaut, genauso wie damals Apple mit der Fenstertechnik.

Schon tragisch mit Bill, man müßte für ihn sammeln gehen :smile:))

Gruß
Reinhard

MfG Alex