Milimetrový papír a jiné rastry v Excelu

Milimetrový papír už sice není běžnou součástí hodin matematiky, přesto je typickým zástupcem archů s mřížkou (rastrem), kterým se v angličtině říká „graph paper“, resp. „graph grid“. Potkáváme se jak s praktickými rastry, tak s těmi, které poslouží v hrách, jako jsou lodě nebo piškvorky. A že jsou ty prázdniny, tak jsem si zkusil pár takových archů vytvořit.

Pracovní i herní rastry zpracované v Excelu
Pracovní i herní rastry zpracované v Excelu
Ukázky rastrů
Ukázky rastrů

Ačkoliv lze najít několik generátorů či hotových PDF online, jak je vidět, dal jsem si za cíl k danému účelu zneužít Excel. Výhodné je přepnout se do zobrazení Rozložení stránky, protože zde jsou na rozdíl od normálního zobrazení k dispozici pravítka a je možné s mřížkou manipulovat v běžných délkových rozměrech (cm). Přesto nečekejte zázraky. Obzvlásť v případě milimetrového papíru je nutné brát přesnost s rezervou. Uvědomte si, že chyba 0,1 mm na každém sloupečku dává na deseti buňkách (10 mm, tj. 1 cm) odchylku 1 mm a na archu A4 je potřeba cca 190 sloupečků. Tudíž je potřeba se pohybovat v setinách. To sice Excel umí, ale rozhodně to není CAD aplikace s bůhvíjakou akurátností.

Ve většině případů si vystačíme s vhodně upravenou mřížkou Excelu (a to i pro potřeby jiných elementů, např. trojúhelníků). Hodí se samozřejmě trocha matematiky a fakt, že se v rámci ohraničení můžeme obrátit i na šikmé (diagonální) čáry. Je ovšem jasné, že ze čtverce kruh nikdy neuděláme a proto se čas od času nevyhneme tvarům, které při větším počtu vytvoříme programově. Jak jsem zjistil, zobrazení Rozložení stránky je nevhodné pro vykreslování objektů, u nichž záleží na poměru šířky a výšky. To se týká především kružnic.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
Sub GenerovaniKrouzku()

Dim shpBod As Shape

Dim cdblBodPrumer As Double
Dim cdblSirka As Double
Dim cdblVyska As Double

Dim i As Integer
Dim j As Integer

'průměr tvaru
cdblBodPrumer = 18

'rozteče dle velikosti buňky
cdblSirka = ActiveCell.Width
cdblVyska = ActiveCell.Height

'zamezení překreslování
Application.ScreenUpdating = False

'odstranění případné grafiky na listu
For Each shpBod In ActiveSheet.Shapes
shpBod.Delete
Next shpBod

For i = 1 To 26

For j = 1 To 18

'vytvoření tvaru a jeho umístění
Set shpBod = ActiveSheet.Shapes.AddShape(msoShapeOval, j * _
cdblSirka - cdblBodPrumer / 2, i * cdblVyska - cdblBodPrumer / 2, _
cdblBodPrumer, cdblBodPrumer)

'barevnost a další vlastnosti tvaru
With shpBod
.Line.Weight = 0.5
.Line.ForeColor.RGB = RGB(217, 217, 217)
.Fill.ForeColor.RGB = RGB(255, 255, 255)
End With

Next j

Next i

'povolení překreslování
Application.ScreenUpdating = True

End Sub

Uvedená procedura nejprve odstraní všechny kreslené objekty na listu, následně generuje tvary (kroužky) o požadované velikosti a barvě, a umísťuje je do rohů buněk. Jejich počet je zde nastaven napevno. Teoreticky by bylo možné jej zjišťovat podle poslední buňky na stránce (viz „horizontal page breaks“). Proceduru spouštějte v normálním zobrazení listu.

V příloze nechybí čtverečkované archy (1 mm, 5 mm, 10 mm a jejich variace), linkované papíry (8 mm), notová osnova, trojúhelníky a šestiúhelníky, tečky a kroužky, podklady pro grafy a číselné osy, herní plány pro lodě, sudoku, šachy či tangram (u něj je nezbytné kreslit ohraničení „ručně“), nebo třeba list s rozlosováním sportovního turnaje. Na druhou stranu neobsahuje logaritmickou stupnici nebo nějakou formu úhlového grafu. To už by přeci jen bylo časově náročné. Ostatně rotace objektů okolo krajního bodu patří pod VBA ke složitějším úlohám, v nichž se hodně vyplatí znalosti matematiky a vektorů.

Příloha

verze 1.1
excel_mrizky.zip