Поделиться через


Метод Application.FormatResult (Visio)

Форматирует строку или число в строку в соответствии с рисунком формата. Использует указанные единицы измерения для масштабирования и форматирования.

Синтаксис

expression. FormatResult (StringOrNumber, UnitsIn, UnitsOut, Format)

выражение: переменная, представляющая объект Application.

Параметры

Имя Обязательный или необязательный Тип данных Описание
StringOrNumber Обязательный Variant Строка или число для форматирования; может передаваться в виде строки, числа с плавающей запятой или целого числа.
UnitsIn Обязательный Variant Единицы измерения для атрибута StringOrNumber.
UnitsOut Обязательный Variant Единицы измерения для выражения результата.
Format Обязательный String Изображение того, как должна выглядеть результющая строка.

Возвращаемое значение

Строка

Замечания

При передаче в виде строки StringOrNumber может быть формулой или потенциальной формулой ячейки или результатом или потенциальным результатом ячейки, выраженным в виде строки. Метод FormatResult вычисляет строку и форматирует результат. Так как строка вычисляется вне контекста, являющегося формулой определенной ячейки, метод FormatResult возвращает ошибку, если строка содержит ссылки на ячейки.

Возможные значения для StringOrNumber :

  • 1.7
  • 3
  • "2.5"
  • "4,1 см"
  • "12 футов - 17 в. + (12 см / SQRT(7))"

Аргументы UnitsIn и UnitsOut могут быть такими строками, как "inches", "inch", "in." или "i". Строки можно использовать для всех поддерживаемых единиц Microsoft Office Visio, таких как сантиметры, метры, мили и т. д. Вы также можете использовать любую из констант единиц, объявленную библиотекой типов Visio в VisUnitCodes. Список допустимых единиц также включен в сведения о единицах измерения.

Если StringOrNumber является строкой, UnitsIn указывает способ интерпретации вычисленного результата и используется только в том случае, если результат является скалярным. Например, выражение "4 * 5 cm" оценивается в 20 см, что не является скалярным, поэтому UnitsIn игнорируется. Выражение "4 * 5" имеет значение 20, которое является скалярным и интерпретируется с помощью указанного элемента UnitsIn.

Аргумент UnitsOut указывает единицы измерения, в которых должна быть выражена возвращаемая строка. Если вы хотите, чтобы результаты были выражены в той же единице, что и вычисляемого выражения, передайте "NOCAST" или visNoCast.

Format — это строка, указывающая шаблон или рисунок строки, созданной методом FormatResult . Дополнительные сведения см. в функции FORMAT. Ниже приведены некоторые возможности.

  • # — выводит однозначную цифру, но не, если она является начальным или конечным значением 0.

  • 0 — выводит одну цифру, даже если она является начальным или конечным 0.

  • . — Заполнитель десятичного разряда.

  • , — Разделитель тысяч.

  • "text" или 'text' — выводит вложенный текст как есть.

  • \c — выводит символ c.

Пример

Где указана строка.

' Prints 1.00 
Debug.Print Application.FormatResult("0.5 * 2", "ft", "ft", "#.00 u") 
 
' Prints 12.00 in. 
Debug.Print Application.FormatResult("0.5 * 2", "ft", "in", "#.00 u") 
 
' Prints .39 in. 
Debug.Print Application.FormatResult("1 cm", "ft", "in", "#.00 u") 
 
' Prints 1.00 cm. 
Debug.Print Application.FormatResult("1 cm", "ft", "NOCAST", "#.00 u") 
 
' Prints 0.39 
Debug.Print Application.FormatResult("1 cm", "ft", "", "0.00 u") 
 
' Prints 1858.06 sq. cm. 
Debug.Print Application.FormatResult("1 sq. ft. * 2", "in^2", "cm^2", "0.00 u") 
 
' Throws an exception because of bad measurement unit ("bz") 
Debug.Print Application.FormatResult("1 cm", "ft", "bz", "#.00 u") 

Где указано число.

' Prints 1.00 
Debug.Print Application.FormatResult(1, "ft", "ft", "#.00 u") 
 
' Prints 12.00 in. 
Debug.Print Application.FormatResult(1, "ft", "in", "#.00 u") 
 
' Prints .08 ft. 
Debug.Print Application.FormatResult(1.0, "in", "ft", "#.00 u") 
 
' Prints 12.00 
Debug.Print Application.FormatResult(1.0, visFeet, "", "#.00 u") 
 
' Throws an exception because of bad measurement unit ("bz") 
Debug.Print Application.FormatResult(1, "bz", "in", "#.00 u") 


В следующем макросе показано, как использовать метод FormatResult для преобразования значения с сантиметров на дюймы и отображения результата в окне сообщения.

 
Public Sub FormatResult_Example() 
 
 Dim strOldValue As String 
 Dim strNewValue As String 
 
 'Set old value. 
 strOldValue = "1 cm" 
 
 'Format value. 
 strNewValue = Application.FormatResult _ 
 (strOldValue, "ft", "in", "#.00 u") 
 
 'Display new value. 
 MsgBox (strNewValue) 
 
End Sub

Поддержка и обратная связь

Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.