Io non ho l'abitudine di commentare un'intera sub... è estremamente scomodo con quell'editor... e non mi ero accorto che ignora anche gli apici...

Scusa, non mi ero spiegato bene: se usi "rem" *non* le elenca, se usi l'apice le elenca!

...zot...
Magari nei prossimi giorni cerco di correggerla.

Non mi sembra il caso... non è un bug... ma un comportamento coerente.

Purtroppo no...
Comunque evitiamo ogni genere di commento, ecco una versione in cui puoi scegliere (con ancora qualche limite, ma più libertà) quello che vuoi visualizzare:

REM  *****  BASIC  *****
Option Explicit

private lCounter as long
private oNewDoc as object
private oStartDoc as object
private oMacroSheet as object

'Più questo valore è elevato, più le sub potranno iniziare lontano dall'inizio riga
'Se si vogliono vedere tutte le macro commentate e non
const iLimiteMax = 7
'Se si vuole evitare di elencare le macro commentate con "REM"
'const iLimiteMax = 5
'Se si vuole evitare di elencare tutte le macro commentate
'const iLimiteMax = 2


'________________________________________________________________________________________________________________________
sub elencaMacro()
   dim sLibraryName() as string
   dim i as long

   sLibraryName() = BasicLibraries.getElementNames()
   lCounter = 0

   oStartDoc = ThisComponent.BasicLibraries

oNewDoc = StarDesktop.loadComponentFromUrl("private:factory/scalc", "_blank", 0, dimArray())
   oNewDoc.sheets.getByIndex(0).name = "Macro"
   oMacroSheet = oNewDoc.sheets.getByName("Macro")

   oMacroSheet.getCellByPosition(0, lCounter).string = "Librerie"
   oMacroSheet.getCellByPosition(1, lCounter).string = "Moduli"
   oMacroSheet.getCellByPosition(2, lCounter).string = "Macro e Funzioni"
   oMacroSheet.getcellbyposition(0, lCounter).CharHeight="14"
   oMacroSheet.getCellByPosition(0, lCounter).CharWeight = 150
   oMacroSheet.getcellbyposition(1, lCounter).CharHeight="14"
   oMacroSheet.getCellByPosition(1, lCounter).CharWeight = 150
   oMacroSheet.getcellbyposition(2, lCounter).CharHeight="14"
   oMacroSheet.getCellByPosition(2, lCounter).CharWeight = 150

   lCounter = lCounter + 1

   for i = lbound(sLibraryName()) to ubound(sLibraryName())
       oStartDoc.loadLibrary(sLibraryName(i))
       getMacroText(sLibraryName(i))
   next i
end sub

'________________________________________________________________________________________________________________________
sub getMacroText(sLibraryName as string)
   dim sModuleNames() as string
   dim sModuleText as string
   dim i as long
   dim oLibrary as object

   oLibrary = oStartDoc.getByName(sLibraryName)
   sModuleNames() = oLibrary.getElementNames()

   for i = lbound(sModuleNames()) to ubound(sModuleNames())
       sModuleText = oLibrary.getByName(sModuleNames(i))
       getMacroNames(sModuleText, sModuleNames(i), sLibraryName)
   next i
end sub

'________________________________________________________________________________________________________________________
sub getMacroNames(sMacrosText as string, _
                   ByVal sModuleName as string, _
                   ByVal sLibraryName as string)
   dim sMacroLines() as string
   dim i as long

   sMacroLines() = split(sMacrosText, chr(10))
   for i = lbound(sMacroLines()) to ubound(sMacroLines())
       If not (InStr(lCase(sMacroLines(i)), "end sub") > 0) or _
           not (InStr(lCase(sMacroLines(i)), "end function") > 0) then
           If ((InStr(lCase(sMacroLines(i)), "sub ") > 0) and _
               (InStr(lCase(sMacroLines(i)), "sub ") < iLimiteMax)) then
oMacroSheet.getCellByPosition(0, lCounter).string = sLibraryName oMacroSheet.getCellByPosition(1, lCounter).string = sModuleName oMacroSheet.getCellByPosition(2, lCounter).string = separateMacroName(sMacroLines(i), "sub")
               lCounter = lCounter + 1
           end If
           If  (InStr(lCase(sMacroLines(i)), "function ") > 0) and _
(InStr(lCase(sMacroLines(i)), "function ") < iLimiteMax) then oMacroSheet.getCellByPosition(0, lCounter).string = sLibraryName oMacroSheet.getCellByPosition(1, lCounter).string = sModuleName oMacroSheet.getCellByPosition(2, lCounter).string = separateMacroName(sMacroLines(i), "function")
               lCounter = lCounter + 1
           end If
       end If
   next i
end sub

'________________________________________________________________________________________________________________________
Function separateMacroName (sMacroTitle as string, sType as string) as string
   dim sSplitted() as string
   dim lI as long

   sSplitted() = split(sMacroTitle, " ")
   lI = 0
   for lI = 0 to UBOUND(sSplitted())
       if InStr(LCase(sSplitted(lI)), sType) > 0 then
           if InStr(LCase(sSplitted(lI + 1)), "(") > 0 then
               sSplitted() = split(sSplitted(lI + 1), "("
               separateMacroName = sSplitted(0)
               exit function
               else
                   separateMacroName = sSplitted(lI + 1)
                   exit function
           end if
       end if
   next lI
End Function

'sub esempio_sub_rem_con_apice

'end sub

REM sub esempio_sub_rem_con_REM

REM end sub

'function esempio_function_rem_con_apice

'end function

REM function esempio_function_rem_con_REM

REM end function

REM  *****  FINE BASIC  *****

A meno che uno volgia soltanto elencare il codice attivo...

Ora lo puoi fare!

Ciao!
Emanuele.

P.S.
Spero non ci siano troppe righe spezzate...

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Rispondere a