Redesign starých komentářů v sešitu

Redesign starých komentářů je zapotřebí v případě, že se vám dostal do ruky sešit s větším množstvím původních komentářů. O štábní kultuře nelze mluvit, jejich podoba se nezměnila za téměř dvacet let. Komentáře si žijí ve svém vlastním světě s původní barevnou paletou, stále jsou schopny se vykreslovat mimo viditelnou oblast, nedrží na místě návrhu, a nechají se překrýt příčkami. Navíc podle mého názoru otravně vkládají do tvaru komentáře jméno autora.

Komentář v Excelu 2016

Komentář v Excelu 2016

Alespoň s něčím si dnes poradíme. Stejně jako jsme se dříve pustili do Efektivního přebarvení oblasti buněk, budeme programově měnit podobu stávajících komentářů.

Původní komentáře (Excel 2003)

Původní komentáře (Excel 2003)

Sub TestRedesignKomentaru()

    Call RedesignKomentaru1(True, True)
   
End Sub

Sub RedesignKomentaru1(Optional bOdstranitJmeno As Boolean = True, Optional _
    bStin As Boolean = False)

    Dim cKomentar As Comment

    Application.ScreenUpdating = False

    'pro každý komentář na listu
    For Each cKomentar In ActiveSheet.Comments
        With cKomentar.Shape
            .AutoShapeType = msoShapeFlowchartDocument
            '(bílá) barva šipky
            '.Line.ForeColor.RGB = RGB(255, 255, 255)
            'barva šipky podle pozadí buňky vpravo
            .Line.ForeColor.RGB = cKomentar.Parent.Offset(0, 1).Interior.Color
            'skrytí obrysu
            .Line.Visible = msoFalse
            'barva pozadí (šedý přechod)
            .Fill.ForeColor.SchemeColor = 9
            .Fill.OneColorGradient msoGradientHorizontal, 1, 0.43
            'odstranit jméno z komentářů
            If bOdstranitJmeno Then
                strUzivatel = Application.UserName & ":" & Chr(10)
                strText = cKomentar.Text
                iDelka = Len(strUzivatel)
                If Left(strText, iDelka) = strUzivatel Then
                    .TextFrame.Characters(1, iDelka).Delete
                End If
            End If
            .TextFrame.Characters.Font.Name = "Calibri"
            .TextFrame.Characters.Font.Size = 11
            '(šedá) barva písma
            .TextFrame.Characters.Font.ColorIndex = 16
            'vzdálenost textu od okrajů
            .TextFrame.AutoMargins = False
            .TextFrame.MarginTop = 5
            .TextFrame.MarginBottom = 5
            .TextFrame.MarginLeft = 5
            .TextFrame.MarginRight = 5
            'automatická velikost tvaru
            '.TextFrame.AutoSize = True
            'stín
            If bStin Then
                .Shadow.Type = msoShadow6
                .Shadow.ForeColor.SchemeColor = 55
                .Shadow.Visible = msoTrue
                .Shadow.OffsetX = 4
                .Shadow.OffsetY = 4
            Else
                'beze stínu
                .Shadow.Visible = msoFalse
            End If
        End With
    Next

    Application.ScreenUpdating = True

End Sub
Redesign komentářů 1

Redesign komentářů 1

Procedura zpracovává dva volitelné parametry. První určuje, zda-li se chceme zbavit jména v komentáři, druhá, jestli si přejeme zobrazit stín tvaru. Osobně nemám rád ani kostrbatou vodicí čáru se šipkou u tvaru. U toho zvoleného se vykresluje napravo od buňky a snažím se ji skrývat (volím stejnou barvu, jako má buňka pod ní). Zbytek kódu už není tak zábavný, i když jeho tvorba nebyla úplně jednoduchá, protože Záznamník maker se ke komentářům příliš nemá.

V příloze naleznete ještě jeden styl komentářů, a to v proceduře RedesignKomentaru2.

Redesign komentářů 2

Redesign komentářů 2

Někdy příště si ukážeme, jak vytvářet komentáře ve vlastní režii.

Příloha
redesign_komentaru.zip

Klikni a stahuj!