PDA

Vollständige Version anzeigen : Saschas "Prozedur-Browser für VBA"


Sascha Trowitzsch
03.02.2004, 12:31
<table width="95%" border="0" cellpadding="4" cellspacing="1" class="tabletext"> <tr> <td width="13%" valign=top class="tablehead2"> <p class="tabletext">Name des Produkts:</p></td> <td width="30%" valign=top class="tablehead3"> <p class="tabletext">ProcBrowser f&uuml;r VBA6</p></td> </tr> <tr> <td valign=top class="tabletext2">(Evtl. Kommerzielle) Beta-Version?</td> <td valign=top class="tabletext3">Nein</td> </tr> <tr> <td valign=top class="tabletext2">Art des Produkts:<br> (Anwendung, AddIn, Tool o.&auml;.)</td> <td valign=top class="tabletext3">ComAddin f&uuml;r Visual Basic For Applications (VBA6)</td> </tr> <tr> <td valign=top class="tabletext2">Programmautor:</td> <td valign=top class="tabletext3">Sascha Trowitzsch (http://www.ms-office-forum.net/forum/member.php?s=&action=getinfo&userid=16246)</td> </tr> <tr> <td valign=top class="tabletext2">Aktueller Versionsstand:</td> <td valign=top class="tabletext3">1.5.7</td> </tr> <tr> <td valign=top class="tabletext2">Downloadgr&ouml;&szlig;e:</td> <td valign=top class="tabletext3">ca 1.1 Mb</td> </tr> <tr> <td valign=top class="tabletext2">Vorgesehen(e) Betriebssystem(e):</td> <td valign=top class="tabletext3">W98 / W2k /WMe /WXP /W2003</td> </tr> <tr> <td valign=top class="tabletext2">Vorgesehene Office-Version(en):</td> <td valign=top class="tabletext3">Alle ab O2000</td> </tr> <tr> <td valign=top class="tabletext2">Andere Systemvoraussetzungen:</td> <td valign=top class="tabletext3">-</td> </tr> <tr> <td valign=top class="tabletext2">Installationshinweise:<br> (Art des Setups etc.)</td> <td valign=top class="tabletext3">Siehe Webpage </td> </tr> <tr> <td valign=top class="tabletext2">Zielgruppe:</td> <td valign=top class="tabletext3">VBA-Entwickler</td> </tr> <tr> <td valign=top class="tabletext2">Enth&auml;lt das Produkt den Quellcode?</td> <td valign=top class="tabletext3">Nein</td> </tr> <tr> <td valign=top class="tabletext2">Mit welchem Entwicklungswerkzeug wurde es genau erstellt?<br> (Mit Versionsangabe)</td> <td valign=top class="tabletext3">Visual Basic 6 (SP6)</td> </tr> <tr> <td valign=top class="tabletext2">Webseite:</td> <td valign=top class="tabletext3">http://www.moss-soft.de/public/procbrowser</td> </tr> <tr> <td valign=top class="tabletext2">Download unter:</td> <td valign=top class="tabletext3">Webseite</td> </tr> <tr> <td valign=top class="tabletext2">Bisher getestete Konfigurationen:</td> <td valign=top class="tabletext3">W2k, WinXP, Vista; O2k SP3, OXP SP3, O2k3 SP3, O2k7 SP1</td> </tr> <tr> <td valign=top class="tabletext2">Kurzbeschreibung:</td> <td valign=top class="tabletext3">Das Addin klinkt sich nach Installation in die VBA-Entwicklungsumgebung ein und stellt &auml;hnlich dem Projektexplorer eine Liste der Prozeduren des aktiven Code-Moduls zur Verf&uuml;gung, mit der man schneller in gr&ouml;&szlig;eren Modulen navigieren kann.</td> </tr> <tr> <td valign=top class="tabletext2">Testziel: <br> In welcher Hinsicht und unter welchen Bedingungen soll das Produkt getestet werden?</td> <td valign=top class="tabletext3">- Auf Funktionalit&auml;t in m&ouml;glichst unterschiedlichen Betriebssystem/-Officekonfigurationen testen.<br> - Absturzsicherheit.<br> - Vorschl&auml;ge bzw. Kritik zur Benutzerf&uuml;hrung</td> </tr></table>

Sascha Trowitzsch
03.02.2004, 12:38
Ein Jahr nach meinem W32API-Plugin wird es mal wieder Zeit für ein neues VBA-Addin. Mal sehen, ob diese Release stabiler läuft als das damalige Addin... ;)

Grüße, Sascha

Manuela Kulpa
03.02.2004, 13:57
Hallo Sascha,

mein erster Eindruck *uihuihuih*, was für ein geniales Add-In :biggrinl:. Vor allem für die Formcodes sehr hilfreich :10points: .

Meine ersten Tests unter Access XP und 2003 / Windows XP SP1 sind einwandfrei verlaufen. Keine Probleme mit der Installation und dem Start des Add-In's. Refresh, Autotrack und Tiptext ein/aus funktioniert ohne Probleme. Das Entladen läuft sauber (so weit ich das überblicken kann).

Kleiner Vorschlag/Anregung, wenn es sich realisieren lässt:

Besteht vielleicht auch die Möglichkeit die Declares bzw. die globalen Variablen/Konstanten/Types etc. pp. mit aufzuführen?

Ich werde dein Add-In zukünftig nicht mehr missen wollen!

Super & tausend http://www.ms-office-forum.net/forum/images/5stars.gifhttp://www.ms-office-forum.net/forum/images/5stars.gif dafür

Sascha Trowitzsch
03.02.2004, 15:44
Thanx Manuela,

soviele Sterne hab ich ja noch nie gekriegt! :angel:

Dafür baue ich die Geschichte mit dem Deklarationsteil auch noch ein ;)
(Hatte mir das ohnehin überlegt. Im Quellcodeanalysemodul des Addins ist der entsprechende Abschnitt schon drin, weil das Modul auch für andere Zwecke/Addins eingesetzt wird. Dieser Analyseteil war auch das Aufwändigste und das ist auch der Grund, warum ich den Quellcode nicht mitliefere :cool: )

Das Tooltipp muss auch noch so verändert werden, dass es die komplette Deklaration mehrzeilig anzeigt, was es aktuell nicht tut (bei Zeilenfortführung).

Ein paar Tage Geduld bitte.

Gruß, Sascha

J_Eilers
03.02.2004, 17:40
Hi Sascha,

auch von mir ein *Hut ab* sehr gut und nützlich! Getestet (heute) unter WinXP SP 1 und AXP. Fehler keine
Habe auch noch die MZTools nebenbei am Laufen und es kam zu keinen Fehlermeldungen oder Konflikten.

Werde es morgen unter 2K mal testen und Feedback geben. Ist zu den MZTools eine wahre Bereicherung, da das Mausrad unter VBA ja auch nicht funktioniert.

Neben dem von Manuela angesprochen wäre für den Installer eine Progressbar perfekt ;) :10points:

TommyK
03.02.2004, 19:10
Hallo Sascha,

ich muß mich unbedingt der Meinung von Manuela anschließen.
Klasse :top: :10points:

Mit den Declares usw. das wäre schon nicht schlecht.

Es läuft bei mir unter WinXP Home SP1a mit A00 und AXP.

Ein kleiner Fehler trat aber auf, wenn ein Modul, Form oder Bericht aufgerufen wurde, das früher mal Code enthielt der aber komplett gelöscht wurde, einschließlich der Zeile:
Option Compare Database
Dann kam diese Fehlermeldung:

TommyK
03.02.2004, 19:12
@Jan

da das Mausrad unter VBA ja auch nicht funktioniert.

wieso geht bei Dir das Mausrad unter VBA nicht, bei mir geht es unter A97, A00 und AXP.

J_Eilers
03.02.2004, 22:59
@Tommy Keine Ahnung, es will einfach nicht. Sowohl zu Hause (MX700), als auch auf der Arbeit (Microsoft Optical). Hab auch leider bisher noch keine Option gefunden, wo ich das anschalten kann. Überall sonst funktioniert es.

Sascha Trowitzsch
03.02.2004, 23:22
Da ist er nicht allein. Mit den meisten Maustreibern funktioniert es nicht. Bei meiner Logitech auch nicht.
Für VB gibt es ein Addin, das per Subclassing das Wheelscolling umsetzt. In VBA geht es leider nicht, weil das VBIDE-Objektmodell etwas von dem in VB abweicht und einige Ereignisse fehlen.

Ähh, das ist OT!!! Bitte woanders über Mäuse weiterdiskutieren.

Ciao, Sascha

J_Eilers
04.02.2004, 07:29
Morgen,

auch unter Win2K SP4 und A2K SR1 mit MZTools VBA 3.0 keine Probleme und eine echte Bereicherung.

Was mir hier bei meiner jetzigen Anwedung auffällt ist ein evtl Vorschlag.
Da ich keine Ahnung habe, ob sich so etwas umsetzen läßt :rolleyes:
Könnte man zusätzlich zu den Sub's und Functions auch noch Textmarken einfügen? Also quasi wie unter Word eine Stelle im Code als Marke setzen und im Browser diesen als Hyperlink einfügen? Denn teilweise sind meine Codes relativ lang und einzelne Abschnitte sind mit Kommentaren am Anfang versehen, wofür das steht. Wenn ich hier noch schneller an die entsprechende Stelle kommen würde wärs einfach genial. :D

Sorry wegen den Mäusen ;)

EDIT: Zeile 20 Error 380 (Invalid Property Value) in Prozedur UserDocument_Resize, Beutzerdokument ToolDoc

Das passierte, als ich eine andere Anordnung ausprobieren wollte. Projektexplorer links, Direktfenster oben, Code mitte und dein Browser rechts. Ausserdem scheint das automatische Ausrichten nicht so ganz zu wollen, wenn mehr als 2 Fenster geöffnet sind.

Sascha Trowitzsch
04.02.2004, 17:18
Danke vorerst für Zuspruch und die Fehlermeldungen.

Wird zu lösen sein ;) (Wobei Tommys Problem schwer zu debuggen ist, weil es bei mir mal ebenfalls auftaucht, mal nicht. Leider kann ich das Addin nicht direkt debuggen, weil mir Access komischerweise dabei abstürzt. War sonst noch nie so.)

Die Geschichte mit den Textmarken werde ich wohl nicht in dieses Addin einbauen - dazu ist diese Funktion zu weit vom eigentlichen Ansinnen des Addins entfernt. Der andere Grund ist, dass ich sowas schon in einem anderen Addin untergebracht, bisher aber noch nicht veröffentlich habe.
Vielleicht kommt das zu gegebener Zeit noch.

Ach ja, das Positionieren des Addins: Darauf habe ich keinen Einfluss. Es verhält sich genauso, wie jedes andere dockende Addin (z.B. Objektkatalog.) Dieses Verhalten steuert die VBE-Umgebung selbst.

Gruß, Sascha

Stefan Kulpa
04.02.2004, 17:37
Komme leider erst jetzt dazu mal reinzuschauen ... etwas stressig zur Zeit (meine DLL ruht z.Zt. auch).

Also: top :top:

An ein AddIn habe ich mich noch nicht gewagt, obwohl ich das schon länger vor hatte.

2 Dinge vielleicht:

Die Tooltips sind alle gleich lang - gewollt? Etwas tricky sind die Umbrüche in den Parametern, da hier der Tooltip-Text beim ersten _ aufhört. :cool:

Die Hierarchie im Projektfenster zeigt immer das Projekt selbst und darunter lediglich das gerade gewählte Modul. Würde es vielleicht Sinn machen, alle Module anzuzeigen? Einerseits spart man sich das Wechseln in den "echten" Projektbaum, andererseits wäre das aber auch redundant ... hmm, vielleicht doch keine so gute Idee :rolleyes:

vg - Stefan

Sascha Trowitzsch
04.02.2004, 18:27
@Stefan:
Das mit dem Tooltipp hatte ich oben schon erwähnt:
Das Tooltipp muss auch noch so verändert werden, dass es die komplette Deklaration mehrzeilig anzeigt, was es aktuell nicht tut (bei Zeilenfortführung).

Das Addin befindet sich noch in recht frühem Entwicklungsstadium - ich hab es ohne zu zögern hier reingestellt, obwohl ich wusste, dass noch diverses in Argen liegt. Wollte aber einfach mal sehen, wie die Reaktion ist und ob Bedarf dafür da ist ;)

Das mit dem vollständigen Projekt und allen Modulen hatte ich mir auch überlegt, fand es dann aber auch redundant. (Andererseits wäre es dann aber auch ein vollständiger Ersatz für den Projektexplorer, den man dann ausblenden könnte.) Das Problem ist hierbei aber auch, dass dann der gesamte Quellcode des Projekts dauernd im Hintergrund gescannt werden müsste, was auf die Performance geht. Im Moment läuft ein Timercode im Addin, der Änderungen registriert. In VB wäre es übrigens einfacher, weil beim Öffnen eines neuen Codefensters ein Ereignis in der VBIDE ausgelöst wird - in VBA blöderweise nicht. (Keine Ahnung, warum MS hier das Objektmodell abgeändert hat...)

An ein AddIn habe ich mich noch nicht gewagt, obwohl ich das schon länger vor hatte.
Wenn man den Trick mal raushat, dann ist es einfach und mit einem simplen benutzerdefinierten Addin-Template schnell erstellt.
Das Problem ist wohl, dass MS die Geschichte mit den dockenden Toolwindows außerordentlich spärlich dokumentiert hat (CreateToolWindow). Auch im Internet findet man sehr wenig dazu.

