<?xml version="1.0" encoding="UTF-8"?>


<!--***********************************************************
 * 
 * Licensed to the Apache Software Foundation (ASF) under one
 * or more contributor license agreements.  See the NOTICE file
 * distributed with this work for additional information
 * regarding copyright ownership.  The ASF licenses this file
 * to you under the Apache License, Version 2.0 (the
 * "License"); you may not use this file except in compliance
 * with the License.  You may obtain a copy of the License at
 * 
 *   http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing,
 * software distributed under the License is distributed on an
 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 * KIND, either express or implied.  See the License for the
 * specific language governing permissions and limitations
 * under the License.
 * 
 ***********************************************************-->


	
<helpdocument version="1.0">
<meta>
<topic id="textsbasicshared03102900xml" indexer="include" status="PUBLISH">
<title id="tit" xml-lang="en-US">LBound Function [Runtime]</title>
<filename>/text/sbasic/shared/03102900.xhp</filename>
</topic>
<history>
<created date="2003-10-31T00:00:00">Sun Microsystems, Inc.</created>
<lastedited date="2004-08-24T13:07:51">converted from old format - fpe</lastedited>
</history>
</meta>
<body>
<section id="lbound">
<bookmark xml-lang="en-US" branch="index" id="bm_id3156027"><bookmark_value>LBound function</bookmark_value>
</bookmark>
<paragraph role="heading" id="hd_id3156027" xml-lang="en-US" level="1" l10n="U" oldref="1"><link href="text/sbasic/shared/03102900.xhp" name="LBound Function [Runtime]">LBound Function [Runtime]</link></paragraph>
<paragraph role="paragraph" id="par_id3147226" xml-lang="en-US" l10n="U" oldref="2">Returns the lower boundary of an array.</paragraph>
</section>
<paragraph role="heading" id="hd_id3148538" xml-lang="en-US" level="2" l10n="U" oldref="3">Syntax:</paragraph>
<paragraph role="paragraph" id="par_id3150503" xml-lang="en-US" l10n="U" oldref="4">LBound (ArrayName [, Dimension])</paragraph>
<paragraph role="heading" id="hd_id3150984" xml-lang="en-US" level="2" l10n="U" oldref="5">Return value:</paragraph>
<paragraph role="paragraph" id="par_id3153126" xml-lang="en-US" l10n="U" oldref="6">Integer</paragraph>
<paragraph role="heading" id="hd_id3144500" xml-lang="en-US" level="2" l10n="U" oldref="7">Parameters:</paragraph>
<paragraph role="paragraph" id="par_id3145069" xml-lang="en-US" l10n="U" oldref="8">
<emph>ArrayName:</emph> Name of the array for which you want to return the upper (<emph>Ubound</emph>) or the lower (<emph>LBound</emph>) boundary of the array dimension.</paragraph>
<paragraph role="paragraph" id="par_id3149457" xml-lang="en-US" l10n="U" oldref="9">
<emph>[Dimension]:</emph> Integer that specifies which dimension to return the upper (<emph>Ubound</emph>) or the lower (<emph>LBound</emph>) boundary for. If a value is not specified, the first dimension is assumed.</paragraph>
<embed href="text/sbasic/shared/00000003.xhp#errorcode"/>
<embed href="text/sbasic/shared/00000003.xhp#err5"/>
<embed href="text/sbasic/shared/00000003.xhp#err9"/>
<paragraph role="heading" id="hd_id3145171" xml-lang="en-US" level="2" l10n="U" oldref="10">Example:</paragraph>
<paragraph role="paragraph" id="par_id3148673" xml-lang="en-US" l10n="U" oldref="11">Sub ExampleUboundLbound</paragraph>
<paragraph role="paragraph" id="par_id3153193" xml-lang="en-US" l10n="U" oldref="12">Dim sVar(10 to 20) As String</paragraph>
<paragraph role="paragraph" id="par_id3148452" xml-lang="en-US" l10n="U" oldref="13">print LBound(sVar())</paragraph>
<paragraph role="paragraph" id="par_id3153768" xml-lang="en-US" l10n="U" oldref="14">print UBound(sVar())</paragraph>
<paragraph role="paragraph" id="par_id3147288" xml-lang="en-US" l10n="U" oldref="15">end Sub</paragraph>
<paragraph role="paragraph" id="par_id3146974" xml-lang="en-US" l10n="U" oldref="16">Sub ExampleUboundLbound2</paragraph>
<paragraph role="paragraph" id="par_id3146985" xml-lang="en-US" l10n="U" oldref="17">Dim sVar(10 to 20,5 To 70) As String</paragraph>
<paragraph role="paragraph" id="par_id3145365" xml-lang="en-US" l10n="U" oldref="18">Print LBound(sVar()) REM Returns 10</paragraph>
<paragraph role="paragraph" id="par_id3150486" xml-lang="en-US" l10n="U" oldref="19">Print UBound(sVar()) REM Returns 20</paragraph>
<paragraph role="paragraph" id="par_id3149665" xml-lang="en-US" l10n="U" oldref="20">Print LBound(sVar(),2) REM Returns 5</paragraph>
<paragraph role="paragraph" id="par_id3159154" xml-lang="en-US" l10n="U" oldref="21">Print UBound(sVar(),2) REM Returns 70</paragraph>
<paragraph role="paragraph" id="par_id3154013" xml-lang="en-US" l10n="U" oldref="22">end Sub</paragraph>
</body>
</helpdocument>
