Dim Statement/text/sbasic/shared/03102100.xhpDim statementarrays; dimensioningdimensioning arrays
Dim Statement
Declares variables or arrays.If the variables are separated by commas - for example Dim v1, v2, v3 As String - first ones get defined as Variant variables. A new line, or colon sign (:), help separate variable definitions.Dim text As StringDim pv As com.sun.star.beans.PropertyValue, d As DateDim Units as Integer : Dim EULER As DoubleDim declares local variables within subroutines. Global variables are declared with the Global, Public or the Private statement.Dim Statement diagramDim variable [(start To end)] [As typename][, variable2[char] [(start To end)] [,...]]New operator is optional when setting Option Compatible option.variable: Any variable or array name.typename: Keyword that declares the data type of a variable.primitive data types fragmentByte: Byte variable (0-255)Boolean: Boolean variable (True, False)Currency: Currency variable (Currency with 4 Decimal places)Date: Date variableDouble: Double-precision floating-point variable (1,79769313486232 x 10E308 - 4,94065645841247 x 10E-324)Integer: Integer variable (-32768 - 32767)Long: Long integer variable (-2.147.483.648 - 2.147.483.647)Object: Object variable (Note: this variable can only subsequently be defined with Set!)Single: Single-precision floating-point variable (3,402823 x 10E38 - 1,401298 x 10E-45).String: String variable consisting of a maximum of 64,000 ASCII characters.Variant: Variant variable type (contains all types, specified by definition). If a type name is not specified, variables are automatically defined as Variant Type, unless a statement from DefBool to DefVar is used.object: Universal Network object (UNO) object or ClassModule object instance.char: Special character that declares the data type of a variable.Type declaration characters fragmentIn %PRODUCTNAME Basic, you do not need to declare variables explicitly. However, you need to declare arrays before you can use them. You can declare a variable with the Dim statement, using commas (,) to separate multiple declarations. To declare a variable type, enter a type-declaration character following the name or use a corresponding type keyword name.
Declaration characterVariable type name%Integer&Long!Single#Double$String@Currency
array: Array declaration.array fragmentstart, end: Numerical values or constants that define the number of elements (NumberElements=(end-start)+1) and the index range.see #i36558start and end can be numerical expressions if ReDim is applied at the procedure level.$[officename] Basic supports single or multi-dimensional arrays that are defined by a specified variable type. Arrays are suitable if the program contains lists or tables that you want to edit. The advantage of arrays is that it is possible to address individual elements according to indexes, which can be formulated as numeric expressions or variables.Arrays are declared with the Dim statement. There are multiple ways to define the index range:Dim text(20) As String ' 21 elements numbered from 0 to 20Dim value(5 to 25) As Integer ' 21 values numbered from 5 to 25Dim amount(-15 to 5) As Currency ' 21 amounts (including 0), numbered from -15 to 5REM Two-dimensional data fieldDim table$(20,2) ' 63 items; from 0 to 20 level 1, from 0 to 20 level 2 and from 0 to 20 level 3.You can declare an array types as dynamic if a ReDim statement defines the number of dimensions in the subroutine or the function that contains the array. Generally, you can only define an array dimension once, and you cannot modify it. Within a subroutine, you can declare an array with ReDim. You can only define dimensions with numeric expressions. This ensures that the fields are only as large as necessary.Sub ExampleDim1Dim sVar As StringDim iVar As Integer sVar = "Office"End SubSub ExampleDim2 ' Two-dimensional data field Dim stext(20,2) As String Const sDim As String = " Dimension:" For i = 0 To 20 For ii = 0 To 2 stext(i,ii) = str(i) & sDim & str(ii) Next ii Next i For i = 0 To 20 For ii = 0 To 2 MsgBox stext(i,ii) Next ii Next iEnd Sub