|
Ve spolupráci se SEDUO jsem vytvořil několik videokurzů:
Co vše lze provádět s komentářem v MS Excelu za využití VBA.
Doplněno: 26.7.2014
S komentáři ve VBA jdou vytvářet zajímavé věci. V tomto článku je popsáno co, lze s komentářem provádět, včetně příslušných kódu. Včetně sešitu ke stažení pro vaše další pokusy. Pro přehlednost je článek rozdělen an kapitoly:
Ač se to nezdá je to velice dobrá pomůcka. Osobně využívám nejen k rozšíření nápovědy. Takto mohu jednoduše napovědět uživateli, proč a co má do buňky zadávat. Po čase zjistíte, že informace v komentářích pomohou i vám, když se po roce vrátíte k vámi vytvořenému sešitu, tak ihned víte co bylo vzorcem v dané buňce myšleno (nemusíte si uchovávat v paměti několik desítek šablon a výpočtu, proč a co konktétním výpočtem bylo myšleno, málokdo má paměť jako slon).
Bohužel v praxi jsou poznámky málo využívany, přitom ve spojení s VBA mají všestrané využití. Praktické použití komentářů ve spojení s VBA je popsáno v tomto článku.
Nejprve zjistíme zda buňka obsahuje komentář
If ActiveCell.Comment Is Nothing Then
MsgBox "Nebsahuje komentář."
Else
komentarVBunce = ActiveCell.Comment.Text
MsgBox "Obsahuje komentář." & komentarVBunce
End If
Případně tento komentář vypíšeme do dialogového okna.
If ActiveCell.Comment Is Nothing Then
MsgBox "... Bez komentáře ..."
Else
komentarVBunce = ActiveCell.Comment.Text
MsgBox "Obsahuje komentář:" & komentarVBunce
End If
Jeden z nejčastějších úkolu.
Požadovaný text, který chceme do komentáře, zadáme v zobrazeném dialogovém okně.
If ActiveCell.Comment Is Nothing Then
novycmnt = InputBox("Vlož nový komentář:", , cmnt)
ActiveCell.AddComment Text:=novycmnt
Else
cmnt = ActiveCell.Comment.Text
novycmnt = InputBox("Přepis původní komentář", , cmnt)
ActiveCell.Comment.Text Text:=novycmnt
End If
Vhodné například, když potřebuji ukázat jak vypadáý vzorec v buňce.
If ActiveCell.Comment Is Nothing Then
ActiveCell.AddComment.Text Text:=ActiveCell.FormulaLocal
End If
Jak odstranit komentář.
ActiveCell.Comment.Delete
Potřebujeme-li smazat text v komentáří, ale komentář ponechat:
If ActiveCell.Comment Is Nothing Then
Else
ActiveCell.Comment.Text Text:=" "
End If
Jak pomocí VBa kódu skrývat a zobrazovat komentáře:
Range("E6").Comment.Visible = True
nebo pro všechny
For Each c In ActiveSheet.Comments
c.Visible = False
Next
Vložit a upravit komentář (barva, velikost, font). Vloží text a nastaví formát fontu.
Dim cmt As Comment
Set cmt = ActiveCell.Comment
If cmt Is Nothing Then
ActiveCell.AddComment Text:="dddd"
Set cmt = ActiveCell.Comment
With cmt.Shape.TextFrame.Characters.Font
.Name = "Times New Roman"
.Size = 15
.Bold = False
.ColorIndex = 0
End With
End If
Upravit již hotový komentář
If ActiveCell.Comment Is Nothing Then
Else
With ActiveCell.Comment.Shape.TextFrame.Characters.Font
.Name = "Times New Roman"
.Size = 15
.Bold = True
.ColorIndex = 3
End With
End If
Místo obdelníku bude komentář vypadat jako hvězdička
If ActiveCell.Comment Is Nothing Then
Else
With ActiveCell.Comment.Shape
.AutoShapeType = msoShape32pointStar
.Line.Visible = msoFalse
End With
End If
Přidání stínu pro komentář
If ActiveCell.Comment Is Nothing Then
Else
With ActiveCell.Comment.Shape
.Shadow.Type = msoShadow7
.Shadow.ForeColor.SchemeColor = 55
.Shadow.Visible = msoTrue
.Shadow.OffsetX = 2
.Shadow.OffsetY = 2
End With
End If
V přípravě...
Potřebujemeli komentář posunout. Opět za využití VBA.
ActiveCell.Comment.Shape.Top = ActiveCell.Comment.Parent.Top + 30
ActiveCell.Comment.Shape.Left = ActiveCell.Comment.Parent.Left + 30
Poznámka: komentář musí být zobrazen. Pokud se zobrazuje automaticky posunutí pouhým najetím myši nepoznáte.
ActiveCell.Comment.Shape.Top = ActiveCell.Comment.Parent.Top + 5
ActiveCell.Comment.Shape.Left = ActiveCell.Comment.Parent.Offset(0, 1).Left + 5
Do poznámky se již nebude psát vaše jméno (UserName, které je zadáno v systému). Co text poznámka.
Application.UserName = "Poznámka"
Soubor
Komentáře jak na ně v Excel VBA
ke stažení zdarma. Soubor využívá makra (pro správnou funkci nutno povolit spouštění maker).
Ukázkové příklady, testováno Excel 2007 a Excel 2010 (česká verze) pod Windows 7.
Předpokládám, že jsem probral všechny základní činosti, které lze s komentářem provádět. Můžete doplnit do komentářů pod článkem.
Článek byl aktualizován: 19.09.2020 11:06
Ušetřil vám tento web čas, peníze? Pomohl vyřešit problém? Jste ochotni poskytnout symbolickou odměnu na další rozvoj? Vybrte si formu odměny, která vám vyhovuje.
Microsoft Office (Word, Excel, Google tabulky, PowerPoint) se věnuji od roku 2000 (od 2004 na této doméně) - V roce 2017 jsem od Microsoft získal prestižní ocenění MVP (zatím jsem jediný z ČR v kategorií Excel). Své vědomosti a zkušenosti dávám k dispozici i on-line ve videích pro SEDUO. Ve firmách školím a konzultuji, učím na MUNI. Tento web již tvořím přes 15 let. Zdarma je zde přes 1.000 návodu, tipů a triků, včetně přes 250 různých šablon, sešitů.
Přidáno: 18.09.12 17:29
Dobrý den, prosím o radu: vkládám do aktivní buňky obrázek jako komentář pomocí makra, ale potřeboval bych, aby po vložení obrázku se tabulka přesunula tak, aby tato aktivní buňka byla v levém horním rohu, takže po následném najetí kurzorem na ni nebude část obrázku schován pod spodním okrajem okna. Děkuji předem za odpověď.
Přidáno: 19.09.12 20:29
TO StandaK: Téma vkládaní obrázku do komentáře jsem našel u kolegy na http://excelplus.net/news.php?readmore=145
Přidáno: 31.07.13 10:11
Dobrý deň! Prosím vás neviete mi poradiť ako vložit formát PDF do komentára v bunke? dakujem Luboš
Přidáno: 29.07.14 08:17
To Luboš: Jak vkládat *.pdf do komentáře nevím. Řekl bych, že to bohužel nejde.
Přidáno: 31.10.14 09:48
Dobrý den. Mám velikou prosbu ohledně komentářů (poznámek). V buňce A1 mám počet kusů (100), který je třeba dodat zákazníkovi, do B1 zapíši počet kusů, které chci odepsat(10). A teď to zábavné :-) Po zapsání počtu do B1 potřebuji tuto hodnotu odečíst od A1 do poznámky (A1) zapsat datum a také tuto hodnotu. Následně vymazat hodnotu B1. A takto pokaždé dokud A1 nebude 0. Tak že v poznámce bude několik řádek s datumem a počtem odepsaných kusů. A to pro každý řádek. Vím je to krkolomné, zkoušel jsem to celou noc a vždy se mi zapíše jen první záznam, při druhém to hodí chybu.
Přidáno: 02.11.14 14:36
Dobrý deň, Potrebujem poriadiť (ak chce ochotný).Cez VBA vkladám do komentára hodnoty (text cez formuláre). Mám to na viacej riadkov oddelené prázdnymi riadkami, ale potrebujem to rozlíšiť farebne a veľkosťou písma (teda v komentári). Ide mi meniť font len celého komentára, nie je možné meniť font po riadkoch zvlášť? ĎAKUJEM za odpoveď!
Přidáno: 03.11.14 10:22
To Honza: -- na list, kde sú umiestnené data (nie do bežného modulu), treba umiestniť tento kód:Private Sub Worksheet_Change(ByVal Target As Range)
'Do poznámky v A1 zapisuje dátum + ks vydané zákazníkovi
'+ v A1 sleduje zostatok na sklade
Zasoby = "A1" ' A1 -poč.hodnota
Vydaj = "B1" ' B1 -odpočítavaná hodnota z A1
With Range(Zasoby)
If Target.Address = Range(Vydaj).Address Then
Zostatok = Range(Zasoby) - Range(Vydaj)
If Zostatok < 0 Then
MsgBox "Toľko sa už nedá odpísať"
Else
If .Comment Is Nothing Then
.AddComment Text:=Now() & " / -" & Range(Vydaj).Text & "ks" & vbLf
Else
.Comment.Text Text:=.Comment.Text & Now() & " / -" & Range(Vydaj).Text & "ks" & vbLf
End If
Range(Zasoby) = Zostatok
End If
End If
End With
End Sub
Přidáno: 04.11.14 07:33
To Honza: -- ...ospravedlňujem sa, zabudol som na požiadavku "vymazať hodnotu B1". --> Čiže za riadok: -- "Range(Zasoby) = Zostatok" -- treba ešte doplniť:Application.EnableEvents = False
Range(Vydaj) = "" ' vymazať "B1"
Application.EnableEvents = True
Přidáno: 14.02.15 20:57
Potřebuji "vysypat" data z komentářů (cca 6000 buněk s komentáři), jak na to? Dík za radu.
Přidáno: 17.02.15 09:01
To Irulan: -- neviem čo presne znamená "vysypať", ale ak sa jedná o odstránenie komentárov napr. z listu, tak:Sub Test()
For Each cmt In Sheets("List1").Comments
cmt.Delete
Next cmt
End Sub
Přidáno: 27.02.15 12:35
Dobrý den, dokáže mi někdo poradit s vkládáním a úpravou víceřádkových komentářů? Mám formulář s 5 TextBox - co TextBox to jeden řádek komentáře. Když dám vložit komentář, tak vše proběhne v pohodě, ale když to chci poté upravit, tak se mi načte celý do jednoho TextBoxu a ne opět co řádek to Box.
Pomohl Vám návod? Sdílejte na Facebooku, G+ |
||
LinkedIn... |
Stránky o MS Office (Excel) produktu společnosti Microsoft. Neslouží jako technická podpora.
| Email na autora: pavel.lasak@gmail.com | Copyright © : Pavel Lasák 2004 - 2021 |