Für VB6 wäre das Addin auch ganz nützlich, oder? Im Prinzip ließe es sich leicht übertragen, es kommen aber neue Probleme hinzu, weil es in VB weit mehr Modularten im Projekt gibt. (...und Recourcendateien etc. ...)

Gruß, Sascha

Sascha Trowitzsch
07.02.2004, 12:52
Neue Version ist draußen!
(Die Webpage ist inhaltlich aber noch nicht aktualisiert.)

Wer das Addin bereits runtergeladen hat, der kann auch nur die zuständige DLL ersetzen und neu registrieren:
http://www.moss-soft.de/public/procbrowser/procbrowser.dll

- Bugs gefixt, die noch keiner bemerkt hat ;)
- Bug bei manchen Größenänderungen gefixt (s. Jan)
- Bug bei "geleertem" Formularcode gefixt (s.Tommy)
- Addin ließ sich nicht in englischer VBA-Ungebung installieren bzw. Fehlermeldung > gefixt
- Tooltipp zeigt jetzt komplette Deklaration auch mehrzeilig
- Tooltippfenster passt sich in der Größe dem Text an

- Deklarationsbereich mit ins Treeview aufgenommen.

Mit Letzterem sind diverse neue Icons dazugekommen, die aber wohl selbsterklärend sind.
Konstanten hab ich außen vor gelassen, weil das IMHO nicht so wichtig ist und den Baum unnötig verlängert und damit unübersichtlicher gemacht hätte.

Ciao, Sascha

PS: Habe mir überlegt, ob es sinnvoll wäre, den Geltungsbereich der Deklarationen mit im Baum darzustellen. Z.B. dass bei Publics/Globals der Text eine andere Hintergrundfarbe hat, als bei Privates. Oder wird das zu bunt?

Manuela Kulpa
08.02.2004, 08:43
Guten morgen Sascha!

Erstmal Dankeschön, fürs neue Add-In :knuddel: ! Funktioniert prächtig bis auf eine kleine Geschichte ...

Sobald Objekt-Variablen global deklariert sind wie z.B.:

<div><link href="http://www.ms-office-forum.net/forum/externals/codeconv.css" rel="stylesheet"><pre><span class="REM">'// Objektvariablen</span>
<span class="TOKEN">Public</span> gDbs <span class="TOKEN">As</span> DAO.Database
<span class="TOKEN">Public</span> gRst <span class="TOKEN">As</span> DAO.Recordset
&nbsp;
<span class="TOKEN">Public</span> gRpt <span class="TOKEN">As</span> Access.Report
<span class="TOKEN">Public</span> gFrm <span class="TOKEN">As</span> Access.Form
<span class="TOKEN">Public</span> gFrmSub <span class="TOKEN">As</span> Access.Form
<span class="TOKEN">Public</span> gCtl <span class="TOKEN">As</span> Access.Control</pre></div>
Code eingefügt mit dem MOF Code Converter (http://www.ms-office-forum.net/forum/codeconverter.php)

erscheint unten stehende Fehlermeldung. Nach Bestätigen dieser, wird das jeweilige Modul nicht mehr gescannt.

PS: Habe mir überlegt, ob es sinnvoll wäre, den Geltungsbereich der Deklarationen mit im Baum darzustellen. Z.B. dass bei Publics/Globals der Text eine andere Hintergrundfarbe hat, als bei Privates. Oder wird das zu bunt? Och, fänd ich noch als Schmankle ideal :biggrinl:.

Lieben Gruß

Manuela Kulpa
08.02.2004, 09:05
Nachtrag:

Sorry, muss meine Aussage revidieren ;). Es liegt nicht an den Objekt-Variablen, sondern an der Formatierung des Codes, wenn Tabs bzw. Leerschritte bei der Deklaration eingesetzt werden. Z.B.:

<div><link href="http://www.ms-office-forum.net/forum/externals/codeconv.css" rel="stylesheet"><pre><span class="TOKEN">Public</span> gTest1 <span class="TOKEN">As</span> <span class="TOKEN">String</span>
<span class="TOKEN">Public</span> gTest2 <span class="TOKEN">As</span> <span class="TOKEN">Long</span>
<span class="TOKEN">Public</span> gTest3 <span class="TOKEN">As</span> <span class="TOKEN">Boolean</span></pre></div>
Code eingefügt mit dem MOF Code Converter (http://www.ms-office-forum.net/forum/codeconverter.php)

Gruß

Sascha Trowitzsch
08.02.2004, 14:59
Thanx Manuela,

ist einfach cool mit dem Testzentrum... auf die Fehler mit den Tabs in den Deklarationen wäre ich selbst nicht gekommen, weil's bei mir solche Formatierungen nicht gibt! ;)
(Hab' da Anderes in SmartIdent eingestellt.)

Das ist jedenfalls nun gefixt und außerdem noch ein Bug, wenn Zeilenfortführung innerhalb eine Variablendeklaration stattfand; so in der Art:


Private rs As DAO.Recordset, objExc _
As Excel.Application
Dim nix As mossSOFT.Nix


Die farbliche Unterscheidung des Gültigkeitsbereiches ist nun auch eingebaut. Schöner ist es dadurch nicht geworden, aber vielleicht nützlicher.

Neue Version nach wie vor
http://www.moss-soft.de/public/procbrowser/procbrowser.dll
für alle, die es bereits installiert haben (s.o.)

Gruß, Sascha

J_Eilers
09.02.2004, 07:43
Hi,

also bisher noch keine Fehler auf beiden Rechnern. :top: Über die Farbe kann man zwar streiten, aber hauptsache ein bissel Farbe ist drin ;)

TommyK
09.02.2004, 09:16
Hallo Sascha,

auch bei mir jetzt ohne Fehler. :top:

Mir war der Fehler von Manuela auch nicht aufgefallen, da ich so nicht schreibe.

Sascha Trowitzsch
09.02.2004, 13:48
Thanx @All!

Hab jetzt noch was geändert:

Die Optionen zum Autotracking und Tipptext sind in ein Kontextmenü des Treeview ausgelagert worden.
Da kann man jetzt auch den Farb-Background der Einträge aus-/einschalten und außerdem die Refreshrate in ms für das Scannen des Quelltextes bei Umschalten der Module einstellen.

Ciao, Sascha

J_Eilers
09.02.2004, 14:42
Hi Sascha,

habe es jetzt auf 2 Rechnern am Laufen: Win2K SP4 und A2K SR1 mit MZTools VBA 3.0

Bei dem 1. Rechner installiert und läuft ohne Fehler.

Auf dem 2. installiert. Hatte aber leider noch Access auf. Also geschloßen und neu aufgemacht, um zu sehen ob alles läuft...
Fehlermeldung: Zeile 40 Error 91(Object variable or With block variable not set) in Prozedir but Refresh_Click, Benutzerdomukent ToolDoc.


Habe die Datei gelöscht, in der Systemsteuerung entfernt, aber bekomme sie nicht installiert :(

Ideen?

Sascha Trowitzsch
09.02.2004, 15:47
Wenn du die neue DLL benutzt, so sollte sie jedesmal auch neu registriert werden. (regsvr32 x:\xyz\procbrowser.dll)

Das ist aber wohl nicht das Problem bei dir, denn das Addin wird ja geladen. Weiß nicht so genau, wieso dieser Fehler bei dir auftritt, aber versuch es mal mit dieser modifizierten Fassung...
http://www.moss-soft.de/public/procbrowser/procbrowser.dll

Gruß, Sascha

J_Eilers
10.02.2004, 07:23
So,

also regsvr hatte ich gestern auch ausgeführt. Heute noch mal neu runtergeladen und neu registriert. Nun funktionierts erstmal. Dankeschön!

heini
11.02.2004, 07:27
Guten Morgen Sascha!

Bei mir läuft das Tool einwandfrei auf 2 Rechnern
(Win2k SP2, Office 2k ; Win2k Server Office 97)

Da hast Du wirklich ein super Tool gebaut :top:
Auch von mir bekommst Du 5* :biggrinl:

MRR
12.02.2004, 11:33
Hi Sascha,
ich muss mich doch jetzt auch den Kommentaren meiner Vorredner anschließen. Das Teil ist einfach Klasse - man wird sich ein Arbeiten ohne dieses AddIn gar nicht mehr vorstellen wollen (oder können). Einfach super, was da entstanden ist!
Bei läuft es bisher unter W2K mit SP4 im Betrieb mit Office XP SP-2 einwandfrei.
Von mir gibt es 7 Sterne! :dance:

Wäre es ggf. denkbar, die aufgelisteten Prozedure, Funktionen etc. zu sortieren (z.B auch über Kontextmenü ein- und ausschaltbar)? Derzeit wird die Liste und der physikalischen Reihenfolge präsentiert. Manche Prozeduren suche ich ggf. aber nach dem Namen, was mich dann doch wieder auf die schon vorhanden Liste zurückbringt. Vielleicht für ein überübernächstes Release ;)

LG, Matthias

Sascha Trowitzsch
14.02.2004, 13:47
So, nun ist die Final Version draußen. (Falls sich nicht noch was Schwerwiegendes ergeben sollte.)

Die Webpage ist deshalb auch aktualisiert.

Die Sortierung der Einträge gemäß dem Vorschlag von MRR habe ich noch zusätzlich implementiert.

Fröhliches Arbeiten!

Und Dank an alle Tester, ciao, Sascha

(PS: 19:40: Bei abschließendem "Stresstest" in der Knowhow.mdb 3.0 ergaben sich doch noch Fehler bei exotischer Formatierung des Quelltextes, die sogar zu Absturz von Access führten. Das ist jetzt ebenfalls bereinigt.)

steffenjr
14.02.2004, 13:55
Hi Sascha

Ich kann auch nur sagen " das Teil ist super "
Läuft einwandfrei unter WXP O2000/xp

Dickes Lob

Mit freundilchen Grüssen
Steffen Ludwig

MRR
17.02.2004, 10:31
Hi Sascha,
seit kurzer Zeit erhalte ich (unter Word, wenn ich den Quellcodeformatter im VBA-Editor offen habe) nachfolgend angehangene Fehlermeldung.
Wie bekomme ich diese weg - und was hat sie mir zu sagen? Es scheint mit der Deklaration von dimensionierten Arrays zu tun zu haben.

Sascha Trowitzsch
19.02.2004, 13:49
In der Analyse des Quelltextes gab es tatsächlich einen Fehler bei Array-Deklarationen mit fester Dimensionierung.
Das ist nun ebenfalls gefixt.
Thanx an MRR.

Ciao, Sascha

Sascha Trowitzsch
23.02.2004, 10:45
MRR schafft es, immer wieder neue Bugs im Addin zu entdecken ;)

Ich hoffe trotzdem, dass ich die nun alle gefixt habe und empfehle Interessierten, umgehend die neue Version runterzuladen.

Ciao, Sascha

Sascha Trowitzsch
13.04.2004, 11:16
Sorry @all, die das Addin benutzen:

Es hatte sich ein "Feature" ;) eingeschlichen, das das Addin am 8.04. wegen abgelaufener Betaphase deaktiviert. Das war so nicht intendiert. :D

Eine neue Version ohne dieses Feature und unbeschränktem Zeitraum ist online (s. oben).

Es gibt übrigens noch weitere Änderungen: Das Kontextmenü ist umgestaltet und enthält nun zwei zusätzliche Einträge zum Kopieren in die Zwischenablage und Löschen einer einzelnen Prozedur.

Gruß, Sascha

J_Eilers
13.04.2004, 11:32
So also auf WinXP und AXP bisher noch kein Fehler, aber vielleicht solltest du an eine Umbenennung in Prozedur-Commander-Addin denken ;) SCNR

motdeadcow
27.04.2004, 22:23
Hallo Sascha,

Das Tool ist erste Sahne,

Es läuft problemlos unter win2000 mit Acc2000,Acc2002,Acc2003
und unter win XP mit Acc2000,Acc2002,Acc2003

der Liebe Gott möge dir ein langes Leben schenken ;-)

Mfg

motdeadcow

Sascha Trowitzsch
04.09.2004, 19:00
Kleines Update ist geschehen:

- Bei Anweisungen zur Bedingten Kompilierung (#Const ... #If ...#Else ...#End If) zeigte der ProcBrowser ein falsches Ergebnis und kam mit den Zeilen durcheinander. Dieser Bug ist gefixt.
- Bei REM am Anfang von Zeilen blieb der Browser hängen bzw. Access stürzte ab. (Bei A2000; nicht AXP, A2003). Ist gefixt
- Zusätzlicher Menüpunkt ins Kontextmenü integriert: "Prozedur ausführen": Die markierte Prozedur wird ausgeführt, wobei sich ein Dialogfeld öffnet, falls die Prozedur die Übergabe von Parametern erwartet.

Gruß, Sascha

Nouba
06.09.2004, 17:36
Hallo Sascha,

ich habe habe noch einen Feature/Options-Wunsch. Damit es nicht so hektisch im VBA-Editor zugeht, wäre es mir recht, wenn eine Option im Sinne von "nur bei Klick auf Node, Editor-Darstellung aktualisieren" vorhanden wäre. Denn beim Anpeilen einer Node muß man ja fast zwangsläufig auch andere Nodes mit der Maus "berühren".

Sascha Trowitzsch
06.09.2004, 18:56
Kontextmenü > Optionen > Autotrack > Häkchen deaktivieren! ;)
(Oder meinst du was anderes...?)

Gruß, Sascha

