ふにゃるんv2

もとは、http://d.hatena.ne.jp/Wacky/

ソリューションエクスプローラを折り畳むマクロ

出張先で、いつも しばれる思いをしています。
いや、人間様以外の環境安定の為に、クーラーガンガン効いている場所で仕事していましてね、歩き回っていれば何という事もないのでしょうけど、座り仕事だから寒さ×2です。はい。


ところで、Visual Studio .NETを使っていると、ソリューション内に複数のプロジェクトを作って管理します。
いつもは全てのプロジェクトを折り畳んで作業しているんですが、「ソリューションのビルド」を実施すると、全部開いちゃう。
で、あ〜面倒だなぁ、とブツブツいいながら手で閉じていたんですが、いい加減鬱陶しくなってきたので、マクロを組んでみました。

Sub ソリューションを折り畳む()
    ' ソリューションエクスプローラを選択する
    DTE.Windows.Item(Constants.vsWindowKindSolutionExplorer).Activate()

    ' ソリューションの名前を求める
    Dim solName As String
    For Each prop As Object In DTE.Solution.Properties
        If prop.Name = "Name" Then
            solName = prop.Value
            Exit For
        End If
    Next
    Debug.Print(solName)

    ' ソリューションの各プロジェクトを列挙し、アイテムを縮小させる
    Debug.Print(DTE.Solution.Count)
    Dim prj As Project
    For Each prj In DTE.Solution
        Debug.Print(prj.Name)
        DTE.ActiveWindow.Object.GetItem(solName + "\" + prj.Name).UIHierarchyItems.Expanded = False
    Next
End Sub

一々閉じる必要も無いんでしょうけど、何か気になるんですよね。こういうの。