List of Functions

ABS

Syntax: ABS( number)

PARAMETERS

Name

Required/Optional

Data Type

Description

Number

Required

Decimal

The number whose absolute value you want to find.

Example: ABS(-1.24) Returns 1.24.

AND

Returns TRUE (1) if all of the logical expressions supplied are TRUE. If any of the logical expressions are FALSE or 0, the AND function returns FALSE (0).

Syntax

AND(** logical expression1 **, ** logical expression2 **,..., ** logical expressionN ** )

Parameters

PARAMETERS

Name

Required/Optional

Data Type

Description

logical expression

Required

String

A combination of constants, operators, functions, and references to ShapeSheet cells that results in a value. Any expression that evaluates to a non-zero value is considered to be TRUE.

Example AND(Height > 1, PinX > 1)

Returns TRUE if both expressions are TRUE.

Returns FALSE if either expression is FALSE.

ARG

Specifies an argument that the calling cell can pass to a custom function, as well as the default value returned by the custom function if the calling cell does not pass in a value for the argument. Returns the value specified by the calling cell and the matching argName parameter.

Syntax

ARG(argName,[ defaultValue ])

Parameters

Name

Required/Optional

Data Type

Description

argName

Required

String

The name of an argument that the calling cell can pass into the function.

default Value

Optional

Numeric

The value returned by ARG if the calling cell did not pass in a value for the argName parameter.

Remarks

As a shape developer, you can create custom functions by placing an expression in one cell and calling that expression from one or more other cells. The expression can include literal strings, ShapeSheet functions, and cell references. The expression can also include specific arguments that are passed in by the calling cell.

The calling cell specifies the cell that contains the custom function as well as any arguments that it wants to pass to the function. The expression cell is evaluated and the result returned to the calling cell.

Example

The following example shows how to use the ARG function in conjunction with the EVALCELL function to find the middle value from a set of three values.

In the expression cell, place the following code that defines the custom function:

User.MiddleValue = IF(ARG("A")>ARG("B"),IF(ARG("B")>ARG("C"),ARG("B"),IF(ARG("A")>ARG("C"),ARG("C"),ARG("A"))),IF(ARG("A")>ARG("C"),ARG("A"),IF(ARG("B")>ARG("C"),ARG("C"),ARG("B"))))

In the calling cells, place the following code that calls the custom function:

User.Middle1 = EVALCELL(User.MiddleValue,"A",3,"B",9,"C",5) 
User.Middle2 = EVALCELL(User.MiddleValue,"A",12,"B",0,"C",21)

BOUNDINGBOXDIST

Returns the measurement of the specified part of the shape's bounding box.

Syntax

BOUNDINGBOXDIST(** Index ** )

Parameters

Name

Required/Optional

Data Type

Description

Index

Required

Number

The part of the shape's bounding box to measure and return. See Remarks for possible values.

Return value

Number

Remarks

Index can be one of the following values.

Item

Value

Width

0

Height

1

Left edge to shape pin

2

Shape pin to right edge

3

Shape pin to top edge

4

Bottom edge to shape pin

5

Center of bounding box to PinX

6

Center of bounding box to PinY

7

BOUNDINGBOXRECT

Returns the coordinate of the specified edge of the shape's bounding box.

Syntax

BOUNDINGBOXRECT(** Index ** )

Parameters

Name

Required/Optional

Data Type

Description

Index

Required

Integer

The edge of the shape's bounding box for which to get the coordinate. See Remarks for possible values.

Return value

Number

Remarks

Index can be one of the following values.

Item

Value

Left edge

0

Right edge

1

Top edge

2

Bottom edge

3

If the shape has a parent, the return value is in the coordinate system of that parent.

CALLOUTCOUNT

Returns the total number of callout shapes that are associated with the shape.

Syntax

CALLOUTCOUNT()

Return value

Integer

CATEGORY

Returns the text from the Category field of a document's properties.

Syntax

CATEGORY ( )

CEILING

Rounds a number away from 0 (zero) to the next instance of multiple. If multiple is not specified, the number rounds away from 0 to the next integer.

