Contents

# CreateUnoValue Function

傳回表示參照 Uno 類型系統精確定型的值的物件。

This object is automatically converted to an Any of the corresponding type when passed to Uno. The type must be specified by its fully qualified Uno type name.

The LibreOffice API frequently uses the Any type. It is the counterpart of the Variant type known from other environments. The Any type holds one arbitrary Uno type and is used in generic Uno interfaces.

### Syntax:

      CreateUnoValue(Type As String, Value As Object) As Object

### Return type:

Object

### Parameters:

Name | Type | Description
--- | --- | ---
Type | String | The fully qualified Uno type name. Supported data types are void, char, boolean, byte, short, unsigned short, long, unsigned long, hyper, unsigned hyper, float, double, string, type, and any. Names are case sensitive and may be preceded by square brackets to indicate an array.
Value | Object | A strictly typed value.

### 錯誤代碼：

If CreateUnoValue cannot convert the value to the specified Uno type, an error occurs. The com.sun.star.script.Converter service is responsible for the conversion.

### Example:

       byte_sequence_object = CreateUnoValue("[]byte", Array(85, 3, 27))

### Example:

This function is intended for use in situations where the default Basic to Uno type converting mechanism is insufficient. This happens calling generic Any based API methods, such as com.sun.star.beans.XPropertySet.setPropertyValue() or com.sun.star.container.XNameContainer.insertByName(). CreateUnoValue() sets a value object for the unknown Uno type.

This example uses com.sun.star.beans.XPropertySet.addProperty() method to create a document property whose default values requires CreateUnoValue() usage:

      With ThisComponent.DocumentProperties.getUserDefinedProperties()
          .addProperty("FOO", com.sun.star.beans.PropertyAttribute.REMOVEABLE, CreateUnoValue("double", 23))
      End With

You can also use this function to pass non-Any values, but this is not recommended. If Basic already knows the target type, using the CreateUnoValue() function will only lead to additional converting operations that slow down the Basic execution.

相關主題

UNO Objects, Functions and Services