Nouba
06.09.2004, 19:07
Danke Sascha,

manchmal sieht man den Wald vor lauter Bäumen nicht.

SNowack
20.10.2004, 10:18
Hallo Sascha,

ich schließe mich den Meinungen an, wirklich ein SUPER-Tool!

Einen kleinen Bug habe ich da: Bei eingeschalteten Tool kann man keine "Ersetzung" (Bearbeiten/Ersetzen) durchführen.

Gruss Stefan

Sascha Trowitzsch
20.10.2004, 10:58
Bei eingeschalteten Tool kann man keine "Ersetzung" (Bearbeiten/Ersetzen) durchführen.??
Wie, du kannst über "Bearbeiten"..."Ersetzen..." keine Suche/Ersetzung durchführen? Ich hab da keine Probleme. Was passiert denn genau bei dir?

Gruß, Sascha

SNowack
20.10.2004, 12:01
Sorry, mein Fehler! Scheinbar bin ich beim Ersetzen auf Deinen Browser gekommen, wodurch die Prozedur gewechselt wurde...

Gruss Stefan

Sascha Trowitzsch
20.10.2004, 13:59
Ok, war schon besorgt. Am besten das Autotracking im ProcBrowser ausschalten ;)

Ciao, Sascha

CHF
26.04.2005, 10:09
Hi Sascha,

so, habe das AddIn mal unter Word2000-SP3 unter Windows2000-SP4 installiert und es tut sich irgendwie nischt ;)

Ok, konkret:
das Projekt wird namentlich korrekt erkannt und genannt, aber es wird nicht darunter angezeigt.
Wenn ich auf refresh klicke, werden ganz kurz zwei Nodes eingeblendet, die aber sofort wieder verschwinden:
- Declares
- Body

Des weiteren erhalte ich die Fehlermeldung:
Zeile 80: Error 35601 (Element nicht gefunden) in Prozedur menSort_Click, Benutzerdokument ToolDoc
wenn ich in den Optionen auf "Liste sortiert" klicke.

Auch der Punkt "Hilfe" bewirkt nichts.

Als Installation habe ich die erste genommen, da ich alle OCX auf dem Rechner hier habe (werde es aber noch mal testen).
Weitere AddIns:
MZTools,
ApiViewer

Wenn Du weitere Infos brauchst melde dich bei mir.

Sascha Trowitzsch
27.04.2005, 09:22
Danke für's Feedback!

Der Menüpunkt "Hilfe" bewirkt tatsächlich nichts. ;) Es war zwar ursprünglich beabsichtigt, dabei eine Hilfedatei aufzurufen, das wurde indessen nie realisiert.

Ich - und auch andere - habe den ProcBrowser seit etwa 1 Jahr ständig im Einsatz, wobei ich täglich sicherlich ca. 4-5 Std. unter VBA programmiere. Seit dem letzten Release (Sept. 04 ?) kam mir kein Fehler mehr unter.
Das heißt nicht, dass nun nicht doch eine Macke zutage treten kann.
Dabei tippe ich auf irgend ein Syntax-Konstrukt in deinem Code, der das Addin bzw. dessen Syntax-Analyse ins Schleudern bringt. Ich würde dich bitten, mir den Quelltext des besagten Word-Projekts zu mailen, um zu sehen, woran's liegt - einfach Copy&Paste des kompletten Codefensters.
(Du kannst mir natürlich auch das komplette .dot mailen...)

Gruß, Sascha

CHF
28.04.2005, 06:59
Hi Sascha,

tja, auch bei einer absolut leeren Normal.dot (extra mal eine neue angelegt) und bei leeren Dokumenten.

Gibt es Voraussetzungen bzgl. Neustart Word/Rechner zum Aktivieren? Denn bisher hab ich es nur über Starten/Laden im AddIn-Manager aktiviert, da der Rechner z.Z. durchläuft.

Vielleicht liegt es daran, werde es die Woche mal testen.

Sascha Trowitzsch
19.11.2005, 12:46
Info: Ein Update ist geschehen. Braucht man nicht unbedingt; aber entscheide man selbst nach Lektüre von http://www.moss-soft.de/public/procbrowser/#H19112005

Ciao, Sascha

hal_9000
07.12.2005, 12:51
Habe es hier mal getestet, leider neigt bei mir nach der Installation Excel zu abstürzen. :(
Jetzt habe ich es deaktiviert und alles läuft wieder sauber.

hal_9000
07.12.2005, 12:58
Achja, ein Genereller fehler der hier bei Excle auftrit ist:

Excel Geöfnet
F11
Refresh
und schon kommt die angehängte Fehlermeldung.

Sascha Trowitzsch
07.12.2005, 14:01
Kommen NUR Fehler oder zeigt das Treeview auch manchmal was an? ;)
Ich habe unter Excel2003 keine Probleme mit dem Tool.
Ich sehe aber gerade, dass du eine englische Version von Office2003 benutzt. Möglicherweise hängt es irgendwie damit zusammen.
Die Fehlermeldung, die du angehängt hast zeigt mir, dass bereits beim Laden des Addins keine Instanz des VBA-Editors erhalten wird. Ich kann mir fast nur vorstellen, dass da was mit den internen Verweisen des Tools nicht mit deiner Office-Konfiguration kompatibel ist.
Leider hab ich kein englisches Office zum Testen...

Wird in der Menüleiste des VBA-Editors unter Addins denn der Eintrag "mossSOFT ProcBrowser" angezeigt?
Und: Gibt's das Problem nur unter Excel2003 oder auch unter Word, Access ?

Ciao, Sascha

hal_9000
07.12.2005, 14:23
Das Programm selber läuft gut.
Der 2. Fehler tritt dann auf, wenn ich ein neues Dokument / Worksheet / DB öffne ohne VBA-Code und ich den Refresch button drücke.

Zusätzlich habe ich hier die MZ-Tools 3.0.1155 laufen.

Sascha Trowitzsch
07.12.2005, 15:35
Ah, ok.
Ist korrekt, da wird dann der Fehler angezeigt. Werde ich im nächsten Update bereinigen.
(Allerdings frage ich mich, wozu du den Refresh-Button klickst, wenn du gar kein Codefenster offen hast?...)

Danke für's Testen.

Ciao, Sascha

skyball
07.12.2005, 15:41
Hallo Sascha, da ich mich in meinem Programm schon bald nicht mehr auskenne, kam mir dein ProcBrowser gerade recht. Ich setze ihn unter acc2000/win2000 bislang ohne Probleme ein.

Mein einziger Kritikpunkt wäre: Es wäre schön, wenn der Browser auch den ganzen Pfad des Projektfensters ersetzen würde, dann könnte man sich die Auswahl des Objektes in einem anderen Fenster auch noch sparen.

Sonst alles tadellos!

hal_9000
07.12.2005, 16:11
Weil ich ein blöder User bin. ;)

SCNR

OK, ich habde noch blödere User hier. ;)

Sascha Trowitzsch
09.01.2006, 15:52
@sami: Das mit dem Komplettersatz des Projektexplorers hatten wir schon unter Beitrag #12, #13.
Der Aufwand wäre erheblich.

Stattdessen eine kleine Neuerung in V 0.9.0.3:
- Bei Ausführen einer Prozedur über das Kontextmenü des ProcBrowsers wird die Zeit zur Ausführung der Sub/Function ermittelt und anschließend angezeigt.
http://www.moss-soft.de/public/procbrowser

Gruß, Sascha

J_Eilers
10.01.2006, 07:40
Moin Sascha,

gefällt mir noch hübscher, als die vorhergehende Version. Jetzt hab ich erstmal die Frage, warum man nur globale Prozeduren ausführen kann und keine Klassenmodullprozeduren? Und eine kleine Anmerkung wäre, dass die Zeitmessung vielleicht nicht fest als ms dabei raus kommt? 1234,56 ms sieht irgendwie ein wenig "unhübsch" aus ;) Aber es funktioniert auf jeden Fall.

Sascha Trowitzsch
11.01.2006, 10:23
Um eine Prozedur einer Klasse - ob Klassenmodul, Formularmodul, Berichtsmodul - ausführen zu können muss sie ja erst instanziert werden. Das müsste das Addin dann erst mal machen. Sicher kann man das wohl irgendwie, aber abgesehen davon, dass die meisten Klassenprozduren Private sind, gibt es da einige Fallstricke, wenn man z.B. einen Bericht oder ein Form per NEW erzeugt.
Aber ich nehme das mal in die Todo-Liste auf und schaue mal, ob sich das nicht doch umsetzen lässt.
Das mit der Zeitmessung ist ohnehin nur eine kleine Beigabe, wobei ich nicht ganz verstehe, was an "1234,56 ms" unhübsch aussieht? Wäre "1,23456 s" hübscher?

Gruß, Sascha

MRR
12.01.2006, 05:41
Hi Sascha,
habe mir die neue Version installiert und erhalte beim Versuch, die Ausführungszeit einer Mini-Prozedur zu testen, die schon von Hal_9000 gepostete Fehlermeldung:
Z. 640, E.438: Objekt unterstützt diese Eigenschaft oder Methode nicht in Prozedur menRun_Click, Benutzerdokument ToolDok.
Die Exceldatei ist gespeichert und (mitsamt Excel) wieder neu geöffnet worden. Fehler bleibt.
Mini-Code:
Sub Test()
Dim c As Range
For Each c In Selection
c.Font.Size = 8
Next
End Sub
Was mache ich falsch? Danke für Hinweise vorab!
Und natürlich: Ein ganz tolles Jahr 2006 wünsche ich Dir und allen anderes Forumsteilnehmern (und Administratoren!).

J_Eilers
12.01.2006, 07:27
@Sascha Mir würde 1,23 sek gefallen. Aber da ich es auch eher als Spielerei verstanden habe, war das nur eine Frage interessehalber.

Sascha Trowitzsch
12.01.2006, 11:17
@MRR&all:

Vielen Dank, dass du mich nochmals auf diesen Bug hingewiesen hast.
In der Tat hat das Ausführen von Prozeduren bisher nur unter Access funktioniert - da sieht man, wo ich herkomme. ;)
In der neuen Fassung ist das gefixt. Nun sollte es auch unter Word, Excel und Powerpoint funktionieren.
(Vielleicht eine Anmerkung zum Problem: Das Addin hat, da ein COM-Addin für den VBE, keine Möglichkeit, auf das Wirtsobjekt direkt zuzugreifen. Es kennt also das Application-Objekt des VBA-Projekts, unter dem es ausgeführt wird, nicht. Das wird aber benötigt, um die allen Office-Applikationen eigene Methode Application.Run() ausführen zu können. Es ist nur mit Tricks möglich an dieses Application heranzukommen. Die Verfahrensweise ist dabei unter jeder Office-Anwendung anders. Das bedeutet, dass diese Funktionalität wahrscheinlich auch in anderen VBA-Wirtsanwendungen scheitern wird. CorelDraw z.B. enthält auch einen VBE...)

Gruß, Sascha

Sascha Trowitzsch
22.01.2007, 15:18
Alle Jahre wieder...

...gibt es eine neue Version des Prozedur-Browsers mit erweiterten Features.
Änderungen sind hier einzusehen: http://www.moss-soft.de/public/procbrowser/#News

Falls Bugs und Unzulänglichkeiten auftreten sollten, bitte weiterhin hier posten.

Gruß, Sascha

TommyK
22.01.2007, 15:25
Hallo Sascha,

nur eine Kleinigkeit.
Das About-Fenster gibt die Versionsnummer 1.1.3 aus die DLL aber 1.2.0.1

Sascha Trowitzsch
22.01.2007, 18:19
Oha!
Yo, hab ich übersehen. (...Dass das Versions-Label zur Laufzeit gesetzt wird.)
Thanx! ...Fixe es fix.

Ciao, Sascha

Skadi
23.01.2007, 21:36
Hallo Sascha,

ja super, erste Sahne!

Läuft bei mir unter W2k SP4, Access2003engl ohne Probleme.

Für die nächste Version hätte ich einen Wunsch...(Weihnachten ist doch eigentlich vorbei???):

Und zwar ein neuer Modus des ProzedurBrowsers:

a) Ich gehe zu einer beliebigen Code-Zeile im Editor

b) Auf Knopfklick zeigt der Procedure Browser alle public Funktionen aller Module alphabetisch sortiert an.

c) durch Doppel-klick auf den Funktionsnamen Procedure Browser wird der Funktionsname an der letzen Cursorposition des Code-Editors eingefügt.

d) der Code-Editor bekommt den Fokus.

Herzlichen Gruß von einem Spandauer nach Berlin ;)

Axel

Sascha Trowitzsch
24.01.2007, 00:38
Danke für Lob!

Deinen Wunsch - den ich allerdings auch nicht so recht verstanden habe, weil mir nicht in den Kopf will, warum ich einen x-beliebigen Funktionsnamen irgendwo in den Code setzen sollte ;) (...was Spandauern nicht so einfällt...)-, werde ich nicht erfüllen können. Der ProcBrowser scannt immer nur ein Modul. Das gesamte VBA-Projekt ist nicht drin. Um also alle Public Fus aufzulisten, müsste ich ihn komplett überarbeiten und das integrierte Objektmodell ausweiten. Das wäre ein Riesenaufwand.

Aber ich kann mir mal überlegen, wozu ein Doppelklick auf einen Eintrag noch so gut sein könnte... ;)

Gruß, Sascha

Skadi
24.01.2007, 10:34
Hallo Sascha,

