Aktualizace obrazovky v aplikaci VBA Excel hraje důležitou roli při řízení účinnosti a rychlosti Maker. Během provádění makra ve výchozím nastavení Excel aktualizuje obrazovku po každé provedené akci, což může vést k výraznému zpomalení procesu. Pomocí správného použití příkazu Application.ScreenUpdating proces aktualizace obrazovky můžete ovládat a urychlit makra.
Když hodnota vlastnosti ScreenUpdating rovná se True, Excel aktualizuje obrazovku po každé provedené akci. Pokud se však hodnota vlastnosti rovná False, Excel neaktualizuje obrazovku, dokud nebude hodnota znovu nastavena na True. To je zvláště užitečné při práci s velkým množstvím dat a složitými makry, kde je rozhodující výkon.
Je důležité mít na paměti, že pokud používáte příkaz Application.ScreenUpdating = False v makru byste se měli ujistit, že na konci makra se hodnota vlastnosti vrátí na hodnotu True. V opačném případě bude uživateli zakázáno aktualizovat obrazovku, což může vést k nepředvídatelným výsledkům.
Kromě použití vlastnosti ScreenUpdating existují také další způsoby, jak optimalizovat práci s obrazovkou VBA Excel. Pomocí příkazu můžete například dočasně deaktivovat funkci přepočítávání vzorců Application.Calculation = xlCalculationManual nebo zakázat zobrazování pop-up nápovědy pomocí příkazu Application.DisplayScreenTips = False. Tyto triky také pomohou urychlit makra a zlepšit výkon vašich aplikací.
Získejte aktuální data o aktuální obrazovce VBA Excel
Při práci s VBA Excel může být nutné získat informace o aktuální obrazovce, jako jsou rozměry, rozlišení a zoom. V aplikaci VBA Excel existuje několik metod, jak tato data získat.
1. Metoda Aplikace.Width a Application.Height vám umožní získat šířku a výšku aktivního okna aplikace Excel. Tyto metody vracejí hodnoty v bodech (points) a lze je použít k určení velikosti okna.
2. Metoda Aplikace.Windows () vrací sbírku objektů Window představujících otevřená okna aplikace Excel. U každého okna lze získat informace o jeho velikosti a poloze pomocí vlastností okna.Width , Window.Height , Window.Top A Window.Left .
3. Metoda Aplikace.ScreenResolution () vrací rozlišení obrazovky v položkách na palec (DPI).
4. Metoda Aplikace.Zoom vrací aktuální zoom aktivního okna aplikace Excel. To může být užitečné při určování zoomu obrazovky.
Následující kód například zobrazuje příjem dat o aktuální obrazovce:
Sub GetScreenInfo()Dim window As WindowSet window = Application.ActiveWindowDim width As LongDim height As LongDim top As LongDim left As LongDim resolution As LongDim zoom As Long' Получение размеров активного окнаwidth = window.Widthheight = window.Height' Получение позиции активного окнаtop = window.Topleft = window.Left' Получение разрешения экранаresolution = Application.ScreenResolution' Получение масштабирования активного окнаzoom = window.Zoom' Вывод полученных данных в окно сообщенийMsgBox "Ширина окна: " & width & " пунктов" & vbCrLf & _"Высота окна: " & height & " пунктов" & vbCrLf & _"Топ: " & top & " пунктов" & vbCrLf & _"Лево: " & left & " пунктов" & vbCrLf & _"Разрешение экрана: " & resolution & " DPI" & vbCrLf & _"Масштабирование: " & zoom & "%"End Sub
Tento příklad kódu vám umožňuje získat aktuální informace o aktuální obrazovce a zobrazit je v okně zpráv.
Vzhledem k těmto metodám můžete získat aktuální informace o aktuální obrazovce v aplikaci VBA Excel a použít ji ve svých makrech a postupech pro flexibilnější práci s okny a daty.
Určení velikosti obrazovky pro správnou aktualizaci
Před aktualizací obrazovky VBA Excel je důležité určit rozměry obrazovky uživatele. To pomůže správně vypočítat velikosti objektů a kontrol na obrazovce a zajistit správné zobrazení informací.
Pro určení velikosti obrazovky VBA Excel můžete použít speciální funkce:
| Funkce | Popis |
|---|---|
| Application.Width | Vrací šířku obrazovky v pixelech. |
| Application.Height | Vrací výšku obrazovky v pixelech. |
Chcete-li například určit šířku obrazovky a uložit ji do proměnné, můžete použít následující kód:
Dim screenWidth As IntegerscreenWidth = Application.Width
Podobně lze k určení výšky obrazovky použít funkci Application.Height:
Dim screenHeight As IntegerscreenHeight = Application.Height
Po určení velikosti obrazovky lze získané hodnoty použít k výpočtu a nastavení velikosti objektů na tvaru, tabulkách a listech. Chcete-li například změnit velikost okna uživatele v Excelu, můžete použít vlastnost tohoto okna:
ActiveWindow.Width = screenWidthActiveWindow.Height = screenHeight
Určení velikosti obrazovky tak umožňuje správné zobrazení informací na obrazovce uživatele a zlepšení vizuální části programu VBA Excel. To je užitečné zejména při vytváření uživatelských tvarů a rozhraní.
Použití metody "ScreenUpdating" ke správě aktualizace obrazovky
V aplikaci VBA Excel lze ke správě aktualizace obrazovky použít metodu "ScreenUpdating". Tato metoda vám umožňuje dočasně zakázat aktualizaci obrazovky během provádění makra.
Chcete-li povolit nebo zakázat aktualizaci obrazovky, musíte změnit hodnotu vlastnosti "ScreenUpdating" objektu "aplikace". Níže jsou uvedeny příklady použití metody "ScreenUpdating":
Sub DisableScreenUpdating()Application.ScreenUpdating = False' . код макроса . Application.ScreenUpdating = TrueEnd SubSub EnableScreenUpdating()Application.ScreenUpdating = True' . код макроса . Application.ScreenUpdating = FalseEnd Sub
Výše uvedený příklad ukazuje dva přístupy k použití metody "ScreenUpdating". V prvním přístupu se aktualizace obrazovky vypne před spuštěním kódu makra a po spuštění se zapne. Ve druhém přístupu se aktualizace obrazovky zapne před spuštěním kódu makra a po provedení se vypne.
Použití metody "ScreenUpdating" může být užitečné v mnoha situacích. Pokud například vaše makro provádí složité výpočty nebo zpracování velkého množství dat, vypnutí aktualizace obrazovky může výrazně urychlit makro.
Za zmínku také stojí, že metoda "ScreenUpdating" nemá žádný vliv na zapisování dat do buněk nebo provádění vzorců. Pouze řídí zobrazení změn na obrazovce.