Syntax

CEILING(** number **, ** multiple ** )

Parameters

Name

Required/Optional

Data Type

Description

number

Required

Number

The number to round.

multiple

Required

Number

The multiple to round to.

Remarks

Number and multiple must have the same signs, or a #NUM! error is returned. If either number or multiple cannot be converted to a value, a #VALUE! error is returned. If either number or multiple is 0, the result is 0.

Example 1 CEILING(3.7)

Returns 4

Example 2 CEILING(-3.7)

Returns -4

Example 3 CEILING(3.7, 0.25)

Returns 3.75

CHAR

Returns the ANSI character for a number.

Syntax

CHAR(** number ** )

Parameters

Name

Required/Optional

Data Type

Description

number

Required

Number

The number whose ANSI character you want to get.

Remarks

The resulting string is one character in length. The number parameter must be an integer between 1 and 255 (inclusive), or the function returns an error.

Example CHAR(9)

Returns the tab character.

COMPANY

Returns the text from the Company field of a document's properties.

Syntax

COMPANY ()

CONTAINERCOUNT

Returns the total number of containers that include the shape as a member (including nested relationships).

Syntax

CONTAINERCOUNT()

Return value

Integer

CONTAINERMEMBERCOUNT

Returns the total number of shapes in the container.

Syntax

CONTAINERMEMBERCOUNT()

Return value

Integer

Remarks

If the shape is not a container, CONTAINERMEMBERCOUNT returns -1.

CONTAINERSHEETREF

Returns a sheet reference to the specified container that contains the shape.

Syntax

CONTAINERSHEETREF(** index ** ** [, category] ** )

Parameters

Name

Required/Optional

Data Type

Description

index

Required

Integer

The 1-based index of the container. See Remarks for more information.

category

Optional

String

The category of the container. See Remarks for more information.

Return value

ShapeSheet reference

Remarks

The index of a container is calculated based on the z-order of containers from front to back.

Categories are user-defined strings that you can use to categorize shapes. You can define categories in the User.msvShapeCategories cell in the ShapeSheet for a shape. You can define multiple categories for a shape by separating the categories with semi-colons.

If the shape is not a member of a container, or if there is no container that matches both the specified index number and the category, CONTAINERSHEETREF returns #REF!.

Example

CONTAINERSHEETREF(1)!Height

Returns the value in the Height cell of the container that is most forward on the page to which the shape belongs.

CY

Returns a currency value.

Syntax

CY(** value **, ** cyID ** )

Parameters

Name

Required/Optional

Data Type

Description

value

Optional

Number or String

A number or a string that includes currency-specific formatting. If not specified, the currency value is formatted according to the currency style in the system's Region and Language settings.

cyID

Optional

Number

A numeric currency ID or a three-character quoted string for the ISO 4217 abbreviation.

Remarks

To specify a different currency, you must include a valid cyID. For a list, see About currency constants.

If value is incompatible with the designated currency type, or if an invalid argument such as "not a number" is specified, a #VALUE! error is returned. If value is greater than 922,337,203,685,477.5807 or less than -922,337,203,685,477.5808, a #VALUE! error is returned.

For better precision with very large currency values that include fractions of a unit, such as 3.6 trillion, use string arguments for value.

Specifying an invalid cyID returns an error.

Example 1

If the user's Region and Language settings specify United States dollars:

CY(999998.993)

Returns $999,998.99

Example 2

CY(12345678.993, "USD")

Returns $12,345,678.99

Example 3

CY(12345678.993, "DEM")

Returns 12,345,678.99 DEM

Example 4

CY(12345678.7832, "XXX")

Returns 12,345,678.78

DATA1

Returns the text from the Data 1 box in the Shape Name dialog box for a shape (on the Developer tab, click Shape Name ), as a string.

Syntax

DATA1 ()

Remarks

If the box is empty, the function returns an empty string.

DATA2

Returns the text from the Data 2 box in the Shape Name dialog box for a shape (on the Developer tab, click Shape Name ), as a string.

Syntax

DATA2 ()

Remarks

If the box is empty, the function returns an empty string.