du weisst ja ... jenseits von Ikea ticken die Uhren halt anders:mrcool:

Warum jemand 'einen x-beliebigen Funktionsnamen irgendwo in den Code einsetzen sollte':

Nehmen wir mal an jemand deklariert eine Funktion in einem Modul als 'public'. Da kann man davon ausgehen, das sie auch ausserhalb des Moduls verwendet wird. Jetzt entwickle ich ein neues Formular (zum Beispiel) und möchte diese Funktion verwenden, bin aber nicht mehr sicher ob sie jetzt zB getDate oder getDatum hieß. Und ich weiß auch nicht mehr recht, ob sie im Modul mdlDateFunctions oder mdlUtilities steckte. Damm heisst es : suchen, suchen, suchen.
hätte man eine Liste aller public Funktionen zur Hand ginge das schneller. .. Und schwupp an beliebiger Stelle eingesetzt.

Herzlichen Gruß über die Spree

Axel

jmc
03.08.2007, 18:04
Hallo Sascha

angeregt durch einen Beitrag im Forum (http://www.ms-office-forum.net/forum/showpost.php?p=1014523&postcount=4) habe ich mir mal das Addin runtergeladen und angeschaut.
Ich kann nur alle bisherigen Komplimente hier summarisch wiederholen :10points: :dance: :knuddel: :hands: :sun: http://www.das-forum.ch/_various/pics/smilies/sport/sport17.gif

2 Dinge sind mir aufgefallen, die ich hoffentlich in all den Beiträgen nicht übersehen habe:

1) ich habe das Modulefenster so eingestellt, dass man nur jeweils eine Prozedur sieht - da funktioniert's nicht mit der Proc-Anzeige, weder mit noch ohne Autotrack

2) könnte man bei der Ausführung einer Proc die Parameter irgendwie "zwischenspeichern" dass man nicht jedesmal alle neu eingeben muss?
Wenn man die Proc im Debug-Fenster aufruft, dann hat man ja noch alles, bei deinem Parameter-Fenster halt nicht ..

Aber sonst wie gesagt TOP und super brauchbar

Sascha Trowitzsch
03.08.2007, 20:04
Danke, Jean, für die Lobhuldigungen! ;)

Das mit dem Einzelprozedurmodus habe ich bisher nicht bedacht, weil noch nie verwendet. Andere anscheinend auch nicht, sonst wäre in den drei Jahren wohl mal eine Meldung gekommen. Aber besser spät als nie. Werde mal sehen, ob sich da was machen lässt...

Das mit den Parametern ist zwar plausibel, aber natürlich erheblicher zusätzlicher Aufwand. (Ich verwende auch, ehrlich gesagt, das Feature bei Funcs selbst nie...) Denn man müsste sich imgrunde die Name der Funktionen plus Modulname plus Projektname plus Dateiname in einer Datenbank merken, um die jeweils passenden Parameter identifizieren zu können. Ein anderer Workaround wäre, dass man die Parameter zwischenspeichert (Array) und nur dann setzt, wenn die Funktion anschließend direkt wiederholt aufgerufen wird. Beim Wechsel zu einer anderen jedoch würde man wieder mit den Blankofeldern konfrontiert. Das wäre ein gangbarer Kompromiss.

Anyway: Es gibt eh bald ein Update, weil mir inzwischen noch ein (minder schwerer) Bug aufgefallen ist. Und etwas Kosmetik ala O2003 hab ich in meiner Privatversion eh schon eingebaut.

Gruß, Sascha

jmc
03.08.2007, 21:50
Hallo Sascha

wegen den Parametern: ich denke, dass eine Lösung mit Array reichen sollte. Es geht ja meist darum, dass man eine Funktion mit verschiedenen Parameterwerten testen will - und das macht man in der Regel gleich hintereinander. Alles andere wäre wirklich Luxus ...
Was vielleicht noch ein kleines "Schmankerl" wäre: wenn die mitgegebenen Parameter und das Resultat in's Debug-Fenster geschrieben werden

Das mit dem Fenstermodus der Modules wäre schon schön - irgendwie sollte es gehen, denn ich habe die MZTools installiert und da kann man ja eine Aufstellung über die Verwendungsorte einer Funktion erstellen und aus dieser mit Klick einen Fundort aufrufen.

Ich weiss Sascha, es ist immer dasselbe: mit dem Essen kommt der Appetit - aber so wie ich dich kenne, reizen dich solche Herausforderungen ja auch ;)

TommyK
06.08.2007, 05:03
Das mit dem Einzelprozedurmodus habe ich bisher nicht bedacht, weil noch nie verwendet. Andere anscheinend auch nicht, sonst wäre in den drei Jahren wohl mal eine Meldung gekommen.

Aufgefallen schon, da ich den Einzelmodus aber sehr selten verwende hat es nicht groß gestört. ;)

Sascha Trowitzsch
06.08.2007, 12:04
Hi ihr beiden,

Ich habe mal eine neue Version vorab hier angehängt. Die Version auf meinem Server ist noch die alte. Ich wollte die dort erst aktualisieren, wenn ich die neue etwas mehr getestet habe - oder Ihr. ;)
Ist nur die DLL, die die alte ersetzt und dann auch neu registriert werden sollte.

Version 1.3.1
- Einige Bugfixes; volle Office 2007-Kompatibilität (hoffentlich!).
- Fix: Im Einzelprozedurmodus (Option der IDE) der Codefenster hat der Prozedur-Browser bisher nicht funktioniert. Tut er nun aber.
- Neues Toolbar-Layout: Passt sich nun automatisch an die Version der Office-Anwendung an. Für Office 2007 wird außerdem das eingestellte UI-Theme berücksichtigt. (Aqua, Silver, Black)
- Der Toolbar enthält nun einen weiteren Switch-Button (gelb), mit dem sich der Projektexplorer ein- und ausschalten lässt, falls dieser links neben dem Prozedurbrowser eingebettet ist.
- Neue Option: "Breite automatisch". Falls aktiviert, dann passt sich das Prozedur-Browser-Fenster automatisch dem breitesten Eintrag der Prozdurliste an.
- Neue Option: "Ausgabe Funktionswert in Direktfenster". Falls aktiviert, dann wird beim Ausführen einer Prozedur über das Kontextmenü ("Prozedur ausführen") das Ergebnis einer Funktion und die Ausführungszeit in das Direktfenster protokolliert.
- Neues Feature: Wird eine Prozedur, die Parameter erwartet, unmittelbar wiederholt über das Kontextmenü ausgeführt, dann speichert der Parameterdialog die vorigen Parameterwerte zwischen.
- Neues Feature: Neben Kopieren von Prozeduren nun auch Ausschneiden und Einfügen möglich. (Einfügen-Eintrag aktiviert, wenn Rechtsklick auf Modulnamen oder Body-Knoten.)
- Ausführen von Prozeduren funktioniert nun auch in MS Project. Fehler unter Visio behoben.


Gruß, Sascha

rkapl
30.08.2007, 10:00
Hallo Sascha!

Erstmal vielen Dank für das tolle Addin, das ist genau das was ich in VBA zum Programmieren gesucht hab.

Zwei Fragen dazu noch:
- Gibt's die (anfänglich erwähnte) Überlegung noch es auch in die VB6 IDE einzubinden und wenn, dann wann?
- Gibt's auch Überlegungen den Quellcode offenzulegen (you know, security reasons, etc..)

Hab's derweil auf Office XP SP3 (vorwiegend Excel) getestet, bis dato keine Probleme entdeckt...

-grüsse,
Roland

Sascha Trowitzsch
30.08.2007, 11:43
Danke für's Feedback!

Nein, ernsthafte Überlegungen, das Tool auch für VB6 zur Verfügung zu stellen, hatte ich noch nicht. Das wäre schon recht viel Aufwand. Es ist inzwischen ziemlich auf VBA und die Wirtsapplikation ausgelegt. Zudem wären in VB6 noch viele andere Dinge zu implementieren, weil es dort viel mehr Komponenten im Projektexplorer gibt, z.B. die Related Documents.
ICh bin mir auch nicht sicher, ob es überhaupt lohnen würde, noch auf VB6 zu setzen, weil ja doch die meisten Entwickler auf VB.NET umsteigen.
Übrigens gibt's für VB6 ja ohnehin schon eine Menge professioneller Addins. Stellvertretend: Codesmart for VB6: http://www.axtools.com/ (gigantisch!)

Quellcode werde ich leider nicht offenlegen. Es steckt zuviel Arbeit drin. Es hat ziemlich lange gedauert, bis die Syntaxanalyse fehlerfrei geklappt hat. (Bei den MZTools etwa gab's auch jahrelang Updates, bis Quintero alle denkbaren Syntax-Fälle abgedeckt hatte...)

Gruß, Sascha

rkapl
31.08.2007, 15:05
Danke für den Tipp, hab's gleich runtergeladen und bin am testen, sieht echt impressiv aus. Zum Thema VB6 lohnen würd ich nicht so abwertend sein, für kleine Addins, denen man keine Abhängigkeiten ins .NET framework verpassen will (weil evtl. am zielhost noch nicht vorhanden,etc.) hat VB6 sicher noch seine berechtigung (es gibt ja sogar Seiten, die das ganz offen propagieren: z.b. http://classicvb.org/).

Aber egal. Der Grund warum ich gefragt habe, war einfach weil:
- Dein Tool klein aber sehr fein ist (und genau das macht was ich brauch)
- Dein Tool for free ist (was ebenfalls ganz nett ist)

Man könnte ja einmal eine Minimalversion ohne die ganzen VB6 Spezialitäten rausbringen, falls das einfach geht (Ich weiß, Du erwähntest VBA/Wirtsapplikationsabhängigkeit, aber da ich nicht reinschauen kann, kann ich das auch nicht beurteilen..).

Was mich zum nächsten Punkt bringt: Offene Source, da versteh ich Deinen Ansatz nicht ganz, wenn Du nicht vorhast das Produkt zu verkaufen, warum dann so ein Geheimnis draus machen? Ich habe die Erfahrung gemacht, dass etliche Developer selbst mal reinschauen und einem dann Vorschläge machen, das ist recht nett.

Ausserdem erhöht "Open Source" sicher die Akzeptanz bei klassischerweise paranoiden SysAdmins (falls sie bereit sind, reinzuschauen), das Tool auch zuzulassen (Thema Security).

Zum Tool selbst noch einen kleine Vorschlag: wenn Du im Tooltip nicht nur den Sub/Funktionsheader sondern auch noch den gesamten Kommentar darüber anzeigst (enthält üblicherweise sinnvolle ergänzende Erklärungen, wie parameter beschreibungen etc.), dann wär diese Funktion auch topp.

-nur so ein paar Gedanken,
Roland

PS: Auf Deiner offiziellen Tool-homepage ist immer noch die vorletzte version (1.2.1), hab's jetzt aber mit Hilfe Deines Eintrags weiter oben aktualisiert. Nur zur Info....

Sascha Trowitzsch
01.09.2007, 18:56
Hi Roland,

Ja, auf der HP ist immer noch die alte (stable) Version. Zu der neuen Interimsversion kamen ja noch keine Anmerkungen bis auf deine jetzt. (Ich habe aber selbst inzwischen einen Bug bei Klassen mit Properties Get/Let entdeckt.) Ich bastle zurzeit gelegentlich weiter an dem Addin rum und stelle erst dann eine neue Version online, wenn die mir einen vernünftigen Eindruck macht.

Die Sache mit dem Einbeziehen der Kommentarzeilen ist eine Überlegung wert. Könnte ich machen.

Wg. OpenSource: Da interessieren mich paranoide Admins erstmal überhaupt nicht. Wer von denen kann programmieren und würde die Source verstehen? Hab ich noch nie erlebt. Es gibt aber genügend Testerinstitutionen im Netz, die etwa DLLs auf Spyware etc. checken und quasi signieren. Das können die ja dann machen.
Wg. verkaufen: Doch, das schwebt mir schon im Hinterkopf. Nicht dieses eine Tool; aber sein Kernelement ist die Syntaxanalyse der Module in Form eines ganzen Objektmodells und die kann man für alle möglichen VBA-Addins verwenden. Und ich kenne die Pappenheimer: Da kommt ein tolles Tool oder Programm für 79 $ auf den Markt und wenn du dekompilierst oder sonstwie reenginierst , wie ich das gerne mal zu tun pflege ;), dann stellst du fest, dass nur der allerkleinste Teil von dem Programmierer geleistet wurde und der Rest aus irgendeinem open source kommt. Sowas finde ich einfach Schei... Und es ist mir selbst schon untergekommen, dass ich etwa meine DLL zur fehlertoleranten Suche (http://www.moss-soft.de/public/mossSOFT_W.htm) in einem gar nicht so billigen kommerziellen Produkt wiederfand, ohne dass ich da jemals gefragt wurde.
Sicher verwendet jeder Programmierer open source von anderen Entwicklern, und wer mich kennt, der weiß auch, dass ich viel Code ohne Einschränkungen veröffentliche, aber hin und wieder ist die Grenze erreicht, wo ich njet sage.
Ich verstehe auch andererseits deine Frage um Geheimnisse nicht so ganz: Zu wievielen Freeware-Tools wird denn der Sourcecode zur Verfügung gestellt? Kommt doch höchst selten vor? Da müsstest du bei allen den gleichen Anspruch haben, oder?
Ich denke da: Ein Teil der Freeware-Entwickler will eher sicherstellen, dass ihre Anwendungen frei bleiben und der Code nicht von anderen vermarktet und missbraucht wird.
Und außerdem: Einem geschenkten Gaul schaut man nicht ins Maul. ;)

