Fichas de Referencia L.O. Basic

Ficha nº 6.
Biblioteca de Ejecución

Nivel: Principiante

Créditos

Autor: Jean-François Nifenecker – jean-francois.nifenecker@laposte.net

Traducción y adaptación: B. Antonio Fernández

Esta ficha de referencia está bajo licencia de CreativeCommons BY-SA v3 (fr) o posterior.: https://creativecommons.org/licenses/by-sa/3.0/fr/

img_FB26206-001

Este documento es una adaptación del documento original, en Francés, que se puede obtener en la Wiki de publicaciones de LibreOffice.

Versión

Fecha

Comentarios

2.0

06/04/2019

Mise en forme.

2.0_ES

15/09/2026

Traducción y cambio de formato para esta versión

Somos como enanos a hombros de gigantes. Si alcanzamos a ver más cosas y más lejanas que ellos, no es por la perspicacia de nuestra visión, ni por nuestra grandeza, sino porque son ellos quienes nos elevan. (atribuido a Bernard de Chartres )

Opciones de ejecución

Especificaciones, por módulo, antes de cualquier código ejecutable.

Option Explicit

Impone la declaración explicita de variables.

Option Compatible

Para que LibO Basic se comporte como VBA.

Option VBASupport 1

Activa la compatibilidad o el apoyo a VBA.

Option Base 1

Indexar los arrays empezando por 1 en lugar de 0.

Option ClassModule

Utilizado para crear clases (+ Option Compatible).

Constantes Basic

True

Verdadero (Booleano)

Empty

Variable no inicializada.

False

Falso (Booleano)

Null

Variable sin contenido útil

Pi

3.14159265358979 (Doble)

Nothing

(objetos) elimina la asignación anterior.

Funciones

Funciones, Cadenas de caracteres (tipo String)

Asc()

Chr()

Devuelve el valor Ascii (del 1er carácter ) de una cadena de texto.
Asc("Azerty")65

Chr()

Asc()

Devuelve el carácter al que pertenece el código Ascii expresado.
Chr(65)"A" *Vea Asc(), Tabla Ascii.

ConvertFromURL()

ConvertToURL()

Convierte un nombre de archivo del formato URL al formato del S.O.
Formato URL protocolo:///host/ruta/al/archivo.ext
ConvertFromURL("file:///c:/rep/archivo.ods")→ C:\rep\archivo.ods
Linux: file:///home/user/rep/archivo.ods

ConvertToURL()

ConvertFromURL()

Convierte un nombre de archivo del formato del S.O. al formato URL
ConvertToURL("C:\rep\archivo.ods")file:///c:/rep/archivo.ods

Cstr(), Str()

Str(), Val()

Convierte un numéro en cadena de texto.Str(2.65)"2.65"

  • El separador decimal en basic es el punto. Atentos a los espacios

Format()

Covierte un número en texto con el formato de una máscara.
14/4/2021, Format(Now(), "yyyy")"2021"
*Vea Función Format – Máscaras de formato.

InStr()

Busca en una cadena de texto la posición de otra cadena y devuelve el
número que ocupa. * Si no la encuentra, devuelve 0.
InStr("LibreOffice", "Office")6

Join()

Split()

