コードの折り畳みでミジンコのおさらい

一昨日は、ソースコードを折りたたむマクロを作成してみた。
infoment.hatenablog.com

しかしこれだと、折り畳み時のラベルが全部同じになってしまう。
そこで、ラベルを引数として、以下の通り改修した。

Sub 折り畳み(Optional ラベル As String = "ソースコード")
    Dim col As Collection
    Set col = New Collection
        col.Add "<div onclick=""obj=document.getElementById('oritatami_part').style; obj.display=(obj.display=='none')?'block':'none';"">"
        col.Add "<a style=""cursor:pointer;"">◆" & ラベル & "(クリックで展開)◆</a>"
        col.Add "</div>"
        col.Add "<div id=""oritatami_part"" style=""display:none;clear:both;"">"
        col.Add ">|vb|"
    
    Dim CB As DataObject
    Set CB = New DataObject
        CB.GetFromClipboard
    Dim temp As String
        temp = CB.GetText
    Dim SplitSeq As Variant
        SplitSeq = Split(temp, vbNewLine)
    Dim i As Long
        For i = LBound(SplitSeq) To UBound(SplitSeq)
            col.Add SplitSeq(i)
        Next
        col.Add "||<"
        col.Add "</div>"
        
    Dim seq As Variant
    ReDim seq(1 To col.Count)
        For i = 1 To col.Count
            seq(i) = col.Item(i)
        Next
        
        CB.SetText Join(seq, vbNewLine)
        CB.PutInClipboard
End Sub

今まで、複数回にわたって取り組んだ場合、コードがバラバラに掲載されていて、作成した本人でさえ再現に困ることがあった。
そこで過去記事の中から特に「バラバラ度」が酷いものを、折を見てまとめてみようと思う。

例えば、複数のオートシェイプをミジンコのように動かすマクロがこちら。

f:id:Infoment:20190414150939g:plain

これなら、あちこちから集めなくても済む。

ところでこの折り畳み方法、複数の折り畳み個所を作成しても、有効になるのは何故か一つ目だけだったりする。この辺り、まるっとコピペの限界を感じている。
内容をよく理解して、更なる改善を目指すとしよう。

※その後、空腹おやじさんからのご指摘で、原因が判明しました。
 修正版を4/15の記事で公開中です。

参考まで。