Gruß, Sascha

rkapl
01.09.2007, 21:01
Hi Sascha!

OK, das mit den "Verwendern" kann ich nachvollziehen, das würde mir ebenfalls auf die Nerven gehen. Allerdings kann man das für "End-User Tools" (also alles was man nicht mehr in weitere Lösungen einbauen kann/muss, wie z.b. Libraries) ganz einfach mit Verwendung der GPL unterbinden. Sobald ich draufkomm, dass da einer was kommerziell verwendet, gibt's eine mit dem Rohrstaberl auf die Tastatur (oder auch die Finger :upps: )...

Wennst natürlich große Teile des gegenwärtigen Tools in eine kommerzielle Library einbauen willst, dann ist das alles natürlich hinfällig. Bin aber trotzdem ein großer Fan von Open Source.

zum Thema Admins: Nun ja, diese direkt nicht, aber wenn man manchen das Ganze per Code Walkthrough begreiflich machen kann, dass hier absolut nix gefährlich sein kann, dann lassen sie sich doch erweichen.

Bezgl. VB6 Integration, ist das definitiv zu viel des Aufwands, oder etwa vielleicht doch nicht?

Ich werd' auf jeden Fall bald auch ein kleines Addin (Excel/Word Datenbank tool) hier rein stellen, hoffe, ich hab' bis dahin die 50er Beitragsgrenze....

Coole Sache übrigens das Soundex Addin, gibt's eigtl. irgendwo eine Übersicht was Du sonst noch so alles nützliches von Dir gegeben hast?

-roland

Sascha Trowitzsch
02.09.2007, 19:35
Doch, das mit der VB6-Version ist zuviel Aufwand. Glaub mir's! Nicht unmöglich, aber ich habe die Zeit aktuell nicht dazu. Meine beruflichen Projekte leiden ohnehin schon unter solchen Eskapaden.

Hier übrigens der Beleg für die Harmlosigkeit der DLL zur fehlertoleranten Suche :grins: :
http://www.programchecker.com/file/19623.aspx (Seite lädt sehr langsam!)

Eine Übersicht zu Downloads gibt's nicht. Hier im Forum ist in diversen Threads der eine oder andere Link gut behütet versteckt. ;) Und auf meiner Festplatte stapeln sich Dutzende unvollendeter Werke...

Gruß, Sascha

rkapl
04.09.2007, 15:00
Hallo Sascha!

Bin jetzt am Testen von 1.3.1, bis dato keine gravierenden Mängel, folgendes ist ist mir aber aufgefallen:

- beim Einfügen/Vorhandensein von duplizierten globalen Variablendeklarationen (copy/paste ich weiss...): Eine - offenbar - interne Fehlermeldung weist darauf hin, dass die Variable in der Auflistung bereits vorhanden ist. Wär gut wenn dieser Hinweis unterdrückt wird, da man ja ohnehin beim Kompilieren drüberfällt und manchmal beim editieren bewußt Duplikate in Kauf nimmt.

Lustigerweise wird's in weiterer Folge ohnehin unterdrückt, bis man dann Refresh List macht.

- beim Ausführen von Funktionen:

In dieser Funktion (Ich weiss, ein wenig trivial aber doch recht nützlich) zeigt er den zweiten Parameter nicht an, beschwert sich aber dann (zurecht), wenn man ihn nicht angibt:

Function EURO360(Ausgangsdatum, Enddatum)
EURO360 = WorksheetFunction.Days360(Ausgangsdatum, Enddatum, True)
End Function

Ebenso dürfte er mit variants ein wenig Schwierigkeiten haben, wenn ich folgende Funktion teste
Function DATUM_ENGLISCH(Datum, Optional Datumsanzeige = True) As String
...

setzt er Datumsanzeige immer auf "" statt True, wenn ich es leer lasse.

Mit Parametern hat man aber auch kein glück, denn die (natürlich bessere Form)
Function DATUM_ENGLISCH(Datum As Date, Optional Datumsanzeige As Boolean = True) As String

bringt dann überhaupt nur mehr die Fehlermeldung "Einer der übergebenen parameter war ungültig".

Ich glaub' die Parameterübergabe gehört noch ein bisserl durchgecheckt


Ein Vorschlag noch bezgl. Tooltip: Analog zu Kommentaren oberhalb von Subs/Funktionen würde ich auch bei globalen Deklarationen/Konstanten die Kommentare oberhalb als Tooltip anzeigen, bei mir gibts da ein paar Fälle, wo bei bestem Willen nichts mehr rechts dazupasst.

Sonst: Sind auch die Anderen hier sehr beeindruckt...

-roland

PS: Was mach eigtl. die Option "Breite automatisch" ? Bei mir passiert nix...

Sascha Trowitzsch
06.09.2007, 09:25
Danke für den ausführlichen Testbericht!

Da sieht man mal, dass sich selbst nach 3 Jahren noch Fehler offenbaren können - und gleich ein ganzer Sack! ;)
Ein paar kenne ich allerdings schon und war zu faul, mich dran zu machen. Etwa das Copy&Paste-Problem, das mir allerdings bei Prozeduren schon einiges Kopfzerbrechen bereitet hat. Denn wenn zwei Prozeduren gleich lauten, dann bekommt man Schwiergkeiten mit den VBExtensibility-Funtionen wie ProcOfLine, ProcBodyline etc.

Nicht aufgefallen war mir allerdings die Geschichte mit den Variants. Denn Variablen ohne Deklaration sind bei mir tabu. Tatsächlich werden die impliziten Variant-Parameter nicht richtig erkannt.

Um die "Ausführen"-Funktion hab ich mich bislang auch nicht richtig gekümmert. Das war bisher halt ein nice to have und eher Spielerei. Die Parameter in den Textboxen werden nicht auf die Datentypen gecastet, sondern als Strings gehandhabt.
Die Default-Werte von Parametern werden übrigens ohnehin nicht berücksichtigt.

Wie auch immer: Ich hab mir gestern mal Zeit genommen und bin das alles durchgegangen. Deine angemerkten Macken sollten nun behoben sein. Das mit den Defaults muss ich noch einbauen. Da ich zudem gerade noch ein neues Feature (Moduldokumentation) einbaue, kann es noch ne Weile dauern, bis ich die neue Version rausgebe.

Das mit Automatische Breite sollte eigentlich so funktionieren: Die Breite des Addins in der IDE sollte, wenn aktiviert, sich automatisch dem breitesten Eintrag im Treeview anpassen. Tut's bei mir auch. Wenn bei dir nicht: Funktioniert denn der blaue Pfeilbutton oben bei dir? Also das Minimieren und Wiederherstellen der Breite? Falls nein: Was hast du für eine Maus bzw. Maustreiber auf dem System?

Bis demnächst, Gruß, Sascha

rkapl
06.09.2007, 10:16
Zur Breite:

OK, das was mich verwirrt hat, war, dass er trotze Auto Breite, beim Ändern der Breite (vergrößern des gedockten Fensters) ohne Zögern die neue Breite akzeptiert hat, ich dachte, da würde er etwas sturer sein :nene:

Er macht jetzt auch das, was ich dachte nur muss man dazu immer zuerst aus- und wieder einschalten. Die Auto Breite ist auch nicht ganz exakt, aber ich bin da mal nicht pingelig :cool:, man kann auf jeden Fall genug lesen...

-danke für den Hinweis..
Roland

PS: Das mit dem Ausführen von Funktionen/Subs wär schon super, wenns tadellos funktioniert, denn das ist ein richtiger Timesaver (gschwind mal getestet, und geht schon weiter..)

Sascha Trowitzsch
06.09.2007, 17:32
Ja, wird Zeit, dass ich mal ne sinnvolle Doku zu dem Teil schreibe.
Die Breite wird tatsächlich nicht exakt berechnet, sondern nach einer "Faustformel". Die Breite des Schrftzugs schon, aber die Indents der Nodes nur ungefähr.
Die Anpassung findet nach jedem Refresh des Trees statt, d.h. bei Modulwechsel, manuellem Resfresh, oder nach min. +/-7 Änderung Zeilenzahl im Modul.

Ciao, Sascha

rkapl
08.09.2007, 09:24
Hi Sascha!

