Dim oReport As String = "" Dim Tx1 As String = vbTab Dim Tx2 As String = vbTab & vbTab Dim Tx3 As String = vbTab & vbTab & vbTab Dim oVBAProjs As InventorVBAProjects = ThisApplication.VBAProjects For Each oProj As InventorVBAProject In oVBAProjs Dim oComps As InventorVBAComponents = oProj.InventorVBAComponents 'Modules oReport = oReport & "Project Name = " & oProj.Name & vbCrLf oReport = oReport & "Project Type = " & oProj.ProjectType.ToString & vbCrLf oReport = oReport & "Components Count = " & oComps.Count & vbCrLf If oComps.Count = 0 Then Continue For 'skip to next Project For Each oComp As InventorVBAComponent In oComps Dim oMembers As InventorVBAMembers = oComp.InventorVBAMembers 'Subs/Functions oReport = oReport & Tx1 & "Component Name = " & oComp.Name & vbCrLf oReport = oReport & Tx1 & "Component Members Count = " & oMembers.Count & vbCrLf If oMembers.Count = 0 Then Continue For 'skip to next Component For Each oMember As InventorVBAMember In oMembers Dim oArgs As InventorVBAArguments = oMember.Arguments 'input variables/parameters oReport = oReport & Tx2 & "Member Name = " & oMember.Name & vbCrLf oReport = oReport & Tx2 & "Member Type = " & oMember.MemberType.ToString & vbCrLf oReport = oReport & Tx2 & "Member Arguments Count = " & oArgs.Count & vbCrLf If oArgs.Count = 0 Then Continue For 'skip to next Member For Each oArg As InventorVBAArgument In oArgs oReport = oReport & Tx3 & "Argument Name = " & oArg.Name & vbCrLf oReport = oReport & Tx3 & "Arument Type = " & oArg.ArgumentType & vbCrLf Next 'oArg Next 'oMember Next 'oComp Next 'oProj Dim oTxtFile As String = "C:\Temp\Inventor VBA Structure Data.txt" If System.IO.File.Exists(oTxtFile) Then System.IO.File.Delete(oTxtFile) Using oWriter As IO.StreamWriter = System.IO.File.CreateText(oTxtFile) oWriter.Write(oReport) oWriter.Close() End Using ThisDoc.Launch(oTxtFile)