DATA3

Returns the text from the Data 3 box in the Shape Name dialog box for a shape (on the Developer tab, click Shape Name ), as a string.

Syntax

DATA3 ()

Remarks

If the box is empty, the function returns an empty string.

DATETIME

Returns the date and time value represented by datetime or expression.

Syntax

DATETIME(" ** datetime ** "| ** expression ** [, ** lcid ** ])

Parameters

Name

Required/Optional

Data Type

Description

datetime

Required

String

Any string commonly recognized as a date and time or a reference to a cell containing a date and time.

expression

Required

String

Any expression that yields a date and time.

lcid

Optional

Number

Specifies the locale identifier to be used in evaluating a non-local datetime. The locale identifier is a number described in the system header files.

Return value

Datetime

Remarks

If datetime is missing or cannot be interpreted as a valid date or time, DATETIME returns a #VALUE! error.

The returned value is formatted according to the short date style and time style in the system's current Regional Settings.

The DATETIME function also accepts a single number value for expression where the integer portion of the result represents the number of days since December 30, 1899, and the decimal portion represents the fraction of a day since midnight.

Example 1 DATETIME("May 30, 1997")+5 ed.

Returns the value representing 6/4/1997.

Example 2 FORMAT(DATETIME("5/20/1997 14:30:45"),"C")

Returns the string "Tuesday, May 20, 1997 2:30:45 PM."

Example 3 DATETIME("1:30 PM July 19")

Returns the value representing 7/19/2001 1:30:00 PM (assuming the current year is 2001).

Example 4 DATETIME(35580.6337)

Returns the value representing 5/30/1997 3:12:32 PM.

DATEVALUE

Returns the date value represented by datetime or expression.

Syntax

DATEVALUE(" ** datetime ** "| ** expression ** [, ** lcid ** ])

Parameters

Name

Required/Optional

Data Type

Description

datetime

Required

String

Any string commonly recognized as a date and time or a reference to a cell containing a date and time.

expression

Required

String

Any expression that yields a date and time.

lcid

Optional

Number

Specifies the locale identifier to be used in evaluating a non-local datetime. The locale identifier is a number described in the system header files.

Return value

Datetime

Remarks

Any time component in datetime or expression is discarded.

If datetime is missing or cannot be converted to a valid result, DATEVALUE returns a #VALUE! error.

The returned value is displayed using the short date style set by the system's current Regional Settings.

The DATEVALUE function also accepts a single number value for expression where the integer portion of the result represents the days since December 30, 1899.

Example 1 DATEVALUE(NOW( ))+5 ed.

Returns the date five days from now.

Example 2 DATEVALUE("7/19/1995 12:30")

Returns the date.

Example 3 DATEVALUE("May 33, 1997")

Returns a #VALUE! error.

Example 4 DATEVALUE(35580.6337)

Returns 5/30/1997.

DATE

Returns the date represented by year, month, and day formatted according to the short date style in the system's Regional Settings. The values for year, month , and day reflect the Gregorian calendar.

Syntax

DATE(** year **, ** month **, ** day ** )

Parameters

Name

Required/Optional

Data Type

Description

year

Required

Integer

The year.

month

Required

Integer

The month.

day

Required

Integer

The day.

Example 1 DATE(1999,6,7)

Returns the value representing 6/7/1999.

Example 2 DATE(1999,6,7) + 4 ed.

Returns the value representing 6/11/1999.

Example 3 FORMAT(DATE(1999,10,14),"C")

Returns the value representing Tuesday, October 14, 1999.

DAYOFYEAR

Returns an integer, 1 to 366, that represents the sequential day of the year in datetime or expression. The DAYOFYEAR function uses the Gregorian calendar.

Syntax

DAYOFYEAR(" ** datetime ** "| ** expression ** [, ** lcid ** ])

Parameters

Name

Require/Optional

Data Type

Description

datetime

Required

String

Any string commonly recognized as a date and time or a reference to a cell containing a date and time.

expression

Required

String

Any expression that yields a date and time.

lcid

Optional

Number