Hab' gerade den gelben Knopf entdeckt, der ist echt brauchbar bei meinem kleinen Bildschirm zuhause. Dabei ist mir aufgefallen, dass es keine Tastaturkürzel gibt.
Ich weiss, dass das ein Krampf ist (hab es selber in ein IDE Tool zur Unterstützung von Subversion direkt aus der VBA IDE (in VBA geschrieben) eingebaut und dann bald wieder ausgebaut, da Autocomplete nicht mehr ging und Excel auch im allgemeinen Betrieb eher instabil wurde (nahm dafür ganz ungeniert Code von Steve Bullen: VBEOnKey.zip (http://www.oaltd.co.uk/DLCount/DLCount.asp?file=VBEOnKey.zip)).
Jetzt weiss ich nicht, ob das bei einem COM-Addin auch ein Problem darstellt, hast Du damit Erfahrung?

Wäre echt cool und ausserdem ein Anreiz mein Tool endlich auf COM zu portieren...

Eine andere ebenso coole Möglichkeit des Zusammenspiels mit dem Projektbrowser wäre ein "hotspot" (z.b. der Rand des Fensters), der wenn man mit der Maus hinfährt, den Projektbrowser einblendet, aber das sprengt möglicherweise die Möglichkeiten der IDE (Hab' sowas auch noch nirgends gesehen, zumindest nicht in Office VBA IDEs).

-roland

Sascha Trowitzsch
08.09.2007, 18:30
Wg. Tastaturkürzel:
Ja, hab ich in ein VBIDE-COM-Addin schon eingebaut. Im Prinzip ähnlich wie das von diesem Bullen, aber einfacher. Schon mit Keyhook, aber ohne registershortcut. Filtere einfach alle reinkommenden Keys, bis die definierte Tastenkombination auftritt und dann entspr. Aktion.
Klar, Hooking oder Subclassing nur unter VBA ist immer unstabil. In einem COM-Addin gibt's die Probleme nicht.
Ein COM-Addin mit diesem Keyhook gibt's übrigens hier: http://www.access-im-unternehmen.de/index1.php?id=300&BeitragID=278 ;)

Das Ein- und Ausblenden des Projektexplorers über Rand etc. wäre schon möglich. Aber nur über den Rand des Procbrowsers; das Explorerfenster selbst würde ich ungern subclassen. Ist aber eher was für die Zukunft...
BTW, falls dich's interessiert: Die Größe der in die IDE angedockten Fenster kann man nicht per Code verändern. Das gibt das Extensibility-Modell nicht her. Ich habe auch nach langem Suchen keinen entspr. Code im Netz gefunden. Ich weiß zwar, WO in der Registry die Positionen der einzelnen IDE-Fenster gespeichert sind, nicht aber, was die ienzelnen Bytes des Binärkeys bedeuten.
Im ProcBrowser mache ich's einfach so, dass die Mausbewegung simuliert wird. Es werden also schlicht Mouse- und Key-Events auf den Fensterrand des Containerfensters (Fensterklasse VBSplitter) synthetisiert. Deshalb kann das auf manchen Systemen auch schiefgehen, die etwas seltsame Maustreiber und Beschleunigungsfaktoren drauf haben.

Ciao, Sascha

rkapl
10.09.2007, 10:21
Danke für den Tipp zum Key-Hook, werd' ihn demnächst einbauen.

Zum Thema "gedockte" Fenster: Hast Du eine Ahnung, ob/wie man sowas auch im Hauptfenster der Office Applikation (a la Taskpane) machen kann, oder muss ich da für eigene Panes auf Office 2007 warten (momentan sind wir auf XP/2003).

Vielleicht gibts ja irgendwelche Tricks mit API-Calls oder so...:p

bis dann,
-roland

Sascha Trowitzsch
10.09.2007, 12:11
Ist zwar langsam OT hier, aber...
Wenn du analysierst, wie die Fensterklasse(n) des Aufgabenbereichs in O2003 heißen, dann stellst du fest, dass es sich um MsoCommandbars als Container handelt. Der "eigentliche" Pane ist dann ein sog. NetUIWnd. Das ist übrigens in O2007 genauso, nur das da eine Schnittstelle mit den Custom Taskpanes geschaffen wurde, die in O2003 fehlt. Deshalb kann man da auch schlecht selbst welche produzieren.
Die Taskpanes sind also imgrunde nichts anderes als Menüleistencontainer und erben deren Docking-Logik. Folgerichtig kann man ein eigens Taskpane etwa so erstellen:
Neuen Commandbar erzeugen und darin etwa per API neue Steuerelemente erzeugen, oder, einfacher, z.B. mit VB ein Form mit der entspr. Funktionalität erzeugen, das man anschließend als Child-Window des Commandbars definiert (SetParent). Es braucht dann allerdings noch etwas Subclassing des Commandbars, um auf etwa dessen Größenänderungen reagieren zu können.
Ja, auch das hab ich schon gemacht. Es gibt übrigens ein älteres ähnliches Projekt, das die Vorgehensweise erdeutlicht, hier: http://ms-office-forum.net/forum/showthread.php?t=76286 (siehe #7)

Gruß, Sascha

rkapl
12.09.2007, 10:17
OK, jetzt wieder zurück zum Thema:

Hatte gerade eine unschöne Begegnung mit dem Copy/Paste (oder Code einfügen) Bug. Wenn ich aus den MZ Tools eine Codevorlage einfüge, in der eine Funktion ist, die bereits im Modul definiert ist, dann friert Excel komplett ein, was dann nimmer egal ist (die Msgbox war nicht so schlimm...)

Folgende Vorgangsweise:
zuerst

' quotedSplit
'
' splits theString into tokens delimited by delimiter, ignoring anything between quote
' returns array of tokens, these are not blanks trimmed !!
Public Function quotedSplit(ByVal theString As String, delimiter As String, quote As String) As Variant
Dim teststr
Dim subresult As String, tempresult As String

teststr = Split(theString, quote)
' walk through quote1 splitted parts and replace keystr in even ones
Dim i As Long
For i = 0 To UBound(teststr)
If i Mod 2 = 0 Then
subresult = teststr(i)
tempresult = tempresult & Mid(subresult, IIf(Left(subresult, 1) = delimiter, 2, 1))
End If
Next
quotedSplit = Split(tempresult, delimiter)
End Function

als Codevorlage in MZtools anlegen, dann dieses direkt in ein Modul pasten, dann die Codevorlage aus MZtools einfügen. BRRRRR :boah: :weinen:

Verwendete Version: 1.3.1
-roland

PS: (Wieder weg vom Thema, vielleicht eröffne ich einen Thread in VB Programmieren): Das "Anhängen" einer Userform an ein Commandbar mit SetParent funktioniert nicht so ganz, hab's zuerst naiv versucht (einfach die window handles gesucht und dann "setparent(userformHandle, commandbarHandle)" gemacht. Dann hab' ich auch noch explizit die Userform als Childwindow definiert, auch nix.

Ich glaub' langsam, eine Userform kann man nicht an ein Commandbar hängen, oder? Dein Code (aus 2002, Accesss) fügt ja auch direkt die Buttons über API calls zum Commandbar dazu. Evtl. würd' ich mich damit zufriedengeben, wenn ich ein beliebiges Control (ideal: TreeView aus MSCommCtrl) zum Commandbar "attachen" könnte. Aber was solls....

Sascha Trowitzsch
12.09.2007, 15:42
Hi Roland,

Es ist schön, dass du den ProcBrowser so ausführlich testest, aber ich mir wäre es Recht, wenn du da beim Thema bleiben würdest.
Die letzte Frage möchte ich deshalb nicht hier beantworten, weil wir sonst völlig vom Thread wegkommen. Es wäre tatsächlich sinnvoll, wenn du das Problem in einem anderen Forenteil - VB6, Excel, ?? - posten würdest. Nur soviel: Es geht, aber SetParent allein ist nur die halbe Miete! ;)

Aber zum Einfrierproblem: Ich weiß! Ich hab ja unter #77 gepostet, dass ich mich dieser Probleme angenommen habe und sie aktuell auch gefixt sind. Nur gibt's davon noch keine veröffentlichte Version, weil ich noch andere Sachen einbaue. Dauert leider noch etwas.
(Einfrieren ist übrigens eine Dauerschleife im Addin, in die der Code läuft, wenn zwei Prozeduren gleich benannt sind, weil er bei der zweiten Prozedur mit ProcOfLine immer wieder zu ersten springt und das Modul ab da von neuem durchläuft.)

Ciao, SAscha

Sascha Trowitzsch
15.09.2007, 17:09
Hi,

Im Anhang gibt's wieder eine neue Zwischenversion, damit ihr nicht so lange auf die wichtigsten Bugfixes warten müsst.

Ich hab inzwischen fast vergessen, was ich darin gefixt habe oder was neu dazu kam. Mal im Schnelldurchlauf:
- Performancesteigerung. Ich habe erst jetzt realisiert, dass die interne Codeanalyse teilweise zweimal durchlaufen wird, was natürlich doppelt so viel Zeit kostet. Das fällt nun weg.
- Layout geändert. Die Pictogramme im Treeview sehen teilweise anders aus. Wer's nicht bunt mag, der hat Pech gehabt. ;)
- Zweisprachig
- Die Punkte von Roland oben mit seinen Syntaxkonstrukten sollten nun weitgehen funktionieren. Mit ein paar Variants gibt es aber immer noch Schwierigkeiten.
- Völlig rudimentär ist die neue Kontextmenüfunktion "Modul dokumentieren", die bei markiertem Modul-Node aktiv ist. HTML, XML geht noch gar nicht, Word sieht sch... aus, und der Inhalt ist bisher rein experimentell. Dass ich den Eintrag nicht disabled habe, liegt daran, dass ihr vielleicht Vorschläge machen könntet, was in die Doku alles rein soll. Ich dachte bisher an so eine Kombination der MZTools-Funktion "Statistik" und "Prozeduraufrufe". Zweck sollte u.a. sein, auf einen Blick zu sehen, welche Prozeduren gar nicht verwenden werden, nur einmal im Projekt aufgerufen werden oder häufig und damit wichtig sind. Mal sehen. Hab mir noch nicht viel Gedanken dazu gemacht.
- Konstanten werden nun optional auch im Tree aufgeführt.
- Die Hilfe lässt sich immerhin aufrufen, enthält aber noch nix.
- Das Addin reagiert auf Tastatur. Ich weiß aber nicht, welche Funktionen das sein könnten. Testweise sind nur zwei Sachen eingebaut: Die Win-Kontextmenü-Taste ruft selbiges auf; STRG-ALT-X führt eine markierte Prozedur aus. Vorschläge?

Ciao, Sascha

rkapl
17.09.2007, 16:19
Hallo Sascha!

Wird immer besser, die Kommentaranzeige ist sehr brauchbar, denn ich bau mir da drin immer die wichtigste Doku der funktionen/prozeduren ein.

Ad "Vorschläge für Key-Shortcuts": plädiere für Ctrl-q falls das noch nicht vergeben ist) zum Ein/Ausblenden Browsers (a.k.a "gelbes" Knopferl)

Zum Thema "Ausführen"-Funktion: Leider hat sie noch immer ihre Macken mit Optionals, hab' gerade folgenden Code versucht auszuführen und dabei leider eine mir nicht verständliche Fehlermeldung bekommen ("Einer der übergebenen parameter war ungültig").

' commonParentPath
'
' return potential common parent path, e.g.
' /a/b/c/d and /a/b/g/j return common parent /a/b
Function commonParentPath(ByVal currentPath As String, ByVal potParent As String, Optional nodeSep As String = "/") As String
curColPathNodes = Split(currentPath, nodeSep)
parentPathNodes = Split(potParent, nodeSep)
For i = 1 To UBound(curColPathNodes)
If i > UBound(parentPathNodes) Then Exit For
If Trim(curColPathNodes(i)) <> Trim(parentPathNodes(i)) Then Exit For
commonParentPath = commonParentPath & nodeSep & curColPathNodes(i)
If i = UBound(curColPathNodes) Then Exit For
Next
End Function

wobei die Version ohne optionalen nodeSep funktioniert. Vielleicht hast Du die Optionalen Parameter ja immer noch nicht eingebaut, kann das sein?;)

Anzeigen tut er aber den optionalen Parameter, sogar mit dem richtigen default wert. Seltsam....

Auch die Variants gehen jetzt, sehr gut !!

Die Idee mit den Callstacks (Aufgerufen von: ...)im aktuellen Modul find ich total gut, v.a. wenn man sich in nicht (mehr) bekannten Code einarbeiten soll. Nur würde ich hier das Ganze nicht auf das Modul einschränken sondern für jede Funktion in dem aktuellen Modul wirklich den kompletten Callstack (der evtl. auch in andere Module gehen kann) darstellen.

Da es ja sowieso noch nicht implementiert ist, weiss ich nicht, ob Du das nicht ohnehin vorgehabt hättest.

Leider kommt beim Aufruf der Doku ein Fehlerfensterl, das evtl. mit dem FileSelect Dialog zussammenhängt, der dann auch bei Klick auf den Pfadselektor kommt (siehe attachment).

Aber sonst: echt :cool: :mrcool:

-roland

Sascha Trowitzsch
17.09.2007, 17:24
Bei mir geht dein Code oben ohne Fehlermeldung. :( Die Parameter werden korrekt an die Prozedur übergeben.
(Damit sie läuft, hab ich die verwendeten Variblen testweise im Modulkopf deklariert. Soll i wirklich eine globale sein?)
Doch, Optional-Statement wird im ProcBrowser ausgewertet.

Der FileDialog-Fehler ist mir ein Rätsel. Ich hab leider vergessen, die Zeilen der Proc zu nummerieren, aber eigentlich kann es nur von der kommen:
sPath = VBEInst.ActiveVBProject.FileName
In welcher Anwendung hattest du da den ProcBrowser gerade verwendet?

Minimieren des Browsers per Key ist eine Idee. Vielleicht auch zusätzlich komplettes Invisible.
Problem mit den Shortcuts ist, dass die meisten Zweitasten-Kombinationen schon durch die IDE, Windows oder MZTools belegt sind. Vielleicht ist es auch besser, immer STRG-ALT-Kombinationen für den ProcBrowser zu vergeben, damit man sich die besser merken kann.

Die Moduldoku... wie gesagt: Steht hinten an.

Danke für deine unermüdlichen Feedbacks und Vorschläge!

Ciao, Sascha

rkapl
17.09.2007, 17:37
Hi sascha!

Das mit dem FileDialog ist kein Rätsel mehr, ist ein Fehler den ich auch schon mal gemacht hab. Obwohl sicher nicht sehr häufig, kommts dochmal vor, dass man (z.b. zum Testen ;) ) ein Excel Workbook nicht abspeichert. Na klingelts? Sobald ich es abgespeichert habe, gab's die FileDialog Fehlermeldung nicht mehr...

Zum PArameterproblem:
Ich hab' jetzt den Code "Kompilierfest" gemacht, d.h. Option Explicit und brav alle deklarationen eingefügt, überall byval angegeben und schon funktionierte es.

Jetzt dachte ich, halt, irgendwas war da noch. "byval" bei optional ist der schlüssel. entfernt, wieder die fehlermeldung. "byref", ebenfalls fehlermeldung (nona, ist ja auch die default übergabe). Any ideas?

Ich verwende (as usual): Excel XP SP3

-roland

rkapl
18.09.2007, 16:52
Hallo Sascha!

Ein Feature, das für den Procbrowser absolut lässig wäre geht mir nicht aus dem Kopf:
Ich weiß, dass Du in #63 schon darauf hingewiesen hast, dass nur ein Codemodul gelesen werden kann, da sonst das ganze Objektmodell zu überarbeiten wäre und ausserdem die Refresh Logik nicht mehr passen würde.

Wie wärs wenn Du nur eine zusätzliche Liste aller Module einbaust (ohne den ganzen Code darin), welche für die Darstellung im Browser verwendet wird (collapsed).

Wenn jetzt jemand ein Modul im Procbrowser singleklickt, dann sollte das Gleiche passieren wie wenn ich im Standard Projekt Explorer das Modul doppelklicke, nämlich
1) CodeFenster wird geöffnet,
2) Procbrowser liest das Module ein,
3) Procbrowser stellt die Subs/Funktionen/Variablen/etc... dar (Unterbaum geöffnet).

Dann spart man sich wirklich (zumindest in Word/Excel, bei Access hab' ich nicht so viel erfahrung) den Projekt-Explorer, da man üblicherweise die meiste Zeit eher in einem Addin/Dokument herumbastelt.

Nun, wie wärs damit ;) ?

-Roland

Sascha Trowitzsch
18.09.2007, 19:11
Hi,

Deine neuen Parameterprobleme hab ich auf die ToDo-Liste gesetzt. Sollte sich langsam, aber sicher, alles lösen lassen.

Das mit dem FileDialog ist nun klar - ein On Error Resume plus Generierung eines neuen Dateinamens reicht da dann.
Dasieht man wieder, dass ich den PB fast nur unter Access verwende - da gibt's so ein "temporäres" Dokument nicht.

Die Idee mit der Modulliste hatte ich selbst auch schon. Ich habe sie - zunächst - verworfen, weil ich viel mit dem Projektexplorer arbeite. Also nicht nur Module doppelklicken, sondern Vieles, was über das Kontextmenü zu erreichen ist, wie Löschen, Objekt anzeigen, etc. und außerdem zuweilen DragnDrop. Allerdings lässt sich 90% der Arbeit in der VBIDE auch ohne diese Features erledigen und das Switchen zwischen den Modulen ist das Wichtigste.
Viel Arbeit würde das an sich nicht machen. Für die Darstellung hatte ich mir allerdings ein mscomctl-ImageCombo vorgestellt, das direkt unter dem PB-Toolbar sitzt. Ein Popup-Treeview wäre auch eine Möglichkeit. In den Prozedur-Tree möchte ich's nicht reinmachen, weil es dort zuviel Raum einnähme.
Schade übrigens, das Uwe(k) nicht mit seinem VBA-CodeTabs-Addin weitermacht. Das wäre eigentlich die ideale Ergänzung zum PrcBrowser.

Danke wieder für deinen Test und die Vorschläge.
Aber lass mir nun eine Verschnaufpause. ;) Die Sachen müssen erstmal eingebaut werden. Und die Bugfixe stehen eh an erster Stelle.

Gruß, Sascha

rkapl
19.09.2007, 08:19
Hallo Sascha!

