Přeskočit navigaci | Přeskočit na novinky

Jste zde: Úvodní stránka » excel » vba » ms-excel-vba-vzorec-do-komentare

VBA Makro - vložení vzorce do komentáře

Videokurzy Excel

Ve spolupráci se SEDUO jsem vytvořil několik videokurzů:

Makro co Vám vloži automaticky vzorce v buňce do komentáře

Úvod

Protože jsem potřeboval mít ve svých programech přehled o vzorcích, našel jsem si na internetu a v nápovědách možnost, jak vložit do komentáře obsah vzorce. Nebyl to přímo tento vzorec, musel jsem si jej teprve posládat. Původně to byl příklad, který vkládal do nápovědy hodnotu. Pak jsem hledal dál a našel možnost, jak se zobrazí vzorec (bohužel pouze anglicky), ale nakonec se povedlo a již se mi zobrazí i v češtině.

Vlastní vzorec

Následující kód vložte do Modulu ve VBA (kdo neví jak na to, podrobný popis je uveden za kodem).

Sub VlozVzorecDoKomentare()
Dim cell As Range
On Error Resume Next
Selection.ClearComments
On Error GoTo 0
For Each cell In Intersect(Selection, ActiveSheet.UsedRange)
If cell.Formula <> "" Then
cell.AddComment
cell.Comment.Visible = False
On Error Resume Next
cell.Comment.Text Text:=cell.FormulaLocal
On Error GoTo 0
End If
Next cell
End Sub

Pokud nevíte kam tento kod vložit tak podrobnější návod:

1) Spusťte Visual Basic - (Alt+F11) nebo Nástroje - Makro - Editor jazyka Visual Basic.

2) Vložte modul - Insert - Module

3) Vložte kód - do pravého okna vložte výše uvedený kód

Spuštění Makra

MS Excel výběr makra

Stačí makro spustit klasicky. Označíme buňku (buňky), ve kterých chceme mít vzorce a přes menu Nástroje - Makro - Makra... , spustíme makro VlozVzorecDoKomenare a máme hotovo :)

MS Excel makro pro vlození vzorce do poznámky

Modifikace

Další možné modifikace a doplnění:

Vzorec se dá doplnit o:

  • cell.Value - hodnota která je v buňce (tak tento kód obsahoval původní příklad)
  • cell.NumberFormat - formát čísla (zda jde o text, číslo, datum, ...)
  • cell.Address - adresa buňky (třeba se k něčemu bude hodit)
  • cell.Formula - uvede vzorec v angličtině, (můžete porovnávat české a anglické názvy)

Možné problémy

Funguje pod Excel 2000 i Excel 2003, v české verzi. Jak možná víte, nemusíte používat názvy funkcí v české výrazi, ale je možno používat anglické (např. místo KDYŽ použít IF), což se může hodit, třeba když programujete pro cizince...

Doporučení

K práci doporučuji originální Microsfot Excel 2003. Varianta pro studenty je za směšnou cenu. Jednotlivé příklady v Excelu jsou ke stažení zdarma. Ke studijním účelům je můžete využívat bezplatně. Pokud se rozhodnete pro komerční využítí prosím informujte mě.

Článek byl aktualizován: 19.09.2020 11:06

Odměna

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.


Pavel Lasák - autor webu

Pavel Lasák

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ů.

   Pavel Lasák LinkedIn Profil    Pavel Lasák Google+ Profil    Pavel Lasák facebook Profil    Pavel Lasák twitter Profil


Komentáře


Helena

Přidáno: 13.02.10 10:40

Dobrý den, chci udělat jednoduché makro na vložení komentáře. Ale makro stále hlásí chybu i když do komentáře nezadám žádnou hodnotu. Mohl byste uvést příklad funkčního makra, které by pouze ve vybrané buňce ukázalo komentář? Díky Můj kód s chybou: Sub Transit1() ' Transit1 Makro ' Makro zaznamenané 13.2.2010, h ' Range("G10").AddComment Range("G10").Comment.Visible = False Range("G10").Comment.Text Text:="h:" & Chr(10) & \ "" Range("G10").Select End Sub

Pavel Lasák

Přidáno: 24.02.10 19:03

To Helena: Pro zobrazení komentáře ActiveCell.Comment.Visible = True

Pavel Lasák

Přidáno: 07.03.11 19:26

Sub comment()

If ActiveCell.comment Is Nothing Then


Else
cmnt = ActiveCell.comment.Text
ActiveCell.FormulaR1C1 = cmnt
End If

End Sub






Excel


Sdílejte

Pomohl Vám návod?
Sdílejte na Facebooku, G+
LinkedIn...

Nové články


Reklama


TOPlist Licence Creative Commons webarchiv rss XML

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 - 2024 |