Module
Contents
Index 🔎︎

# CreateUnoValue Function

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

該物件被傳送到 Uno 時，將自動轉換成相應的 Any 類型，此類型必須由完全合格的 Uno 類型名稱來指定。

LibreOffice API 經常使用 Any 類型。它與其他環境中的變體型相對應。Any 類型具有一個任意的 Uno 類型，並用於通用的 Uno 介面中。

## 語法：

    oUnoValue = CreateUnoValue( "[]byte", MyBasicValue ) ' to get a byte sequence.

如果無法將 CreateUnoValue 轉換為指定的 Uno 類型，將發生錯誤。轉換時使用 TypeConverter 服務。

此函式適用於 Basic 到 Uno 類型的標準轉換機制無法滿足要求的場合。當試圖從 LibreOffice Basic 存取基於通用的 Any 類型的介面，例如 XPropertySet::setPropertyValue (Name, Value ) 或 X???Container::insertBy??? (???, Value) 時，可能出現此種情形。由於這些類型僅在相應的服務中進行了定義，因此 Basic 執行階段不能識別這些類型。

在這種情形下，LibreOffice Basic 會為要轉換的 Basic 類型選擇最佳的相符類型。但是如果選取了錯誤的類型，就會發生錯誤。您可以使用 CreateUnoValue() 函式為不明的 Uno 類型建立一個值。

此外，還可以使用此函式來傳送非 Any 數值，但是不建議您這樣做。如果 Basic 知道目標類型，則使用 CreateUnoValue() 函式只會導致額外的轉換作業，從而降低 Basic 的執行速度。