He, keine Eile, ich bin ja kein Kunde :grins:
Zum Thema "Modulebrowser" find ich den Vorschlag mit dem Popup treeview sehr gut, vor allem wenn man das mit einem Tastaturkürzel (wieder ein Tastaturkürzel) öffnen kann. Vorgeschlagene Interaktion: rechte Maus/Tastaturkürzel -> Öffnen des Modulebrowsers -> dort mit Tippen der Modulbezeichnung (a la Code-completion) bzw. Cursortasten Anwahl des Moduls, <Enter> öffnet das Modul im PB -> Fokus auf den PB, weiteres Tippen der Sub/Funktions/Variablenbezeichnung bzw. Cursortasten bzw. Mausklick und man selektiert das Entsprechende.

Zu dem Thema fallen mir auch noch zwei weitere Tastaturkürzel ein: Eins zum Setzen des Fokus auf den PB und eins zum Starten des "Ausführen" Tools (nach Anwahl der gewünschten Sub/Funktion mit Tippen/Cursor)

Wenn Uwe(k) sein Teil als Opensource veröffentlichen würde ;), dann könnte man sich dessen ja mal annehmen, wobei ich wahrscheinlich derweilen nicht so geeignet wäre, da ich absolut keine Ahnung von VBIDE Programmierung hab.

-grüsse,
ROland

Sascha Trowitzsch
08.10.2008, 00:46
Nur mal zur Info:
Es gibt eine Version 1.5.4., die jetzt unter http://www.moss-soft.de/public/procbrowser zur Verfügung steht.
Die Seite dort ist außerdem überarbeitet und reflektiert die Neuerungen.
Es sind aber leider auch einige Sachen rausgeflogen, die hier bereits diskutiert wurden.

Ciao, Sascha

Sascha Trowitzsch
21.10.2008, 14:16
Noch ne Anmerkung:
Die in diesem Thread stellenweise gelinkte Download-Möglichkeit unter unterschiedlichsten Namen (procbrowser.exe, procbrowser.msi) sind nun alle gelöscht, da sie komplett veraltet waren.
Es gibt nur noch die aktuelle Version auf der Webseite (setup_procbrowser.exe).

Ciao, Sascha

MRR
05.03.2009, 06:47
Hallo Sascha,
auch dein Toll bekomme ich unter Vista (und Office 2007) nicht zum Laufen. Auch als Admin angemeldet schlägt die Installation des AddIns fehl, d.h. genauer: Es scheint installiert zu werden, aber in Access oder auch Excel sehe ich im AddIn-Manager nur geähnende Leere.
Hast du eine Idee, was ich tun könnte?

WeinGeist
09.03.2009, 09:06
Hi Sascha,

Nachdem ich meine Kiste neu aufgesetzt habe und ein paar Add-Ins neu geholt habe, ist mir aufgefallen, dass bei deinen eventuell noch ein Hinweis auf der Downloadseite von Vorteil wäre, für alle die ohne Admin-Rechte arbeiten möchten/müssen, wie man das AddIn nach der Installation für den effektiven Benutzer aktivieren kann, ohne dem Benutzer zuerst Adminrechte zu geben, das Addin zu installieren und anschliessend wieder zu entziehen.

Für alle denen es ähnlich ergeht, folgenden Code in ein neues Textdokument einfügen. Anschliessend
- Die SID anpassen
- Die Endung auf .reg ändern
- Die RegDatei als Admin ausführen

Windows Registry Editor Version 5.00

[HKEY_USERS\HierDieSIDdesUsersEinfügen\Software\Microsoft\VBA\VBE\6.0\Addins\Proc Browser.Connect]
"Description"="Code Modules Helper"
"CommandLineSafe"=dword:00000000
"LoadBehavior"=dword:00000003
"FriendlyName"="mossSOFT Proc Browser"


Funktioniert übrigens eigentlich bei allen AddIns. Einfach den entsprechenden Baum in der Registry des installierenden Admins exportieren und die SID anpassen.

WeinGeist
10.03.2009, 12:56
Nen Bug ist mir letzthin auch noch aufgefallen:

Wenn man eine Enum kreirt und bevor man das End Enum geschrieben hat, anfängt Konstanten zur Enum hinzuzufügen, kommt das Teil in eine Endlosschleife und schmiert ab. Ärgerlich wenn man nicht dran denkt und direkt davor nicht gespeichert hat. ;)

Sascha Trowitzsch
10.03.2009, 14:13
Danke, Weingeist, für deine Anregungen und den Bugbericht.

Das mit dem User könnte man noch auf die Seite schreiben - wobei das an sich kein spezielles Procbrowser-Problem ist, sondern auf alle COM-Addins zutrifft. Leider hat MS nunmal nicht vorgesehen, dass man die Reg-Einträge auch in HKUsers schreiben kann.
Wenn du jetzt noch einen Vorschlag hast, wie man einfach an die SID eines Users kommt? ;) (Ein VBS-Script vielleicht?)

Das mit der Endlosschleife bei Enums kann ich bei mir nicht nachstellen. Es passiert keine Endlosschleife. Aber ich weiß wohl, dass das manchmal auch in anderen Zusammenhängen vorkommt. Es ist nur schwer, dem Bug auf die Spur zu kommen, weil es eben schlecht reproduzierbar ist.
Hab's mir aber notiert und werde es analysieren, wenn mir irgendwann mal die Zeit dafür zur Verfügung steht. ;)

Gruß, Sascha

J_Eilers
11.03.2009, 13:31
Zum Glück gib es für alles MVP's ;)

'Author : Ramesh Srinivasan, Microsoft MVP [Windows Shell/User]
'Description : Lists all the user accounts, their SIDs and Profile paths.
'Copyright : Copyright © 2005-2006, Ramesh Srinivasan
'Created on : Aug 10, 2005
'Revised on : Sep 16, 2006
'Prerequisite : For Windows® XP
'Homepage : http://windowsxp.mvps.org & http://www.winhelponline.com

Set WshShell = CreateObject("Wscript.Shell")
Set fso = Wscript.CreateObject("Scripting.FilesystemObject")
fName = WshShell.SpecialFolders("Desktop") & "\SIDlist.txt"
Set b = fso.CreateTextFile(fName, true)
b.writeblanklines 1
b.writeline string(61,"*")
b.writeline "Lists all the user accounts, their SIDs and Profile paths."
b.WriteLine "SIDList.vbs - Copyright © 2005-2006, Ramesh Srinivasan"
b.WriteLine "WWW: http://windowsxp.mvps.org & http://www.winhelponline.com"
b.writeline string(61,"*")
b.writeblanklines 1

strProfileBranch = "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList\"
strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colAccounts = objWMIService.ExecQuery _
("Select * From Win32_UserAccount")

For Each objAccount in colAccounts
If objAccount.Name = "HelpAssistant" or objAccount.Name = "SUPPORT_388945a0" then
else
b.writeline "Username : " & objAccount.Name
b.writeline "SID : " & objAccount.SID
b.writeline "Profile dir : " & GetHomePath(objAccount.SID)
b.writeblanklines 1
end if
Next

Function GetHomePath(strSID)
On Error Resume Next
GetHomePath = WshShell.ExpandEnvironmentStrings(Trim(WshShell.RegRead (strProfileBranch & strSID & "\ProfileImagePath")))
On Error Goto 0
End Function

b.writeline string(61,"*")
b.close
WshShell.Run "notepad.exe " & fName

Set fso = Nothing
set Wshshell = Nothing

Sascha Trowitzsch
11.03.2009, 13:56
Super, Jan!
Ich hatte schon einen VB6-Code gefunden, der sich verwenden ließe:
http://www.activevb.de/cgi-bin/apiwiki/ConvertSidToStringSid

Vielleicht schreibe ich dann mal noch ein Tool, mit dem man COM-Addins gleich nach Installation auswählbaren Usern verpassen kann.

Ciao, Sascha

J_Eilers
11.03.2009, 14:01
Du meinst so etwas wie 'nur für mich' oder 'für alle'?

Sascha Trowitzsch
11.03.2009, 14:14
Na! ;)

Dürfte in 1-2 Std. erledigt sein, und somit nichts, was man Anderen vorenthalten müsste.

Ciao, Sascha

Sascha Trowitzsch
16.04.2009, 10:53
Hi,

Neue Version. Nur Bugfixes.
- Kein Einfrieren mehr in verschiedenen Situationen, wie etwa unter #97 von Jan erwähnt.
- Laden der Access-Assistenten (Projekte azwzmain, azwztool, utility) führt nicht mehr zur Meldung "Projekt kann nicht angezeigt werden"
- Mitgeliefertes mscomctl.ocx in neuer Version (Killbits-fest).


@Jan wg. #100:
Ich wollte ja ein kleines Tool schreiben, mit dem man nicht nur den Procbrowser, sondern beliebige Addin-DLLs in die Registry für wählbare User eintragen kann.
Das ist soweit auch gediehen, scheitert bislang aber an einer einfachen Aufgabe: Woher weiß man bei einer unbekannten DLL, welche Einträge vorzunehmen sind? Also Zweig (z.B. "Procbrowser.Connect"), Description, Startverhalten, etc.? Das kann ich bisher nicht auslesen. Es steht zwar binär in der DLL, hat aber dort keinen nachvollziehbaren Aufbau. Dass die Standardeinträge nicht reichen, zeigen etwa die MZTools, wo gleich 25 Einträge drinstehen. :(
In den Resourcen einer DLL stehts auch nicht.
Ich weiß da also im Moment nicht weiter.

Ciao, Sascha

J_Eilers
16.04.2009, 11:11
Ich würde mal vermuten, dass man das bewußt nicht weiß, da ja einige "Sicherheitssysteme" über die Reg laufen und da soll man bestimmt nicht wissen, wo was hinkommt, ich könnte aber mal einen Kollegen fragen, der mehr mit solchen Dingen zu tun hat.

Tante Edith: So der Kollege sagte mir das, was ich mir schon gedacht hatte. Normalerweise musst du die DLL in ASM darstellen und dich dann durch den AssemblerCode hangeln. :(

Sascha Trowitzsch
16.04.2009, 12:35
Ah, scheint ja doch einfacher zu sein. Wenn etwa die mztools-DLL nur registriert wird, dann finden sich zunächst auch nur die Standardeinträge in der Registry. Also scheinen die zusätzlichen Einträge grundsätzlich über ein Setup oder zur Laufzeit rein zu kommen.
Dann müsste es wohl doch hinzukriegen sein.
(Ein Workaround wäre übrigens noch, den Zweig der Registry zu scannen, dann die DLL per Code für Administrator zu registrieren und dann nochmal den Zweig zu durchlaufen, um rauszukriegen, was sich dadurch geändert hat.)

Ciao, Sascha

J_Eilers
16.04.2009, 12:56
Dafür eignet sich der RegCleaner ganz gut, man kann dort nämlich zwischen Neu und Alt unterscheiden ;)

Dein Workaround ist allerdings auch durch die Brust ins Auge ;) Dann könnte man ggf auch den ganzen Zweig kopieren.

Sascha Trowitzsch
16.04.2009, 16:45
Welchen Zweig? ;)

Ciao, Sascha

J_Eilers
17.04.2009, 05:48
Äh den Osterzweig, geht aber nur wenn der 1. Mai mal nicht frei ist ;) Die MZTools haben bei mir gleich mehrer Zweige (CLSID/TypeLib/Software), könnte man fast schon als Baumkrone bezeichnen ;)

Sascha Trowitzsch
17.04.2009, 10:40
Nein, die ganzen Objektmodell-Einträge unter CLSID, Typelib und Interface sind irrelevant - die setzt die DLL ja autonom beim Registrieren über regsvr32 und die sind nicht userabhängig, da alle unter HKEY_CLASSES_ROOT.
(Wobei man da bei Vista wiederum aufpassen muss; falls der ActiveX-Installer-Service aktiviert ist, dann können auch Nichtadministratoren u.U. ein Addin registrieren; es ist aber nicht gesagt, dass die Reg-Einträge dann auch für andere User zugreifbar sind. So richtig verstanden habe ich die Vorgänge da noch nie...)

Ne, das Problem ist, dass ich bei einer fremden DLL, etwa MZTools, nicht wissen kann, wie der Addin-Hauptzweig zu lauten hat, nämlich
HKCU\...\Addins\MZTools3VBA.Connect
Das ist die ProgID der öffentlichen Schnittstelle. Wo aber steht die in der Datei? Ist nicht unkompliziert.
Im Moment sieht die Lösung aus:
Über COM die Typelibray der DLL auslesen, die CoClasses durchlaufen und schauen, welche davon Createable ist. Dann schauen, ob das Interface IDTExtensibility2 in der CoClass implementiert ist. Falls ja, dann sollte es sich um die korrekte Schnittstelle handeln und der Reg-Zweig leitet sich aus [Typelib-Name].[CoClass-Name] ab.

Ciao, Sascha

