Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba 如何使用VS宏访问SolutionFolders中的项目?_Vba_Visual Studio - Fatal编程技术网

Vba 如何使用VS宏访问SolutionFolders中的项目?

Vba 如何使用VS宏访问SolutionFolders中的项目?,vba,visual-studio,Vba,Visual Studio,我知道我可以用宏()迭代解决方案的项目 但我的SLN的顶层包含五个解决方案文件夹。我只获得这五个文件夹,但没有它们的条目 我猜项目对象的类型可以告诉我它是一个真实的项目还是一个文件夹。但是我找不到任何关于如何找到它的参考资料 编辑: 我知道只有一个解决办法。“解决方案文件夹”是指使用解决方案资源管理器在解决方案中创建的文件夹→ 右键单击解决方案→ 添加→ 新建解决方案文件夹。这将创建一个新的逻辑文件夹,使您有机会在子文件夹中组织解决方案的项目 这会给你一个想法 Sub ListSolution

我知道我可以用宏()迭代解决方案的项目

但我的SLN的顶层包含五个解决方案文件夹。我只获得这五个文件夹,但没有它们的条目

我猜
项目
对象的
类型
可以告诉我它是一个真实的项目还是一个文件夹。但是我找不到任何关于如何找到它的参考资料


编辑:

我知道只有一个解决办法。“解决方案文件夹”是指使用解决方案资源管理器在解决方案中创建的文件夹→ 右键单击解决方案→ 添加→ 新建解决方案文件夹。这将创建一个新的逻辑文件夹,使您有机会在子文件夹中组织解决方案的项目

这会给你一个想法

Sub ListSolutionFolders()
        Dim solutionFolder As Project
        Dim solutionFolders As Projects
        Dim name As String
        Dim type As String
        Dim projects As ProjectItems
        Dim project As ProjectItem

        solutionFolders = DTE.Solution.Projects
        For Each solutionFolder In solutionFolders
            name = solutionFolder.Name
            projects = solutionFolder.ProjectItems

            For Each project In projects
                If Not project.SubProject.Kind Is Nothing Then
                    'this is a real project
                    type = project.SubProject.Kind
                Else
                    'Not a project
                End If
            Next
        Next
    End Sub
请注意类型,它是一个GUID,您可以查看此链接了解它的含义
其他项目类型(如SSRS)未在此处列出,但也会输出GUID,这将为您提供一个想法

Sub ListSolutionFolders()
        Dim solutionFolder As Project
        Dim solutionFolders As Projects
        Dim name As String
        Dim type As String
        Dim projects As ProjectItems
        Dim project As ProjectItem

        solutionFolders = DTE.Solution.Projects
        For Each solutionFolder In solutionFolders
            name = solutionFolder.Name
            projects = solutionFolder.ProjectItems

            For Each project In projects
                If Not project.SubProject.Kind Is Nothing Then
                    'this is a real project
                    type = project.SubProject.Kind
                Else
                    'Not a project
                End If
            Next
        Next
    End Sub
请注意类型,它是一个GUID,您可以查看此链接了解它的含义
其他项目类型(如SSRS)未在此处列出,但也会输出GUID

“解决方案文件夹”没有任何意义,只有一个解决方案。是的,我知道。请参阅更新的问题。“解决方案文件夹”没有任何意义,只有一个解决方案。是的,我知道。请参阅更新的问题。这正是我要找的参考资料!非常感谢。这正是我要找的参考资料!非常感谢。