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.
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ářů.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 | 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 |
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.
Někdy příště si ukážeme, jak vytvářet komentáře ve vlastní režii.
Příloha
redesign_komentaru.zip