J_Eilers
17.04.2009, 10:53
Leider kann ich dir da auch nicht weiterhelfen. Aus dem Kompilat geht es wohl nur über ASM :(

immelmann
16.07.2009, 17:57
Hatte gerade auch das Dilemma als eingeschränkter User. Das Tool lässt sich nur mit Adminrechten installieren und die Reg.-einträge landen im lokalen Adminaccount (falls man noch einen Adminaccount für die Domäne hat...)

Um an die SID zu kommen, reicht es von Sysinternals "psgetsid" aufzurufen, z.B.
"psgetsid immelmann" -> lokale SID
"psgetsid derDomänenName\immelmann" -> SID des Users für die Domäne

Und dann die Reg.-zeilen aus #96 anpassen.

Schade, dass das nicht für VB6 geht (ja, es gibt noch welche, die damit arbeiten (müssen))

Sascha Trowitzsch
17.07.2009, 10:17
Tja, ich war nicht untätig und habe durchaus schon eine Routine, mit der die SIDs ausgelesen werden können.
Dann aber kommt das nächste Problem: Man kann keine Einträge in die Registry für einen anderen User vornehmen, als den angemeldeten!

Dazu muss man in die Registry erst per API den Hive eines anderen oder der anderen User laden. Das bin ich bisher noch nicht angegangen - es ist eben doch nicht schnell mal in einer Stunde erledigt, sondern ziemlich kompliziert. :(

Das - Registrierung nur im HKEY_User-Zweig - ist nunmal leider generell das Problem mit VBA-COM-Addins. Als vorübergehende Notlösung kann ich dem Procbrowser nur eine Batchdatei oder so beifügen, die die Registrierung des Addins für einen anderen User vornimmt, wenn er manuell drauf doppelklickt.

Ciao, Sascha

immelmann
17.07.2009, 14:39
Hallo Sascha,
ich sehe da auf den ersten Blick kein Problem, denn ich bin ja als derjenige Nutzer angemeldet, mit dem ich tagtäglich arbeite und entwickle.
Dann habe ich mir die SID ausgeben lassen, die reg-Datei (#96) angepasst und diese als Admin ausgeführt (cmd-Fenster).

Ich sehe bei der installation 2 Wege.
1. als eingeschränkter User angemeldet und die Installation wird per "Ausführen als" durchgeführt. Dann sollte bei der Installation ein Dialog kommen, der jenen User anzeigt, der angemeldet ist.
Für diesen wird die SID ermittelt und der Rest ist bekannt.

2. Man ist als Admin angemeldet und möchte das Tool für einen anderen User verfügbar machen. Ahnlich wie oben, werden dann allerdings alle verfügbaren User des PC angezeigt, einer wird ausgewählt, die SID ermittelt. Dann erfolgt eine temp. Anmeldung unter diesem Useraccount, um den Reg.-eintrag vorzunehmen.

Ist das zu komplex??

2.

Sascha Trowitzsch
17.07.2009, 15:53
Hi Torsten,
Ist das zu komplex??

;)
Auf dem Weg, wie von dir/euch beschrieben, nicht.
Ich wollte aber eigentlich direkt in die Setuproutine des Procbrowsers gleich was einbauen, das diese Registrierung für wählbare Useraccounts durchführt, ohne zusätzliche Hilfsmittel reinpacken zu müssen.
Imgrunde möchte ich diese Routine sogar direkt in den Procbrowser integrieren, damit später jederzeit ein User über die Optionen des Procbrowsers (vom Admin) hinzugefügt werden kann. Und das erscheint mir derzeit schon noch komplex - ganz einfach, weil ich noch nie mit dem Registry-API und "Fremd-Hives" gearbeitet habe.

Gruß, Sascha

Sascha Trowitzsch
20.07.2009, 18:46
Ok, statt 1,5 Stunden hat es jetzt 1,5 Tage gebraucht, um das Tool zu programmieren...

Im Anhang ein Tool, mit dem man beliebige COM-Addins für beliebige User des Rechners aktivieren/deaktivieren kann - siehe readme.txt im Archiv.

Das Teil hat nun maximal Beta-Status, funktionierte bei mir aber unter XP, Vista und Win7 RC.

Wenn ihr das evtl. testen könntet?
Das Tool produziert ein log.txt im gleichen Verzeichnis, nachdem es ausgeführt wurde. Bei Fehlern bitte mir dieses Log mailen (Adresse im readme).
Interessant sind für mich vor allem User mit servergestützten Profilen - das konnte ich noch nicht ausprobieren.
Danke!

http://www.mosstools.de/index.php?option=com_content&view=article&id=73[/url]
Updates gibt's grundsätzlich dort. Anhang hier deshalb entfernt


Ciao, Sascha

Schreibbüro
02.01.2010, 16:30
Hallo Sascha,

habe heute den ProcBrowser installiert unter Windows XP SP 2 und Word 2000 SR 1. Ich habe den PB einmal kurz zu sehen gekriegt. Nachdem ich dann versucht habe, ihn mit der Maus zum linken Rand zu schieben (also neben den Project Explorer), ist er gar nicht mehr zu sehen. Beim Start resultiert nur die unten zu sehende Fehlermeldung.

Habe bereits deinstalliert und neu installiert - selber Effekt, nur Fehlermeldung, ich krieg den Browser nicht zu sehen. Hab dann in die REgistry gesehen und dort trotz Deinstallation noch einen Zweig mossSOFT gefunden, den ich gelöscht habe, neu installiert, der gleiche Effekt. Ich seh jetzt nur noch die Fehlermeldung, bereits beim Aufruf des VBA-Editors.

Wie kriege ich mein System wieder sauber? Wie kann ich richtig deinstallieren, was muss ich in der Registry noch löschen?
Und wie kann ich ihn neu installieren, so dass er zu sehen ist?

Gruß
Lisa (einigermaßen verzweifelt)

Sascha Trowitzsch
04.01.2010, 10:09
Hallo Lisa,

Wie kriege ich mein System wieder sauber? Wie kann ich richtig deinstallieren...
Naja, eigentlich sollte die Deinstallation über Systemsteuerung/Software ausreichen. Die paar Reste, die in der Registry übrig bleiben, stören weiter nicht bzw. berühren das sonstige System nicht.
, was muss ich in der Registry noch löschen?
Müssen gar nichts. Aber können unter
- HKEY_CURRENT_USER\Software\Microsoft\VBA\VBE\6.0\Addins\ProcBrowser.Connect
- HKEY_CURRENT_USER\Software\VB and VBA Program Settings\VBA AddIns\mossSOFT ProcBrowser

Und wie kann ich ihn neu installieren, so dass er zu sehen ist?
Das ist das Problem. ;)
Es gibt noch einen weiteren Schlüssel, auf den ich aber keinen Einfluss habe:
HKEY_CURRENT_USER\Software\Microsoft\VBA\6.0\Common
...und da der Wert für "Dock".
In diesem unergründlichen Binärstring stehen alle Addins, die sich in die VBA-Umgebung einklinken lassen, also dockende Fenster aufweisen.
VBA handelt das. Wenn ein Fenster eines Addins und auch die eingebauten, wie der Projektexplorer, Direktfenster, Objektkatalog, verschoben oder an anderer Stelle angedockt wird, so merkt sich VBA die Position und die Sichtbarkeit in diesem Schlüssel. Seinen Aufbau konnte ich bisher noch nicht dechiffrieren.
Es reicht, diesen Wert in der Registry zu löschen - er wird beim nächsten Start von VBA neu angelegt. Es sind halt nur die Einstellungen für die VBA-Fenster futsch und man muss sie erneut anordnen.

Bei dir scheint sich der Procbrowser irgendwie auf die Höhe 0 verkleinert zu haben, weshalb es zu dieser Fehlermeldung kommt.
Ich hab mir's notiert und fixe das im nächsten Update.
Danke für das Feedback!

Gruß, Sascha

Schreibbüro
04.01.2010, 22:07
Hallo Sascha,

ah, so ist das. Hab herzlichen Dank. So viele Einstellungen im Editor gibt es ja nicht. Das krieg ich hin.
Meine Kunden haben mich heute dermaßen mit Arbeit bedacht, dass ich weitere Experimente vorerst aufs Wochenende verschieben muss. Ich melde mich dann nochmal, wenn's funktioniert.

Gruß
Lisa

Sascha Trowitzsch
05.01.2010, 01:15
Keine Ursache.

Hey, habe beim Klicken gerade erst realisiert, dass du mittlerweile MVP-Kollegin bist!
Glückwunsch im Nachhinein!
(Obwohl mich die 582 Anschläge noch mehr faszinieren! ;) )

Ciao, Sascha

Schreibbüro
19.01.2010, 22:04
Hallo Sascha,

hurra, jetzt hab sogar ich es hingekriegt. http://www.sbrichter.de/smileys/Grinser.gif Den Wert DOCK gelöscht, alles in Ordnung. ProcBrowser steht brav links neben dem Project Explorer und benimmt sich sehr artig.

Ist schon wirklich eine echte Erleichterung, herzlichen Dank!

Gruß
Lisa

tgm[tw]
29.07.2011, 09:03
Hallo,

leider erhalte ich auf meinem PC (Windows7 64 Bit, Access 2010 64 Bit)
die folgende Fehlermeldung bei der Installation des Procbrowser.
(siehe Anhang)

Auch die manuelle Registrierung der dll funktioniert nicht.

C:\Windows\SysWoW64\regsvr32.exe "C:\Program Files (x86)\mossSOFT\mossTools ProcBrowser\procbrowser.dll"

Hierbei kommt es zur Fehlermeldung (siehe Anhang 2)

Mache ich irgend etwas falsch, oder läuft der Procbrowser nicht auf 64-Bit-Systemen?

Auch das Ausführen als Administrator hilft nicht.

Viele Grüße
Patrick Behr

Thomas Möller
30.07.2011, 08:04
Hallo Patrick,

leider erhalte ich auf meinem PC (Windows7 64 Bit, Access 2010 64 Bit)
die folgende Fehlermeldung bei der Installation des Procbrowser.

Du bist ein Opfer Deiner Installation geworden. ;)

Du verwendest Office 64 Bit. Saschas Add-In ist aber als 32-Bit kompiliert. Das passt nicht zusammen.

Vielleicht hast Du Glück und Sascha kann eine 64-Bit-Version bereitstellen.

CU

tgm[tw]
01.08.2011, 08:23
Ja das hatte ich schon befürchtet dass das nicht passt.
Ich dachte ich teste das mit den 64bit mal an, bisher habe ich aber nur Nachteile festgestellt. :(

Sascha Trowitzsch
01.08.2011, 11:30
Eine 64-Bit-Version wird es so schnell nicht geben, weil der Procbrowser in VB6 programmiert ist.
Der Aufwand, das auf VS2010 zu migrieren, ist mir gegenwärtig viel zu groß - vor allem angesichts der geringen Verbreitung von O2010-64.

Sorry!

Ciao, Sascha

tgm[tw]
01.08.2011, 11:39
Vielen Dank für deine Antwort Sasha!

Ich denke ich werde Office2010 32Bit installieren!

Thomas Möller
01.08.2011, 19:38
Hallo!

Ich dachte ich teste das mit den 64bit mal an, bisher habe ich aber nur Nachteile festgestellt.

Das ist auch kein Wunder. ;) Zumal MS selbst empfiehlt, die 64-Bit-Edition nur in sehr begründeten Ausnahmen einzusetzen. Ansonstern überwiegen nunmal die Nachteile.

Hier kannst Du das ganze auch noch einmal "offiziell" nachlesen:
http://technet.microsoft.com/de-de/library/ee681792.aspx

CU

tgm[tw]
11.08.2011, 10:54
Ich habe jetzt Office 2010 32 Bit installiert, der Procbrwoser lässt sich installieren und starten :) (Vielen Dank für die Hilfe)

Einziges Problem was ich noch habe ist, dass Access sich die Einstellung "Beim Start laden" im Addin-Manager nicht merkt.
Nach jedem Neustart von Access ist das Häckchen wieder Raus.

In der Registry scheint das an dem Wert:
[HKEY_USERS\...\Software\Microsoft\VBA\VBE\6.0\Addins\ProcBrowser.Connect]
"LoadBehavior"=dword:00000000
zu liegen.
Wenn ich diesen auf 3 setze lädt Access den Procbrowser automatisch mit, allerdings wird der Wert beim Schließen von Access wieder auf 0 gesetzt.

Hat dazu jemand eine Idee?

Liebe Grüße
Patrick

tgm[tw]
17.08.2011, 05:15
Einziges Problem was ich noch habe ist, dass Access sich die Einstellung "Beim Start laden" im Addin-Manager nicht merkt.
Nach jedem Neustart von Access ist das Häckchen wieder Raus.

Hat keiner eine Idee dazu? :-)

Noch nicht
03.11.2011, 09:41
Habe das gleiche Problem.....

http://img6.imagebanana.com/img/4gvy6g5w/Screenshot03.11.jpg

RoWo
03.11.2011, 11:01
Nachdem bei mir die Registry immer auf den Wert 0 zurückgesetzt wurde habe ich nun die Zugriffsberechtigung eingeschränkt.

Der Wert wurde auf 3 gesetzt und anschließend bei der Brechtigung des "Setzen" von Werten auf dieses AddIn verweigert und somit kann der Wert nichtmehr automatisch auf 0 zurückgesetzt werden. Ist zwar nervig, da ich es bei jedem Nutzer so machen musste, aber das ist ja auch nur einmalig der Fall.

tgm[tw]
03.11.2011, 11:11
Das habe ich auch schon probiert, allerdings führte das zum Abstürzen von Access beim Schließen einer Datenbank.
Wobei ich nicht mehr sicher bin welche Berechtigungen ich gewählt habe, ich teste das nochma, danke für den Tip!

RoWo
03.11.2011, 11:20
Bis jetzt läufts noch ganz Stabil

Louisleon
09.11.2011, 21:17
Hallo Sascha,

habe auch endlich mal den ProcBrowser getestet!
Sehr schönes Tool!
Allerdings ist mir gleich ein Fehler untergekommen!
Bei einer Deklaration wie z.B.:
Public Var1 As Double, Var2 As Double

werden beide Variablen ordentlich aufgelöst, jedoch erzeugt das anklicken der zweiten einen Fehler (siehe Anhang).

Gruß

LL