Max M specjalista, devim
Bartek
Borczyk
Operator liczb i
słów
Temat: Inwentaryzacja kodu VBA -poszukiwana procedura
http://peltiertech.com/list-vba-procedures-by-vba-modu...Max M specjalista, devim
Temat: Inwentaryzacja kodu VBA -poszukiwana procedura
Dzięki, działa ale wymaga korekcji:brak podziału na moduły i arkusze, sub i function...
Ale już coś :)
Oskar
Shon
Dodatki do Office
www.VBATools.pl
Temat: Inwentaryzacja kodu VBA -poszukiwana procedura
No to tak na szybko. zamień tą linijkę:sOutput(2 + iRow) = vbComp.Name & ": " & sProcName
na:
sOutput(2 + iRow) = vbComp.name & " [" & vbMod.CountOfLines & "] - " & sProcName & " [" & iLine & "]"
I masz ilość inii kodu per moduł oraz liczbę pierwszego wiersza dla nazwy tej procedury/funkcji.
Max M specjalista, devim
Temat: Inwentaryzacja kodu VBA -poszukiwana procedura
Dzięki serdeczne! Przerobiłem to po swojemu na procedury funkcjonalne listujące do tablicy (wiersze x kolumny):1. Listowanie modułów: Nazwa, typ, Liczba linii kodu, Liczba procedur
2. Listowanie procedur: Nazwa, typ, Liczba linii kodu, Nazwa procedury, Nr linii procedury
Czy jest możliwość rozpoznania procedur -czy to Sub czy Function? Ew. w jaki sposób?
Oskar
Shon
Dodatki do Office
www.VBATools.pl
Temat: Inwentaryzacja kodu VBA -poszukiwana procedura
Pewnie jest jeszcze inna droga, ale takie coś mi wyszło i w większości się sprawdza.Na początku deklaracja zmiennej string
dim k$
Modyfikacja jeszcze raz:
k = ""
If InStr(1, vbMod.Lines(iLine, 3), "Sub ") > 0 Then k = "Procedura"
If InStr(1, vbMod.Lines(iLine, 3), "Function ") > 0 Then k = "Funkcja"
sOutput(2 + iRow) = vbComp.name & " [" & vbMod.CountOfLines & "] - [" & _
k & "] " & sProcName & " [" & iLine & "]"
Gdzie wykryje to podstawi.
Sławomir
Broda
VBA, Excel, Access,
SAP i wszystko
związane z
automatyzac...
Temat: Inwentaryzacja kodu VBA -poszukiwana procedura
Oskar S.:Instr zrobi błędy. Np. dla zmiennych "MobSub", "SuperFunction ". :)
Pewnie jest jeszcze inna droga, ale takie coś mi wyszło i w większości się sprawdza.
Na początku deklaracja zmiennej string
dim k$
Modyfikacja jeszcze raz:
k = ""
If InStr(1, vbMod.Lines(iLine, 3), "Sub ") > 0 Then k = "Procedura"
If InStr(1, vbMod.Lines(iLine, 3), "Function ") > 0 Then k = "Funkcja"
sOutput(2 + iRow) = vbComp.name & " [" & vbMod.CountOfLines & "] - [" & _
k & "] " & sProcName & " [" & iLine & "]"
Gdzie wykryje to podstawi.
Oskar
Shon
Dodatki do Office
www.VBATools.pl
Temat: Inwentaryzacja kodu VBA -poszukiwana procedura
Sławek - jakiś przykład?
Sławomir
Broda
VBA, Excel, Access,
SAP i wszystko
związane z
automatyzac...
Temat: Inwentaryzacja kodu VBA -poszukiwana procedura
Oskar S.:Podałem dwa. Linie z takimi tekstami zostaną błędnie oznaczone jako procedury/Funkcje.
Sławek - jakiś przykład?
Oskar
Shon
Dodatki do Office
www.VBATools.pl
Temat: Inwentaryzacja kodu VBA -poszukiwana procedura
Sławek, no chwila. Nie przypominam sobie o jakiś specjalnych właściwościach zmiennych o zarezerwowanych nazwach "MobSub" i "SuperFunction ". Pytam z ciekawości - bo może są.Skoro to nazwy zamiennych (wpisane z palca), to nie będzie problemów aby je po prostu zmienić w kodzie na dowolnie inne. Zapisać w projekcie aby problemu nie było
Pow kod z linku jaki podał Bartek, działa szybko, a to dlatego ze nie pochla się nad każdą linią.
Można oczywiście przykombinować jeszcze i analizować każdy wpis aby wyeliminować błędy. Niemniej jednak u mnie testy wykazały że 3 linie do analizy wystarczą.
Sam byłem ciekawy jego pracy, ponieważ nikt mnie nie rozlicza lub promuje za nadmierną ilość kodu. Sam uważam ze im mniejszy i oparty właściwych na obiektach jest efektywniejszy, co oczywiście nie idzie w parze jeśli mamy przysłowiowe 50 groszy za linię kodu.
Max M specjalista, devim
Temat: Inwentaryzacja kodu VBA -poszukiwana procedura
Dzięki! Dzisiaj nie mam czasu na test, ale wczoraj sprawdziłem, że analiza linia po linii w przypadku ok. 30 modułów, 400 procedur i 50 tys linii kodu to czas naprawdę dłuższy, ale niezauważalnie ... :)Ten post został edytowany przez Autora dnia 21.11.14 o godzinie 10:16
Sławomir
Broda
VBA, Excel, Access,
SAP i wszystko
związane z
automatyzac...
Temat: Inwentaryzacja kodu VBA -poszukiwana procedura
Oskar S.:Chodziło mi o to, że lepiej użyć MID niż INSTR.
Sławek, no chwila. Nie przypominam sobie o jakiś specjalnych właściwościach zmiennych o zarezerwowanych nazwach "MobSub" i "SuperFunction ". Pytam z ciekawości - bo może są.
Skoro to nazwy zamiennych (wpisane z palca), to nie będzie problemów aby je po prostu zmienić w kodzie na dowolnie inne. Zapisać w projekcie aby problemu nie było
Sławomir
Broda
VBA, Excel, Access,
SAP i wszystko
związane z
automatyzac...
Temat: Inwentaryzacja kodu VBA -poszukiwana procedura
Oskar S.:Chodziło mi o to, że lepiej użyć MID niż INSTR.
Sławek, no chwila. Nie przypominam sobie o jakiś specjalnych właściwościach zmiennych o zarezerwowanych nazwach "MobSub" i "SuperFunction ". Pytam z ciekawości - bo może są.
Skoro to nazwy zamiennych (wpisane z palca), to nie będzie problemów aby je po prostu zmienić w kodzie na dowolnie inne. Zapisać w projekcie aby problemu nie było
Wtedy identyfikacja jest jednoznaczna.
Jak to nie nad każdą?
Pow kod z linku jaki podał Bartek, działa szybko, a to dlatego ze nie pochla się nad każdą linią.
Do While iLine < vbMod.CountOfLines
>
Sam byłem ciekawy jego pracy, ponieważ nikt mnie nie rozlicza lub promuje za nadmierną ilość kodu. Sam uważam ze im mniejszyMam podobne podejście. Im mniej tym lepiej.
Max M specjalista, devim
Temat: Inwentaryzacja kodu VBA -poszukiwana procedura
Oskar S.:
oczywiście nie idzie w parze jeśli mamy przysłowiowe 50 groszy za linię kodu.
To już wiadomo skąd tyle kodu. ;)
Potem użytkownik taki jak ja walczy ze zrozumieniem potrzeby tasiemców. Przykład: 3 programiki w Excel VBA po ok. 50 tys. linii kodu i kilkaset procedur... :)Ten post został edytowany przez Autora dnia 21.11.14 o godzinie 14:11
Sławomir
Broda
VBA, Excel, Access,
SAP i wszystko
związane z
automatyzac...
Temat: Inwentaryzacja kodu VBA -poszukiwana procedura
Adax A.:Jak zaczną mi płacić od linii kodu to przestanę stosować pętelki :)
Oskar S.:
oczywiście nie idzie w parze jeśli mamy przysłowiowe 50 groszy za linię kodu.
To już wiadomo skąd tyle kodu. ;)
Potem użytkownik taki jak ja walczy ze zrozumieniem potrzeby tasiemców. Przykład: 3 programiki w Excel VBA po ok. 50 tys. linii kodu i kilkaset procedur... :)
Podobne tematy
-
Excel » Unikaty z kolumny - bez VBA, tabel przestawnych i SQL -
-
Excel » Data Management Officer w dziale Reporting&Analytics!... -
-
Excel » VBA - makro - wielokrotne kopiowanie wiersza ze względu... -
-
Excel » Filtrowanie zaawansowane - VBA Excel -
-
Excel » VBA - zmiana formatu - czas -
-
Excel » VBA Hiperłącze -
-
Excel » Kalendarze VBA (wyskakujące) - jakieś ciekawe możecie... -
-
Excel » VBA -
-
Excel » Poprawa kodu makra - zapisz jako -
-
Excel » Procentowe wybieranie wierszy z arkusza. VBA -
Następna dyskusja: