Ve spolupráci se SEDUO jsem vytvořil několik videokurzů:
Jak v Excel VBA vytvořit vyskakovací menu. Nebo-li po "najetí" myší na objekt (např. obdélník) se tento rozbalí (zvětší).
Využijeme události.
Pro přehlednost je článek rozdělen na kapitoly pro snadnější orientaci:
Po najetí do určité oblasti potřebujeme změnit obdélník. U nás s písmenem "P", Objekt (obdélník) změní rozměry. Pro ukázku je ponechán název popisku Label.
Nejprve vytvořit dva popisky z menu Vývojář (Developer). Vyložte dva popisky (Label) z Vložit (Active X)
Vytvoříme obdélník z Vložení - Obrazce - Obdelník. Nebudu řešit barvičky atd. Zkontroluji velikost (jak bude vypadat malý a jak velký). Např. cca:
Původní rozměry 0,77 cm a 3,15 cm převedeme na body 25 a 115.
Vytvoříme dvě makra jedno obdélník zvětší a jedno obdélník zmenší. Pro jistotu před testováním makra zkontrolujte, že obdélník je pojmenován "Obdelnik_1".
Pro zvětšení
' Obdelnik_1
Dim Hloubka As Integer
With ActiveSheet.Shapes("Obdelnik_1")
For Hloubka = 25 To 115
.Width = Hloubka
Next Hloubka
End With
ActiveSheet.Shapes("Obdelnik_1").TextFrame.Characters.Text = "Pavel"
Pro zmenšení
' Obdelnik_1
Dim Hloubka As Integer
With ActiveSheet.Shapes("Obdelnik_1")
For Hloubka = 115 To 25 Step -1
.Width = Hloubka
Next Hloubka
End With
ActiveSheet.Shapes("Obdelnik_1").TextFrame.Characters.Text = "P"
Otestujeme, ještě můžete doplnit o vložení textu:
ActiveSheet.Shapes("Obdelnik_1").TextFrame.Characters.Text = "Pavel"
Pokud zafunguje, můžete překopírovat kódy do module. Nezapomenout na názvy procedur:
Sub Zvetsit()
' Obdelnik_1
Dim Hloubka As Integer
With ActiveSheet.Shapes("Obdelnik_1")
For Hloubka = 25 To 115
.Width = Hloubka
Next Hloubka
End With
ActiveSheet.Shapes("Obdelnik_1").TextFrame.Characters.Text = "Pavel"
End Sub
Sub Zmensit()
' Obdelnik_1
Dim Hloubka As Integer
With ActiveSheet.Shapes("Obdelnik_1")
For Hloubka = 115 To 25 Step -1
.Width = Hloubka
Next Hloubka
End With
ActiveSheet.Shapes("Obdelnik_1").TextFrame.Characters.Text = "P"
End Sub
Zbývá jen vytvořit reakce na událost přejetí popisek Labelu:
Private Sub Label1_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
Call Zmensit
End Sub
Private Sub Label2_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
Call Zvetsit
End Sub
Hotovo. Povedlo se?
Můžete ještě změnit barvy, odstranit názvy z popisek (Label), jsou jako pomůcka, aby fungovalo vyskakování.
Umístit na okraj a následně mít efektní menu jako na webu.
Související články:
Soubor ke stažení zdarma je v přípravě. Podpořit zveřejnění můžete podporou na Patreon.
Narazili jste na nějaký problém, máte tip na vylepšení nebo doplnění článku, můžete zmínit v komentářích.
Článek byl aktualizován: 06.05.2022 13:05
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ů.
Můžete být prvními co zanechají smysluplný komentář.
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 - 2024 |