1 <?xml version=
"1.0" encoding=
"UTF-8"?>
5 ***********************************************************************
7 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
9 * Copyright 2008 by Sun Microsystems, Inc.
11 * OpenOffice.org - a multi-platform office productivity suite
13 * $RCSfile: userdefined_function.xhp,v $
16 * This file is part of OpenOffice.org.
18 * OpenOffice.org is free software: you can redistribute it and/or modify
19 * it under the terms of the GNU Lesser General Public License version 3
20 * only, as published by the Free Software Foundation.
22 * OpenOffice.org is distributed in the hope that it will be useful,
23 * but WITHOUT ANY WARRANTY; without even the implied warranty of
24 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
25 * GNU Lesser General Public License version 3 for more details
26 * (a copy is included in the LICENSE file that accompanied this code).
28 * You should have received a copy of the GNU Lesser General Public License
29 * version 3 along with OpenOffice.org. If not, see
30 * <http://www.openoffice.org/license.html>
31 * for a copy of the LGPLv3 License.
33 ************************************************************************
36 <helpdocument version=
"1.0">
38 <topic id=
"textscalcguideuserdefined_functionxml" indexer=
"include" status=
"PUBLISH">
39 <title id=
"tit" xml-lang=
"en-US">User-Defined Functions
</title>
40 <filename>/text/scalc/guide/userdefined_function.xhp
</filename>
43 <created date=
"2003-10-31T00:00:00">Sun Microsystems, Inc.
</created>
44 <lastedited date=
"2006-02-07T11:28:53">FPE: Deleted Screenshot and cleaned up
45 yj - checked
</lastedited>
49 <bookmark xml-lang=
"en-US" branch=
"index" id=
"bm_id3155411"><bookmark_value>functions; user-defined
</bookmark_value>
50 <bookmark_value>user-defined functions
</bookmark_value>
51 <bookmark_value>Basic IDE for user-defined functions
</bookmark_value>
52 <bookmark_value>IDE; Basic IDE
</bookmark_value>
53 <bookmark_value>programming;functions
</bookmark_value>
55 <paragraph role=
"heading" id=
"hd_id3155411" xml-lang=
"en-US" level=
"1" l10n=
"U" oldref=
"1"><variable id=
"userdefined_function"><link href=
"text/scalc/guide/userdefined_function.xhp" name=
"Defining Functions Yourself">User-Defined Functions
</link>
56 </variable></paragraph>
57 <paragraph role=
"paragraph" id=
"par_id3153969" xml-lang=
"en-US" l10n=
"U" oldref=
"2">You can apply user-defined functions in $[officename] Calc in the following ways:
</paragraph>
58 <list type=
"unordered">
60 <paragraph role=
"listitem" id=
"par_id3145366" xml-lang=
"en-US" l10n=
"CHG" oldref=
"4">You can define your own functions using the Basic-IDE. This method requires a basic knowledge of programming.
</paragraph>
63 <paragraph role=
"listitem" id=
"par_id3153768" xml-lang=
"en-US" l10n=
"CHG" oldref=
"3">You can program functions as
<link href=
"text/scalc/01/04060111.xhp" name=
"add-ins">add-ins
</link>. This method requires an advanced knowledge of programming.
</paragraph>
66 <paragraph role=
"heading" id=
"hd_id3149260" xml-lang=
"en-US" level=
"2" l10n=
"CHG" oldref=
"6">Defining A Function Using %PRODUCTNAME Basic
</paragraph>
69 <paragraph role=
"listitem" id=
"par_id3148456" xml-lang=
"en-US" l10n=
"CHG" oldref=
"7">Choose
<item type=
"menuitem">Tools - Macros - Organize Macros - %PRODUCTNAME Basic
</item>.
</paragraph>
72 <paragraph role=
"listitem" id=
"par_id3154510" xml-lang=
"en-US" l10n=
"U" oldref=
"8">Click the
<emph>Edit
</emph> button. You will now see the Basic IDE.
</paragraph>
75 <paragraph role=
"listitem" id=
"par_id3150327" xml-lang=
"en-US" l10n=
"CHG" oldref=
"9">Enter the function code. In this example, we define a
<item type=
"literal">VOL(a; b; c)
</item> function that calculates the volume of a rectangular solid with side lengths
<item type=
"literal">a
</item>,
<item type=
"literal">b
</item> and
<item type=
"literal">c
</item>:
</paragraph>
76 <paragraph role=
"code" id=
"par_id9797426" xml-lang=
"en-US" l10n=
"NEW" localize=
"false">Function VOL(a, b, c)
<br/>VOL = a*b*c
<br/>End Function
</paragraph>
79 <paragraph role=
"listitem" id=
"par_id3155443" xml-lang=
"en-US" l10n=
"U" oldref=
"10">Close the Basic-IDE window.
</paragraph>
80 <paragraph role=
"listitem" id=
"par_id3150043" xml-lang=
"en-US" l10n=
"CHG" oldref=
"11">Your function is automatically saved in the default module and is now available. If you apply the function in a Calc document that is to be used on another computer, you can copy the function to the Calc document as described in the next section.
</paragraph>
83 <paragraph role=
"heading" id=
"hd_id3147340" xml-lang=
"en-US" level=
"2" l10n=
"U" oldref=
"18">Copying a Function To a Document
</paragraph>
84 <paragraph role=
"paragraph" id=
"par_id3145232" xml-lang=
"en-US" l10n=
"CHG" oldref=
"19">In stage
2 of
"Defining A Function Using %PRODUCTNAME Basic", in the
<emph>Macro
</emph> dialog you clicked on
<emph>Edit
</emph>. As the default, in the
<emph>Macro from
</emph> field the
<emph>My Macros - Standard - Module1
</emph> module is selected. The
<emph>Standard
</emph> library resides locally in your user directory.
</paragraph>
85 <paragraph role=
"paragraph" id=
"par_id3154022" xml-lang=
"en-US" l10n=
"U" oldref=
"20">If you want to copy the user-defined function to a Calc document:
</paragraph>
88 <paragraph role=
"listitem" id=
"par_id3150304" xml-lang=
"en-US" l10n=
"CHG" oldref=
"21">Choose
<item type=
"menuitem">Tools - Macros - Organize Macros - %PRODUCTNAME Basic
</item> .
</paragraph>
91 <paragraph role=
"listitem" id=
"par_id3150086" xml-lang=
"en-US" l10n=
"CHG" oldref=
"22">In the
<emph>Macro from
</emph> field select
<emph>My Macros - Standard - Module1
</emph> and click
<emph>Edit
</emph>.
</paragraph>
94 <paragraph role=
"listitem" id=
"par_id3166430" xml-lang=
"en-US" l10n=
"CHG" oldref=
"23">In the Basic-IDE, select the source of your user-defined function and copy it to the clipboard.
</paragraph>
97 <paragraph role=
"listitem" id=
"par_idN1081D" xml-lang=
"en-US" l10n=
"NEW">Close the Basic-IDE.
</paragraph>
100 <paragraph role=
"listitem" id=
"par_id3150517" xml-lang=
"en-US" l10n=
"CHG" oldref=
"24">Choose
<item type=
"menuitem">Tools - Macros - Organize Macros - %PRODUCTNAME Basic
</item> .
</paragraph>
103 <paragraph role=
"listitem" id=
"par_id3145384" xml-lang=
"en-US" l10n=
"CHG" oldref=
"25">In the
<emph>Macro from
</emph> field select
<emph>(Name of the Calc document) - Standard - Module1
</emph>. Click
<emph>Edit
</emph>.
</paragraph>
106 <paragraph role=
"listitem" id=
"par_id3148699" xml-lang=
"en-US" l10n=
"U" oldref=
"26">Paste the clipboard contents in the Basic-IDE of the document.
</paragraph>
109 <paragraph role=
"heading" id=
"hd_id3153305" xml-lang=
"en-US" level=
"2" l10n=
"U" oldref=
"12">Applying a User-defined Function in $[officename] Calc
</paragraph>
110 <paragraph role=
"paragraph" id=
"par_id3148869" xml-lang=
"en-US" l10n=
"CHG" oldref=
"13">Once you have defined the function
<item type=
"literal">VOL(a; b; c)
</item> in the Basic-IDE, you can apply it the same way as the built-in functions of $[officename] Calc.
</paragraph>
111 <list type=
"ordered">
113 <paragraph role=
"listitem" id=
"par_id3148606" xml-lang=
"en-US" l10n=
"CHG" oldref=
"14">Open a Calc document and enter numbers for the function parameters
<item type=
"literal">a
</item>,
<item type=
"literal">b
</item>, and
<item type=
"literal">c
</item> in cells A1, B1, and C1.
</paragraph>
116 <paragraph role=
"listitem" id=
"par_id3156019" xml-lang=
"en-US" l10n=
"CHG" oldref=
"15">Set the cursor in another cell and enter the following:
</paragraph>
117 <paragraph role=
"code" id=
"par_id3155264" xml-lang=
"en-US" l10n=
"U" oldref=
"16">=VOL(A1;B1;C1)
</paragraph>
120 <paragraph role=
"listitem" id=
"par_id3146776" xml-lang=
"en-US" l10n=
"CHG" oldref=
"17">The function is evaluated and you will see the result in the selected cell.
</paragraph>
123 <section id=
"relatedtopics">
124 <embed href=
"text/scalc/guide/calculate.xhp#calculate"/>
125 <embed href=
"text/scalc/guide/formula_enter.xhp#formula_enter"/>