Une los elementos de un array para convertirlos en una cadena de texto
Array1 = Array("C:", "Rep", "SsRep", "MiArchivo.ods")
Join(Array1, "\") → "C:\Rep\SsRep\MiArchivo.ods"

Lcase()

Ucase()

Convierte una cadena a minúsculas
LCase("LibreOffice") → "libreoffice"

Left()

Mid(),Right()

Left(cadena, N)Extrae N caracteres de la cadena desde la izq.
Left("LibreOffice", 5) → "Libre"

Len()

Devuelve el número de caracteres de una cadena.
Len("LibreOffice")11

Ltrim()

Rtrim(), Trim()

Elimina los espacios a la izquierda de una cadena (iniciales).

Mid()

Left(),Right()

Mid(cadena, P, N). Extrae N caracteres. Del interior de una cadena a
partir de la posición P.

Mid("14/7/2017", 4, 1)"7"

Right()

Mid(),Left()

Right(cadena, N). Extae N caracteres de una cadena desde la derecha.
Right("LibreOffice", 6) → "Office"

Rtrim()

Ltrim(), Trim()

Elimina los espacios a la derecha de una cadena (finales)

Space()

String()

Devuelve una cadena constituida por N espacios.
Space(3)"   "

Split()

Join()

Convierte una cadena de texto en un array separando los elementos por
un carácter especificado
MiCadena = "C:\Rep\SsRep\Archivo.ods"
Split(MiCadena, "\") → array :"C:", "Rep", "SsRep", "Archivo.ods"

Str()

Es lo mismo que CStr()

StrComp()

Compara dos cadenas y devuelve un entero (resultado de comparación).

String()

Space()

Crea una cadena de N veces un carácter.
String(4, "Y")"YYYY" *Vea Space()

Trim()

LTrim(), RTrim()

Elimina los espacios a Izquierda y derecha de una cadena.

Ucase()

LCase()

Convierte una cadena en Mayúsculas.
UCase("LibreOffice")"LIBREOFFICE"

Val()

Str(), CStr()

Convierte una cadena en un valor numérico (0 si no se puede convertir)
Val("12.34")12,34 (El separador decimal en basic es el punto)

Funciones Numéricas

Abs()

Devuelve el valor absoluto de un número.

Exp()

Exponencial. (Eleva a una potencia).

Fix()

Devuelve la parte entera de un número (sin redondearlo).

Hex()

Devuelve el valor hexadecimal de un número decimal.

Int()

Devuelve la parte entera de un número (redondeado a la baja).

Log()

Devuelve el logaritmo de un número.

Oct()

Devuelve el valor octal de un número decimal.

Randomize()

Inicializa un generador de números aleatorios *para la función Rnd()).

Rnd()

Devuelve un número aleatorio entre 0 y 1.  *Vea Randomize()

Sgn()

Devuelve el signo de un número.

Sqr()

Calcula la raiz cuadrada de un número.

Funciones Trigonométricas

Ángulos en radianes. (use la formula) radianes = (grados * Pi)/180

Atn()

Arco tangente.

Cos()

Coseno.

Tan()

Tangente.

Funciones fecha / hora

Formato de fecha «UNO»

La API LibreOffice utiliza de manera habitual  las fechas «Uno»
com.sun.star.util.DateTime (.Date o bien .Time), que se estructura así:

IsUTC

True si la zona hor. es UTC.

Hours

Horas (0-23).

Year

No del año

Minutes

Minutos (0-59).

Month

No del més (0 si está vacía).

Seconds

Segundos (0-59).

Day

No del día (0 si está vacía).

NanoSeconds

Nanosegundos.

Funciones fecha / hora

CDateFromISO()

Convierte una cadena fecha en formato ISO al formato Date
*formato iso = (AAAAMMJJ). Date = en función de config. local
CDateFromISO("20170714") → 14/07/2017.

CDateFromUnoDate()

Convierte una estructura UNO
com.sun.star.util.Date en un valor de tipo Date.

CDateFromUnoDateTime()

Convierte una estructura UNO com.sun.star.util.DateTime en un
valor de tipo Date.

CDateFromUnoTime()

Convierte una estructura UNO com.sun.star.util.Time en un valor
de tipo Date.

CDateToISO()

Convierte la fecha en formato Date al formato ISO
14/7/2017, CDateToISO(Now())"20170714"

CDateToUnoDate()

Convierte la fecha a la forma estructurada UNO
com.sun.star.util.Date.

CDateToUnoDateTime()

Convierte fecha y hora a la forma estructurada UNO
com.sun.star.util.DateTime.

CDateToUnoTime()

Convierte hora a la forma estructurada UNO
com.sun.star.util.Time
.

Date()

Now() y Time()

Devuelve la fecha actual (tipo Date).
☛ Date(Now())

DateAdd()

Devuelve una nueva fecha calculada por una fecha de inicio , una
máscara de tiempo y un criterio de ajuste (±).
14/7/2017, DateAdd("m", -1, Now())14/6/2017

Formatos de unidades de fecha:

yyyy

Año

m

Mes

w

Día de la semana

d

Día

m

Minuto

q

Trimestre

y

Día del año

ww

Semana del año

h

Hora

s

Segundo

DateDiff()

Calcula la diferencia entre dos fechas, expresada en una unidad de fecha
DateDiff("m", "14/8/2017", "14/7/2017")1

DatePart()

Devuelve la parte especificada de la fecha (unidad elegida) **
DatePart("q", "14/7/2017")3

DateSerial()

Devuelve un valor fecha  para una fecha calculada por tres elementos
separados por coma (año, mes, día).
DateSerial(2017,7,14) → 14/7/2017

DateValue()

Convierte una cadena de texto a un formato tipo Date
DateValue("14/7/2017") → 14/07/2017 (tipo Date)

Day()

Devuelve el número del día del mes. Day("14/7/2017")14

Hour()

Devuelve la hora Hour(Now())12 (si es mediodía)

Minute()

Devuelve los minutos Minute(Now())0 (si es en punto)

Month()

Devuelve el número del mes. Month("14/7/2017")7

Now()

Date(), Time()

Devuelve fecha y hora actual (formato Date).

Second()

Devuelve los segundos de un valor de tipo Date.
Second(Now())0 (si es la hora en punto)

Time()

Devuelve la hora actual en tipo Date. *Vea Date(), Now()

Timer()

Devuelve un Double (número de segundos desde la medianoche).

  • Asigne Timer() a una variable antes de usarlo

TimeSerial()

Devuelve un valor date calculado desde (hora, minuto y segundo)
separados por coma TimeSerial(12,25,14)12:25:14 (Date)

TimeValue()

Convierte una cadena de texto válida en un valor tipo Date.
TimeValue("12:25:14")12:25:14 (tipo Date)

Wait

(instrucción) hace una pausa de un tiempo en millisegundos.
Wait 1000 → pausa de 1 segundo.

WeekDay()

Devuelve el número del día de lasemana (1 = domingo).
Weekday("14/7/2017") 6 (viernes)

Year()

Devuelve el número del año Year("14/7/2017")2017

Funciones, Colores

Los colores se almacenan en variables Long.

Red(), Green(), Blue()

Extraen los valores de los componentes de un color

RGB()

Devuelve el número (Long) corresp. a un color expresado en
componentes RGB(128,0,0)8388608 (Ladrillo oscuro)

Funciones, Arrays

Array()

Crea un array a partir de valores discretos.

MiArray = Array("Uno", 2, Now())

DimArray()

Equivalente a Array() MiArray = DimArray("Uno", 2, Now())

  • Use esta opción  si está activa la declaración implicita de variables.

Erase

(Instruccion) Borra el contendo del array. Si es dinámico lo libera de memoria.  ☛ Erase MiArray

LBound()

Límite inferior.

UBound()

Límite superior.

Funciones de consulta de tipo

Estas funciones permiten obtener información de las variables

De cualquier variable

TypeName()

Devuelve una cadena de texto detallando la variable indicada.

VarType()

Devuelve un valor numérico relativo a la variable indicada.

IsUnoStruct()

Devuelve True si la variable indicada es una estructura UNO.

Las dos primeras funciones devuelven los valores indicados en la tabla:

Tipo

Nombre

Tipo

Nombre

Tipo

Nombre

Tipo

Nombre

Tipo

Nombre

0

Empty

3

Long

6

Currency

9

Object

17

Byte

1

Null

4

Single

7

Date

11

Boolean

37

Decimal

2

Integer

5

Double

8

String

12

Variant

De tipo variants

Devuelven  True según el tipo real detectado.

Función

Verifica el tipo

Función

Verifica el tipo

IsArray()

Array

IsNull()

Null (sin datos).

IsDate()

Date.

IsNumeric()

Valor numérico.

IsEmpty()

Variable no inicializada

IsObject()

Objeto OLE.

IsError()

Valor de error.

IsUNOStruct()

True si es estructura UNO.

De tipo objeto

(Vea Estructuras y objetos UNO)

Funciones de conversión de tipos (typecast)

Convierten un valor de un tipo (compatible) a otro. El nombre de la función refleja el tipo destino.

CBool()

a Boolean

CDbl()

a Double

CSng()

a Single

CByte()

a Byte

CDec()

a Decimal

CStr()

a String

CCur()

a Currency

CInt()

a Integer

CVar()

a Variant

CDate()

a Date

CLng()

a Long

CVErr()

a Variant (Error)

Estructuras y objetos UNO

CreateUnoService(Nomb)

Crea un servicio UNO.  ☛ Nomb sensible a mayúsculas

IsUNOStruct()

True si es una estructura UNO.

(struct.)Dbg_Properties

Devuelve el nombre de la estructura UNO (String).

HasUnoInterfaces()

True si el objeto UNO promueve Interfaces.

(obj.)SupportsService()

True si el objeto promueve el servicio aumentado (String).

EqualUnoObjects(o1, o2)

True si dos var. se refieren a la misa instancia del objeto.

Funciones de información de errores

Erl

Nº de línea de error

Error

Mensaje asociado al error

Err

Código del error

Otras Funciones

GetGUIType()

Devuelve un valor que indica el sistema operativo usado

 

1

Windows

4

OSX o Linux

3

MacOS

GetSolarVersion()

Defvelve la versión de LibreOffice.

IsMissing()

Comprueba si se ha omitido un parámetro opcional (sub o func.)

Llamadas a comandos del sistema

Syntaxis del comando: Shell(Comando, Estilo, Param, Sinc)

Comando

El comando que se desea ejecutar (String).

Estilo

Se refiere a la ventana donde ejecutar el comando (Integer). Opciones:

 

0

El programa recibe el foco y su ventana está oculta.

 

1

El programa recibe el foco y se ejecuta en una ventana estándar.

 

2

El programa recibe el foco y se ejecuta en una ventana minimizada.

 

3

El programa recibe el foco y se ejecuta en una ventana maximizada.

 

4

El programa se inicia en una ventana sin foco.

 

6

El programa se inicia minimizado, el foco se queda en  la ventana actual.

 

10

El programa se inicia en modo pantalla completa.

Param

Parámetros de ejecución pasados como argumento al programa (String).

Sinc

Señal de seguimiento de la ejecución

 

True

Esperar al final de la ejecución del comando.

 

False

No esperar al final de la ejecución del comando.

Función Format – Máscaras de formato

La función Format() convierte un núm. en cadena, (formato según máscara de formato).

Una máscara de formato es una cadena que puede ser mostrada en tres secciones separadas por punto y coma val>0;val<0;val=0. *Una sección sola = todos los números.

Números

0

Cifra obligatoria en la posición
(0 si no se indica)

%

El resultado se muestra en formato
de porcentaje.

#

Cifra opcional

E- E+

Formato científico.

.

Separador  decimal

e- e+

Formato científico.

+- ()

espacio

Caracteres literales se muestran
igual en el resultado.

\

Caracter de escape: el car. que sigue
se muestra en el resultado.

Fechas

D o DD

N° del día (1 o 2 car.)

Q o QQ

N° trimestre (1 o 2 car.)

NNN

Nombre del día.

W o WW

N° semana (1 o 2 car.).

M o MM

N° del mes (1 o 2 car.)

h o hh

Hora  (1 o 2 car.)

MMMM

Nombre del mes.

m o mm

Minutos (1 o 2 car.)

YY o YYYY

N° del año (2 o 4 car.)

s o ss

Segundos (1 o 2 car.)

Soporte VBA

Opciones de entorno

Herramientas ► Opciones ► Cargar / guardar ► Propiedades de VBA

Cargar el código Basic

Carga y guarda el código VBA de un documento MSOffice
en un módulo especial LibreOffice Basic.

Código ejecutable

El código VBA se cargará preparado para su ejecución.

Guardar el Basic original

El código VBA en el documento se guarda aparte
durante la carga del documento en LibreOffice.

Opciones de ejecución

Para usar la compatibilidad  con VBA indique Option VBASupport 1 y Option Compatible en  la cabecera del módulo.

Funciones VBA

AscW

FV()

IRR()

Round()

ChrW

Input()

Me()

RTL()

DDB()

InStrRev()

MIRR()

StrReverse()

FormatDateTime()

IPmt()

NPer()

WeekDayName()

Encuentre más detalles en la ayuda en linea

Instrucciones VBA

Enum

Enum MiEnumeracion

  WIND0WS   = 1 ' Windows

  OS2PM     = 2 ' OS/2 Presentation Manager

  MACINTOSH = 3 ' Macintosh

  MOTIF     = 4 ' Motif Window Manager / Unix-like

  OPENLOOK  = 5 ' Open Look / Unix-like

End Enum

A los valores enumerados se les asigna el tipo Long.

Tabla Ascii

Déc

Hex

Val

 

Déc

Hex

Val

 

Déc

Hex

Val

 

Déc

Hex

Val

 

Déc

Hex

Val

0

0

NUL

 

26

1A

SUB

 

52

34

4

 

78

4E

N

 

104

68

h

1

1

SOH

 

27

1B

ESC

 

53

35

5

 

79

4F

O

 

105

69

i

2

2

STX

 

28

1C

FS

 

54

36

6

 

80

50

P

 

106

6A

j

3

3

ETX

 

29

1D

GS

 

55

37

7

 

81

51

Q

 

107

6B

k

4

4

EOT

 

30

1E

RS

 

56

38

8

 

82

52

R

 

108

6C

l

5

5

ENQ

 

31

1F

US

 

57

39

9

 

83

53

S

 

109

6D

m

6

6

ACK

 

32

20

SPC

 

58

3A

:

 

84

54

T

 

110

6E

n

7

7

BEL

 

33

21

!

 

59

3B

;

 

85

55

U

 

111

6F

o

8

8

BS

 

34

22

"

 

60

3C

<

 

86

56

V

 

112

70

p

9

9

HT

 

35

23

#

 

61

3D

=

 

87

57

W

 

113

71

q

10

0A

LF

 

36

24

$

 

62

3E

>

 

88

58

X

 

114

72

r

11

0B

VT

 

37

25

%

 

63

3F

?

 

89

59

Y

 

115

73

s

12

0C

FF

 

38

26

&

 

64

40

@

 

90

5A

Z

 

116

74

t

13

0D

CR

 

39

27

'

 

65

41

A

 

91

5B

[

 

117

75

u

14

0E

SO

 

40

28

(

 

66

42

B

 

92

5C

\

 

118

76

v

15

0F

SI

 

41

29

)

 

67

43

C

 

93

5D

]

 

119

77

w

16

10

DLE

 

42

2A

*

 

68

44

D

 

94

5E

^

 

120

78

x

17

11

DC1

 

43

2B

+

 

69

45

E

 

95

5F

_

 

121

79

y

18

12

DC2

 

44

2C

,

 

70

46

F

 

96

60

`

 

122

7A

z

19

13

DC3

 

45

2D

-

 

71

47

G

 

97

61

a

 

123

7B

{

20

14

DC4

 

46

2E

.

 

72

48

H

 

98

62

b

 

124

7C

|

21

15

NAK

 

47

2F

/

 

73

49

I

 

99

63

c

 

125

7D

}

22

16

SYN

 

48

30

0

 

74

4A

J

 

100

64

d

 

126

7E

~

23

17

ETB

 

49

31

1

 

75

4B

K

 

101

65

e

 

127

7F

DEL

24

18

CAN

 

50

32

2

 

76

4C

L

 

102

66

f

 

25

19

EM

 

51

33

3

 

77

4D

M

 

103

67

g

 

Contenido