Excel Board – výuková a prezentační tabule pro Excel Excelplus

Transkript

Excel Board – výuková a prezentační tabule pro Excel Excelplus
Excel Board – výuková a prezentační tabule pro Excel
Excel Board (1.0) vznikl jako pokus o komplexnější ovládání okna Excelu. Excel sice disponuje
nástrojem Celá obrazovka (viz karta Zobrazení, pro návrat stiskněte ESC), nicméně jsem chtěl zajít
dál a dosáhnout skutečného stavu „full screen“. Do určité míry lze některé prvky a jejich
zobrazení/skrytí řídit v rámci Možností aplikace Excel. Patří mezi ně Řádek vzorců, posuvníky, ouška
listů či stavový řádek. Ovládání Pásu karet (ribbonu) už začíná skřípat a nejlepší cestou je nasadit
historické Excel4Macro. To umí pás nejen kompletně skrývat, ale zobrazit jej i ve spodní části okna
(do boku jej nedostanete). I tak mi to bylo málo. Chtěl jsem překrývat oknem Excelu systémovou lištu
Windows (osobně nesnáším její automatické vyjíždění a skrývání). K těmto účelům už je nutné použít
API. V průběhu času se mi vkrádala do hlavy možnost nejen jakési pracovní plochy, ale i režimu, jaký
má PowerPoint v bezobslužných prezentacích s časováním, rotace listů či autopřepočet jednoho listu
v časových intervalech.
Listy sešitu je potřeba si připravit. Zobrazovaná plocha musí odpovídat rozlišení monitoru. Při
nastavování šířky sloupců a výšky řádků se řiďte rozměry v závorkách (pixely). Sešit v příloze je
přizpůsoben klasickému rozlišení notebooku 1366 x 768 px. Pro prezentační režim bude plocha
odpovídat spíše Full HD (televizoru).
Excel Board – příprava
Excelplus.NET | 1
Excel Board – výuková a prezentační tabule pro Excel
Excel Board – po spuštění (skutečný full screen)
Úvodní procedury pracují s nastavením klávesových zkratek.
Private Sub Workbook_Open()
Application.OnKey "+^Q", "PrepinacProjektor"
Application.OnKey "+^W", "RotaceListu"
Application.OnKey "+^1", "Kurzor"
Application.OnKey "+^2", "Zahlavi"
Application.OnKey "+^3", "RadekVzorcu"
Application.OnKey "+^4", "StavovyRadek"
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Application.OnKey "+^Q"
Application.OnKey "+^W"
Application.OnKey "+^1"
Application.OnKey "+^2"
Excelplus.NET | 2
Excel Board – výuková a prezentační tabule pro Excel
Application.OnKey "+^3"
Application.OnKey "+^4"
End Sub
REŽIM „LIST (S AUTOMATICKÝM PŘEPOČTEM)“
– určen kupříkladu pro lektory
– spuštění a ukončení režimu CTRL+SHIFT+Q na požadovaném listu (k vyzkoušení List1 a List4)
– zobrazení/skrytí kurzoru CTRL+SHIFT+1
– zobrazení/skrytí záhlaví řádků a sloupců CTRL+SHIFT+2
– zobrazení/skrytí Řádku vzorců CTRL+SHIFT+3
– zobrazení/skrytí stavového řádku CTRL+SHIFT+4
– interval přepočtu je nastaven v proceduře StartUdalosti
Excel Board – full screen – možnosti zobrazení v režimu List
Zobrazení prvků (CTRL+SHIFT+číslo) lze kombinovat.
Autopřepočet listu zajišťují tři procedury a veřejná proměnná. Využita je přitom metoda OnTime
pracující „v cyklu“.
'časový interval pro přepočet listu
Private dtCasPrepocet As Date
Excelplus.NET | 3
Excel Board – výuková a prezentační tabule pro Excel
Sub StartUdalosti()
'přepočet po 5 sekundách
dtCasPrepocet = Now + TimeSerial(, , 5)
Application.OnTime dtCasPrepocet, "PrepocetListu"
End Sub
Sub KonecUdalosti()
Application.OnTime EarliestTime:=dtCasPrepocet, Procedure:="PrepocetListu", _
Schedule:=False
End Sub
Sub PrepocetListu()
ActiveSheet.Calculate
Call StartUdalosti
End Sub
REŽIM „PREZENTACE“
– určen například pro zobrazení stavu výroby přímo v hale nebo na chodbě prostřednictvím
připojeného monitoru (ploché TV)
– spuštění režimu CTRL+SHIFT+W
– ukončení režimu ESC
– interval přechodu mezi listy (nekonečný cyklus) je nastaven v konstantě cintRotacePauza na úrovni
modulu modProjektor
Následuje výpis procedury PrepinacProjektor s vlastním „know-how“. Nedoporučuji ji v editoru
krokovat, přeci jen se jedná o práci s API funkcemi.
Sub PrepinacProjektor(Optional blnVsechnyListy As Boolean = False)
Dim lRet As Long
Dim lStyle As Long
Dim lRegion As Long
Dim aRectDesktopArea As Rect
Excelplus.NET | 4
Excel Board – výuková a prezentační tabule pro Excel
Static bPrepinac As Boolean
Static bHlavicky As Boolean
'nastavení přepínače
bPrepinac = Not bPrepinac
'handle aplikace
hWndApp = Application.hwnd
'handle tabulkové části
hWndExcelDesktop = FindWindowEx(hWndApp, , "XLDESK", vbNullString)
hWndExcel7 = FindWindowEx(hWndExcelDesktop, , "Excel7", vbNullString)
'rozlišení monitoru
cx = GetSystemMetrics(SM_CXSCREEN)
cy = GetSystemMetrics(SM_CYSCREEN)
Call SystemParametersInfo(SPI_GETWORKAREA, vbNull, aRectDesktopArea, )
Application.ScreenUpdating = False
If bPrepinac = True Then
'aplikace bez...
'nastavení pozice kurzoru do pravého spodního rohu
'neměl by se zde nacházet objekt s popiskem
SetCursorPos cx, cx
'skrytí kurzoru
ShowCursor
'zjištění stávajícího stylu
lStyle = GetWindowLong(hWndExcel7, GWL_STYLE)
'uložení stylu pro obnovu
lStyleOld = lStyle
'okraj a titulková lišta
lStyle = lStyle And Not WS_THICKFRAME
lStyle = lStyle And Not WS_CAPTION
'nastavení stylu
Excelplus.NET | 5
Excel Board – výuková a prezentační tabule pro Excel
lRet = SetWindowLong(hWndExcel7, GWL_STYLE, lStyle)
'překreslení
lRet = DrawMenuBar(hWndExcel7)
'zjištění stávajícího stylu
lStyle = GetWindowLong(hWndApp, GWL_STYLE)
'okraj a titulková lišta
lStyle = lStyle And Not WS_THICKFRAME
lStyle = lStyle And Not WS_CAPTION
'nastavení stylu
lRet = SetWindowLong(hWndApp, GWL_STYLE, lStyle)
'překreslení
lRet = DrawMenuBar(hWndApp)
'Pás karet
ExecuteExcel4Macro "SHOW.TOOLBAR(""Ribbon"",False)"
DoEvents
'maximalizace okna (přes celý monitor)
RetVal = SetWindowPos(hWndApp, HWND_TOPMOST, , , cx, cy, _
SWP_SHOWWINDOW)
With Application
'maximalizované okno
.WindowState = xlMaximized
'řádek vzorců
.DisplayFormulaBar = False
'stavový řádek
.DisplayStatusBar = False
End With
With ActiveWindow
'záhlaví řádků a sloupců
bHlavicky = .DisplayHeadings
.DisplayHeadings = False
'vodorovný posuvník
.DisplayHorizontalScrollBar = False
Excelplus.NET | 6
Excel Board – výuková a prezentační tabule pro Excel
'svislý posuvník
.DisplayVerticalScrollBar = False
'ouška listů
.DisplayWorkbookTabs = False
'měřítko zobrazení
.Zoom = 100
End With
If blnVsechnyListy = False Then
Call ZmenaList(ActiveSheet, True)
'přepočet listu
Call StartUdalosti
Else
Call ZmenaListy(True)
End If
Else
'aplikace s...
'zobrazení kurzoru
ShowCursor 1
'zjištění stávajícího stylu
lStyle = GetWindowLong(hWndApp, GWL_STYLE)
'titulková lišta
lStyle = lStyle Or WS_THICKFRAME
lStyle = lStyle Or WS_CAPTION
'nastavení stylu
lRet = SetWindowLong(hWndApp, GWL_STYLE, lStyle)
'překreslení
lRet = DrawMenuBar(hWndApp)
'maximalizace okna (do pracovního prostoru)
RetVal = SetWindowPos(hWndApp, HWND_NOTOPMOST, , , _
aRectDesktopArea.Right - aRectDesktopArea.Left, aRectDesktopArea.Bottom _
Excelplus.NET | 7
Excel Board – výuková a prezentační tabule pro Excel
- aRectDesktopArea.Top, SWP_SHOWWINDOW)
With Application
'maximalizované okno
'.WindowState = xlNormal
'.DisplayFullScreen = False
'řádek vzorců
.DisplayFormulaBar = True
'stavový řádek
.DisplayStatusBar = True
'povolení rolování
.ActiveSheet.ScrollArea = ""
'odemčení listu
.ActiveSheet.Unprotect
End With
With ActiveWindow
'záhlaví řádků a sloupců
.DisplayHeadings = bHlavicky
'vodorovný posuvník
.DisplayHorizontalScrollBar = True
'svislý posuvník
.DisplayVerticalScrollBar = True
'ouška listů
.DisplayWorkbookTabs = True
End With
If blnVsechnyListy = False Then
Call ZmenaList(ActiveSheet, False)
Call KonecUdalosti
Else
Call ZmenaListy(False)
End If
'Pás karet
ExecuteExcel4Macro "SHOW.TOOLBAR(""Ribbon"",True)"
End If
Excelplus.NET | 8
Excel Board – výuková a prezentační tabule pro Excel
Application.ScreenUpdating = True
RedrawWindow Application.hwnd, ByVal &, ByVal &, RDW_INVALIDATE
End Sub
Dílčí procedury a deklarace naleznete v přiloženém sešitu. Projekt VBA je odemčen. Pokud dokážete
ocenit práci strávenou nad danou nadstavbou Excelu, ozvěte se. Podpoříte tak její případný další
vývoj. Děkuji.
ZÁVĚREM
Excel Board byl zpracován ve verzi Excelu 2010. Teoreticky je možné jej použít/upravit pro Excel
2007-2016. Je do jisté míry alternativou pro prezentaci v PowerPointu s provázanými tabulkami a
grafy Excelu. Neklade si za cíl jej nahradit, neřeší přechody mezi snímky (a ani nemůže), individuální
časování snímků atp. Automatický přepočet listu, resp. načasovaná opakující se událost může zajistit
aktualizaci dat řešenou jinak (např. technologií Real Time Data).
Příloha:
Sešit testujete na vlastní zodpovědnost.
excel_board.zip
Excelplus.NET | 9

Podobné dokumenty

Návrh a realizace programu pro měřící přístroj EXFO FTB

Návrh a realizace programu pro měřící přístroj EXFO FTB a typy jejího m ení. Je zde popsaná chromatická (CD) a polariza ní vidová (PMD) disperze. Dále je v práci popsané programování pro Windows pomocí Windows 32 API. Jedná se zejména o popis vytvo ení ...

Více

Grafy a další grafické objekty

Grafy a další grafické objekty Při vytváření grafu můžete dojít k názoru, že by mu prospělo okomentování dalšími texty. V tom případě potřebujete vědět, jak do grafu dostat volně umístitelné texty. Ve verzích před Excelem 2007 b...

Více

Uložit jako PDF - Excel | VBA | Excelplus.NET

Uložit jako PDF - Excel | VBA | Excelplus.NET na objekty ActiveWorkbook (ThisWorkbook) a jejich vlastnost .Path. Jestliže má cesta vazbu na instalaci Excelu (Office), podívejte se na vybrané vlastnosti objektu Application (.Path, .Startup.Path...

Více