<p class="Head1"><help:link Id="66575">Aplikace <help:productname>%PRODUCTNAME</help:productname> Basic je modulární</help:link></p>
<p class="Paragraph">Programování v aplikaci <help:productname>%PRODUCTNAME</help:productname> Basic je založeno na jednoduchých procedurách typu Sub a Function, které vždy končí příkazy End Sub nebo End Function. Uvnitř každé procedury typu Sub nebo Function mohou být volány jiné procedury. Během provádění makra je automaticky volána procedura typu Sub, která je uvedena první v pořadí.</p>
</help:to-be-embedded>
<p class="Head2">Procedura typu Sub</p>
<p class="Paragraph">Termín Sub představuje zkrácené označení podprogramu, tedy dílčí procedury, která zpracovává určitou úlohu uvnitř jiného programu. Rozdělte úlohu, kterou chcete naprogramovat, do jednotlivých procedur a potom rozdělte každou proceduru do jednotlivých kroků potřebných pro sestavení procedury typu Sub. To znamená, že celý program by měl být rozdělen do hierarchicky uspořádaných procedur a vnořených procedur.</p>
<p class="Head2">Procedura typu Function</p>
<p class="Paragraph">Funkce je procedura vracející přímo hodnotu. Funkci můžete použít na pravé straně deklarace proměnné nebo v jiných místech programu, kde běžně používáte hodnoty.</p>
<p class="Paragraph">Čím obecnější kód procedury typu Sub nebo Function vytvoříte, tím větší bude pravděpodobnost, že jej budete moci znovu použít v jiných programech. Pokud pomocí kódu testujete, zda je délka textové položky větší než šest znaků, potom by bylo vhodné napsat funkci, která zpracuje hodnotu 6 horního limitu jako parametr. Takto můžete použít stejnou funkci i pro testování textové položky obsahující například více než 20 znaků.</p>
<p class="Head2">Globální a lokální proměnné</p>
<p class="Paragraph">V aplikaci <help:productname xmlns:help="http://openoffice.org/2000/help">%PRODUCTNAME</help:productname> Basic můžete deklarovat proměnné platné globálně pro všechny procedury. Lze použít také proměnné, které nejsou jmenovitě uvedeny v příkazu Dim; aplikace <help:productname xmlns:help="http://openoffice.org/2000/help">%PRODUCTNAME</help:productname> Basic deklaruje tyto proměnné vnitřně. Viz také <help:link Id="66513" xmlns:help="http://openoffice.org/2000/help">Procedury a funkce</help:link>.</p>
<p class="Paragraph">Proměnné, které deklarujete uvnitř procedury nebo funkce, jsou platné pouze uvnitř této procedury nebo funkce. Tyto proměnné mají prioritu před možnými proměnnými stejného názvu použitými v nadřízených procedurách a mají také prioritu před globálními proměnnými, které jsou platné až po ukončení procedury. Až na uvedenou výjimku jsou globální proměnné platné kdekoli v programu.</p>
<p class="Head2">Strukturování programu</p>
<p class="Paragraph">Po rozepsání programu do procedur a funkcí (Sub a Function) můžete odpovídající procedury a funkce uložit jako soubory a použít je také v jiných projektech. Aplikace <help:productname xmlns:help="http://openoffice.org/2000/help">%PRODUCTNAME</help:productname> Basic podporuje strukturování programu používáním <help:link Id="66460" xmlns:help="http://openoffice.org/2000/help">modulů a knihoven</help:link>. Všechny procedury a funkce jsou vždy obsaženy v modulech. Je možné použít téměř nekonečný počet modulů. Moduly mohou být definovány globálně nebo jako součást dokumentu. Více modulů je možné sloučit do knihovny. Počet knihoven není omezen.</p>
<p class="Paragraph">Samostatné procedury a funkce, dokonce i moduly a knihovny, můžete kopírovat nebo přesunovat z jednoho souboru do druhého. Další informace naleznete v dialogovém okně <help:link Id="68327" xmlns:help="http://openoffice.org/2000/help">Makro</help:link>.</p>