Specifies the locale identifier to be used in evaluating a non-local datetime. The locale identifier is a number described in the system header files.

Return value

Integer

Remarks

Any time component in datetime or expression is discarded.

The result corresponds to January 1 to December 31. No rounding is done. If datetime is missing or cannot be interpreted as a valid date or time, the function returns an error.

The DAYOFYEAR function also accepts a single number value for expression where the integer portion of the result represents the number of days since December 30, 1899.

Example 1 DAYOFYEAR("May 30, 1997 13:45:24")

Returns 150.

Example 2 DAYOFYEAR(DATEVALUE("May 30, 1997")+7 ed.)

Returns 157.

Example 3 DAYOFYEAR(35580.6337)

Returns 150.

DAY

Returns an integer, 1 to 31, representing the day in datetime or expression. The DAY function uses the Gregorian calendar.

Syntax

DAY(" ** datetime ** "| ** expression ** [, ** lcid ** ])

Parameters

Name

Required/Optional

Data Type

Description

datetime

Required

String

Any string commonly recognized as a date and time or a reference to a cell containing a date and time.

expression

Required

String

Any expression that yields a date and time.

lcid

Optional

Number

Specifies the locale identifier to be used in evaluating a non-local datetime. The locale identifier is a number described in the system header files.

Return value

Integer

Remarks

Any time component in datetime or expression is discarded.

No rounding is done. If datetime is missing or cannot be converted to a valid result, the function returns an error.

The DAY function also accepts a single number value for expression where the integer portion of the result represents the number of days since December 30, 1899.

Example 1 DAY("May 30, 1997 15:45:24")

Returns 30.

Example 2 DAY(DATEVALUE("May 30, 1997")+7 ed.)

Returns 6.

Example 3 DAY(35580.6337)

Returns 30.

EVALCELL

Takes a reference to a cell that contains a custom function as well as one or more name-value pairs to pass to the custom function as arguments (optional). Returns the calculated result of the custom function given the specified arguments and values.

Syntax

EVALCELL(** cellRef **,[ ** arg1Name,arg1 ** ],[ ** arg2Name,arg2 ** ],…)

Parameters

Name

Required/Optional

Data Type

Description

cellRef

Required

String

A reference to the cell that contains the custom function. Cross-sheet references are allowed.

arg1Name

Optional

String

The name of the first argument to be passed to the custom function. Spaces are allowed.

arg1

Optional

Varies

Value of the arg1 parameter.

arg2Name

Optional

String

The name of the second argument to be passed to the custom function. Spaces are allowed.

arg2

Optional

Varies

Value of the arg2 parameter.

Return value

Number

Remarks

The calling cell does not have to specify every argument used by the custom function.

Example

The following example shows how to use the EVALCELL function in conjunction with the ARG function to find the middle value from a set of three values.

In the expression cell, place the following code that defines the custom function:

User.MiddleValue = IF(ARG("A")>ARG("B"),IF(ARG("B")>ARG("C"),ARG("B"),IF(ARG("A")>ARG("C"),ARG("C"),ARG("A"))),IF(ARG("A")>ARG("C"),ARG("A"),IF(ARG("B")>ARG("C"),ARG("C"),ARG("B"))))

In the calling cells, place the following code that calls the custom function:

User.Middle1 = EVALCELL(User.MiddleValue,"A",3,"B",9,"C",5) 
User.Middle2 = EVALCELL(User.MiddleValue,"A",12,"B",0,"C",21)

EVALTEXT

Evaluates the text in shapename as if it were a formula and returns the result.

Syntax

EVALTEXT(** shapename!theText ** )

Parameters

Namr

Required/Optional

Data Type

Description

shapename!theText

Required

String

A cell that is triggered when the associated shape's text composition changes.

Return value

String

Remarks

shapename can be used to refer to the text of a shape other than the current shape.

If there is no text, the result is zero. If the text cannot be evaluated, the function returns an error.

Example EVALTEXT(Line.2!theText)

Evaluates the text contained in the shape Line.2. For example, if Line.2 contains "4 ft + 0.5 ft", returns the value 4.5 ft.

Last updated