1<?xml version="1.0" encoding="UTF-8"?> 2 3 4 5<!-- 6 *********************************************************************** 7 * 8 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 9 * 10 * Copyright 2000, 2010 Oracle and/or its affiliates. 11 * 12 * OpenOffice.org - a multi-platform office productivity suite 13 * 14 * This file is part of OpenOffice.org. 15 * 16 * OpenOffice.org is free software: you can redistribute it and/or modify 17 * it under the terms of the GNU Lesser General Public License version 3 18 * only, as published by the Free Software Foundation. 19 * 20 * OpenOffice.org is distributed in the hope that it will be useful, 21 * but WITHOUT ANY WARRANTY; without even the implied warranty of 22 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 23 * GNU Lesser General Public License version 3 for more details 24 * (a copy is included in the LICENSE file that accompanied this code). 25 * 26 * You should have received a copy of the GNU Lesser General Public License 27 * version 3 along with OpenOffice.org. If not, see 28 * <http://www.openoffice.org/license.html> 29 * for a copy of the LGPLv3 License. 30 * 31 ************************************************************************ 32 --> 33 34 35 <helpdocument version="1.0"> 36<meta> 37<topic id="textsbasicshared01010210xml" indexer="include" status="PUBLISH"> 38<title id="tit" xml-lang="en-US">Basics</title> 39<filename>/text/sbasic/shared/01010210.xhp</filename> 40</topic> 41</meta> 42<body> 43<section id="modular"> 44<bookmark xml-lang="en-US" branch="index" id="bm_id4488967"><bookmark_value>fundamentals</bookmark_value> 45<bookmark_value>subroutines</bookmark_value> 46<bookmark_value>variables;global and local</bookmark_value> 47<bookmark_value>modules;subroutines and functions</bookmark_value> 48</bookmark><comment>mw changed "Basic;fundamentals"</comment><paragraph role="heading" id="hd_id3154927" xml-lang="en-US" level="1" l10n="U" oldref="1"><link href="text/sbasic/shared/01010210.xhp" name="Basics">Basics</link></paragraph> 49<paragraph role="paragraph" id="par_id3156023" xml-lang="en-US" l10n="U" oldref="14">This section provides the fundamentals for working with $[officename] Basic.</paragraph> 50</section> 51<paragraph role="paragraph" id="par_id3147560" xml-lang="en-US" l10n="U" oldref="2">$[officename] Basic code is based on subroutines and functions that are specified between <emph>sub...end sub</emph> and <emph>function...end function</emph> sections. Each Sub or Function can call other Subs and Functions. If you take care to write generic code for a Sub or Function, you can probably re-use it in other programs. See also <link href="text/sbasic/shared/01020300.xhp" name="Procedures and Functions">Procedures and Functions</link>.</paragraph> 52 53<paragraph role="note" id="par_id314756320" xml-lang="en-US" l10n="NEW">Some restrictions apply for the names of your public variables, subs, and functions. You must not use the same name as one of the modules of the same library.</paragraph> 54 55<paragraph role="heading" id="hd_id3150398" xml-lang="en-US" level="2" l10n="U" oldref="3">What is a Sub?</paragraph> 56<paragraph role="paragraph" id="par_id3148797" xml-lang="en-US" l10n="U" oldref="4"> 57<emph>Sub</emph> is the short form of <emph>subroutine</emph>, that is used to handle a certain task within a program. Subs are used to split a task into individual procedures. Splitting a program into procedures and sub-procedures enhances readability and reduces the error-proneness. A sub possibly takes some arguments as parameters but does not return any values back to the calling sub or function, for example:</paragraph> 58<paragraph role="code" id="par_id3150868" xml-lang="en-US" l10n="U" oldref="15">DoSomethingWithTheValues(MyFirstValue,MySecondValue)</paragraph> 59<paragraph role="heading" id="hd_id3156282" xml-lang="en-US" level="2" l10n="U" oldref="5">What is a Function?</paragraph> 60<paragraph role="paragraph" id="par_id3156424" xml-lang="en-US" l10n="U" oldref="6">A <emph>function</emph> is essentially a sub, which returns a value. You may use a function at the right side of a variable declaration, or at other places where you normally use values, for example:</paragraph> 61<paragraph role="code" id="par_id3146985" xml-lang="en-US" l10n="U" oldref="7">MySecondValue = myFunction(MyFirstValue)</paragraph> 62<paragraph role="heading" id="hd_id3153364" xml-lang="en-US" level="2" l10n="U" oldref="8">Global and local variables</paragraph> 63<paragraph role="paragraph" id="par_id3151112" xml-lang="en-US" l10n="U" oldref="9">Global variables are valid for all subs and functions inside a module. They are declared at the beginning of a module before the first sub or function starts.</paragraph> 64<paragraph role="paragraph" id="par_id3154012" xml-lang="en-US" l10n="U" oldref="10">Variables that you declare within a sub or function are valid only inside this sub or function. These variables override global variables with the same name and local variables with the same name coming from superordinate subs or functions.</paragraph> 65<paragraph role="heading" id="hd_id3150010" xml-lang="en-US" level="2" l10n="U" oldref="11">Structuring</paragraph> 66<paragraph role="paragraph" id="par_id3153727" xml-lang="en-US" l10n="U" oldref="12">After separating your program into procedures and functions (Subs and Functions), you can save these procedures and functions as files for reuse in other projects. $[officename] Basic supports <link href="text/sbasic/shared/01020500.xhp" name="Modules and Libraries">Modules and Libraries</link>. Subs and functions are always contained in modules. You can define modules to be global or part of a document. Multiple modules can be combined to a library.</paragraph> 67<paragraph role="paragraph" id="par_id3152578" xml-lang="en-US" l10n="U" oldref="13">You can copy or move subs, functions, modules and libraries from one file to another by using the <link href="text/sbasic/shared/01/06130000.xhp" name="Macro">Macro</link> dialog.</paragraph> 68</body> 69</helpdocument> 70