2010-04-13 7 views
7

Etkin excel çalışma kitabında belirli bir modül adında liste işlevine bakan bir yardımcı makro üzerinde çalışıyorum. Örn: "Module1" modül ismim var. Bu modülde İçindeExcel VBA'da belirli bir modül adının İşlev ve Alt listesi nasıl alınır?

Sub Sub1() 
End Sub 

Sub Sub2() 
End Sub 

Function Func1() 
End Function 

Function Func2() 
End Function 

Fonksiyon ve alt adlarının listesini döndürebilir bir komut veya rutin var mı alt aşağıdaki işlevi veya sahiptir?

cevap

5

Burada Chip Pearson'ın sitesine bir bağlantı var. VBE'yi etkileyen veya kullanan bir şeyi programlamaya ihtiyacım olduğunda gittiğim yer burası. İlginizi çekebilecek 2 bölüm var. Bir projedeki tüm modüller listelenecektir. Ve başka bir modülde tüm prosedürleri listeler. Umarım yardımcı olur. ,

Bu kod Module1 tüm prosedürleri listeler konusu girişi başlayan: Sitenin (VBIDE nesne kitaplığına bir başvuru eklenmesine ilişkin talimatlar için sitesini ziyaret ettiğinizden emin olun gelen

http://www.cpearson.com/excel/vbe.aspx

Kodu A1 hücresi.

da "MZ-Araçlar" adlı ücretsiz bir araç yoktur
Sub ListProcedures() 
    Dim VBProj As VBIDE.VBProject 
    Dim VBComp As VBIDE.VBComponent 
    Dim CodeMod As VBIDE.CodeModule 
    Dim LineNum As Long 
    Dim NumLines As Long 
    Dim WS As Worksheet 
    Dim Rng As Range 
    Dim ProcName As String 
    Dim ProcKind As VBIDE.vbext_ProcKind 

    Set VBProj = ActiveWorkbook.VBProject 
    Set VBComp = VBProj.VBComponents("Module1") 
    Set CodeMod = VBComp.CodeModule 

    Set WS = ActiveWorkbook.Worksheets("Sheet1") 
    Set Rng = WS.Range("A1") 
    With CodeMod 
     LineNum = .CountOfDeclarationLines + 1 
     Do Until LineNum >= .CountOfLines 
      ProcName = .ProcOfLine(LineNum, ProcKind) 
      Rng.Value = ProcName 
      Rng(1, 2).Value = ProcKindString(ProcKind) 
      LineNum = .ProcStartLine(ProcName, ProcKind) + _ 
        .ProcCountLines(ProcName, ProcKind) + 1 
      Set Rng = Rng(2, 1) 
     Loop 
    End With 

End Sub 

Function ProcKindString(ProcKind As VBIDE.vbext_ProcKind) As String 
    Select Case ProcKind 
     Case vbext_pk_Get 
      ProcKindString = "Property Get" 
     Case vbext_pk_Let 
      ProcKindString = "Property Let" 
     Case vbext_pk_Set 
      ProcKindString = "Property Set" 
     Case vbext_pk_Proc 
      ProcKindString = "Sub Or Function" 
     Case Else 
      ProcKindString = "Unknown Type: " & CStr(ProcKind) 
    End Select 
End Function 
2

. sipariş, kullanılmayan değişkenleri kontrol, fcode o, o numaralar hatları bir eklenti olarak kurun standart hata yönetimi kodu oluşturmak senin işlevler bir d alt ve ... otomatik olarak parametreler, yorumlar, vb ile prosedürlerinizin bir listesini oluşturarak kodunuzu ... .... Harika bir araç!

İlgili konular