原文「CreateUnoValue Function」の和訳。LibreOffice 25.2ヘルプより
原文取得日 2025-08-16
Uno 型システムを参照する厳密に型指定された値を表すオブジェクトを返します。
このオブジェクトは、Uno に渡されると、何らかの対応する型に自動的に変換されます。型は、完全修飾されたUno 型名によって指定されている必要があります。
LibreOffice APIは、Any 型が頻繁に使用されます。それは、他の環境からわかるVariant 型に対応するものです。Any 型は、1つの何らかのUno 型を格納し、ジェネリックのUnoインターフェイスで使用されます。
構文:
CreateUnoValue(Type As String, Value As Object) As Object
戻り値:
Object
パラメータ:
型:完全修飾されたUno 型名。サポートされているデータ型は、void、char、boolean、byte、short、unsigned short、long、unsigned long、hyper、unsigned hyper、float、double、string、type、および any です。名前は大文字と小文字が区別され、配列を示すために先頭に角括弧が付く場合があります。
値:厳密に型指定された値。
byte_sequence_object = CreateUnoValue("[]byte", Array(85, 3, 27))
エラーコード:
CreateUnoValue が、値を指定された Uno 型に変換できない場合、エラーが発生します。変換は、com.sun.star.script.Converter サービスによって行われます。
例:
この関数は、デフォルトの Basic から Uno 型への変換メカニズムが不十分な状況で使用することを意図しています。これは、com.sun.star.beans.XPropertySet.setPropertyValue() や com.sun.star.container.XNameContainer.insertByName() などのジェネリックの Any に基づいた API メソッドを呼び出すときに発生します。CreateUnoValue()は、未知のUno 型のために、値オブジェクトを設定します。
この例では、com.sun.star.beans.XPropertySet.addProperty() メソッドを使用して、デフォルト値に CreateUnoValue() の使用が必要なドキュメント プロパティを作成します:
With ThisComponent.DocumentProperties.getUserDefinedProperties()
.addProperty("FOO", com.sun.star.beans.PropertyAttribute.REMOVEABLE, CreateUnoValue("double", 23))
End With
あなたは、この関数を使用して Any 以外の値を渡すこともできますが、これはお勧めしません。Basic が、すでにターゲット型を認識している場合、CreateUnoValue() 関数を使用すると、追加の変換操作が実行され、Basic の実行速度が低下するだけです。
