PowerPoint.TextRange class

Contains the text that is attached to a shape, in addition to properties and methods for manipulating the text.

Extends

Remarks

[ API set: PowerPointApi 1.4 ]

Examples

// Link to full sample: https://raw.githubusercontent.com/OfficeDev/office-js-snippets/prod/samples/powerpoint/text/get-set-textrange.yaml

// Sets the color of the selected text range to green.
await PowerPoint.run(async (context) => {
  const textRange: PowerPoint.TextRange = context.presentation.getSelectedTextRange();
  textRange.font.color = "green";
  await context.sync();
});

Properties

context

The request context associated with the object. This connects the add-in's process to the Office host application's process.

font

Returns a ShapeFont object that represents the font attributes for the text range.

length

Gets or sets the length of the range that this TextRange represents. Throws an InvalidArgument exception when set with a negative value or if the value is greater than the length of the available text from the starting point.

paragraphFormat

Represents the paragraph format of the text range. See PowerPoint.ParagraphFormat for details.

start

Gets or sets zero-based index, relative to the parent text frame, for the starting position of the range that this TextRange represents. Throws an InvalidArgument exception when set with a negative value or if the value is greater than the length of the text.

text

Represents the plain text content of the text range.

Methods

getParentTextFrame()

Returns the parent PowerPoint.TextFrame object that holds this TextRange.

getSubstring(start, length)

Returns a TextRange object for the substring in the given range.

load(options)

Queues up a command to load the specified properties of the object. You must call context.sync() before reading the properties.

load(propertyNames)

Queues up a command to load the specified properties of the object. You must call context.sync() before reading the properties.

load(propertyNamesAndPaths)

Queues up a command to load the specified properties of the object. You must call context.sync() before reading the properties.

setSelected()

Selects this TextRange in the current view.

toJSON()

Overrides the JavaScript toJSON() method in order to provide more useful output when an API object is passed to JSON.stringify(). (JSON.stringify, in turn, calls the toJSON method of the object that's passed to it.) Whereas the original PowerPoint.TextRange object is an API object, the toJSON method returns a plain JavaScript object (typed as PowerPoint.Interfaces.TextRangeData) that contains shallow copies of any loaded child properties from the original object.

Property Details

context

The request context associated with the object. This connects the add-in's process to the Office host application's process.

context: RequestContext;

Property Value

font

Returns a ShapeFont object that represents the font attributes for the text range.

readonly font: PowerPoint.ShapeFont;

Property Value

Remarks

[ API set: PowerPointApi 1.4 ]

Examples

// Link to full sample: https://raw.githubusercontent.com/OfficeDev/office-js-snippets/prod/samples/powerpoint/text/get-set-textrange.yaml

// Sets the color of the selected text range to green.
await PowerPoint.run(async (context) => {
  const textRange: PowerPoint.TextRange = context.presentation.getSelectedTextRange();
  textRange.font.color = "green";
  await context.sync();
});

length

Gets or sets the length of the range that this TextRange represents. Throws an InvalidArgument exception when set with a negative value or if the value is greater than the length of the available text from the starting point.

length: number;

Property Value

number

Remarks

[ API set: PowerPointApi 1.5 ]

paragraphFormat

Represents the paragraph format of the text range. See PowerPoint.ParagraphFormat for details.

readonly paragraphFormat: PowerPoint.ParagraphFormat;

Property Value

Remarks

[ API set: PowerPointApi 1.4 ]

start

Gets or sets zero-based index, relative to the parent text frame, for the starting position of the range that this TextRange represents. Throws an InvalidArgument exception when set with a negative value or if the value is greater than the length of the text.

start: number;

Property Value

number

Remarks

[ API set: PowerPointApi 1.5 ]

text

Represents the plain text content of the text range.

text: string;

Property Value

string

Remarks

[ API set: PowerPointApi 1.4 ]

Method Details

getParentTextFrame()

Returns the parent PowerPoint.TextFrame object that holds this TextRange.

getParentTextFrame(): PowerPoint.TextFrame;

Returns

Remarks

[ API set: PowerPointApi 1.5 ]

getSubstring(start, length)

Returns a TextRange object for the substring in the given range.

getSubstring(start: number, length?: number): PowerPoint.TextRange;

Parameters

start

number

The zero-based index of the first character to get from the text range.

length

number

Optional. The number of characters to be returned in the new text range. If length is omitted, all the characters from start to the end of the text range's last paragraph will be returned.

Returns

Remarks

[ API set: PowerPointApi 1.4 ]

load(options)

Queues up a command to load the specified properties of the object. You must call context.sync() before reading the properties.

load(options?: PowerPoint.Interfaces.TextRangeLoadOptions): PowerPoint.TextRange;

Parameters

options
PowerPoint.Interfaces.TextRangeLoadOptions

Provides options for which properties of the object to load.

Returns

load(propertyNames)

Queues up a command to load the specified properties of the object. You must call context.sync() before reading the properties.

load(propertyNames?: string | string[]): PowerPoint.TextRange;

Parameters

propertyNames

string | string[]

A comma-delimited string or an array of strings that specify the properties to load.

Returns

load(propertyNamesAndPaths)

Queues up a command to load the specified properties of the object. You must call context.sync() before reading the properties.

load(propertyNamesAndPaths?: {
            select?: string;
            expand?: string;
        }): PowerPoint.TextRange;

Parameters

propertyNamesAndPaths

{ select?: string; expand?: string; }

propertyNamesAndPaths.select is a comma-delimited string that specifies the properties to load, and propertyNamesAndPaths.expand is a comma-delimited string that specifies the navigation properties to load.

Returns

setSelected()

Selects this TextRange in the current view.

setSelected(): void;

Returns

void

Remarks

[ API set: PowerPointApi 1.5 ]

Examples

// Link to full sample: https://raw.githubusercontent.com/OfficeDev/office-js-snippets/prod/samples/powerpoint/text/get-set-textrange.yaml

// Selects the first 10 characters of the selected shape.
await PowerPoint.run(async (context) => {
  const shapes: PowerPoint.ShapeScopedCollection = context.presentation.getSelectedShapes();
  const shapeCount = shapes.getCount();
  await context.sync();
  if (shapeCount.value !== 1) {
    console.warn("You must select only one shape with text in it.");
    return;
  }
  const shape: PowerPoint.Shape = shapes.getItemAt(0);
  const textFrame: PowerPoint.TextFrame = shape.textFrame.load("textRange,hasText");
  await context.sync();
  if (textFrame.hasText != true) {
    console.warn("You must select only one shape with text in it.");
    return;
  }
  const textRange: PowerPoint.TextRange = textFrame.textRange;
  textRange.load("text");
  await context.sync();
  if (textRange.text.length < 10) {
    console.warn("You must select only one shape with at least 10 characters in it.");
    return;
  }
  const textRange10 = textRange.getSubstring(0, 10);
  textRange10.setSelected();
  await context.sync();
});

...

// Sets the range selection to the range that was saved previously.
await PowerPoint.run(async (context) => {
  const slide1: PowerPoint.Slide = context.presentation.slides.getItem(savedTextSlideSelection[0]);
  const shape1: PowerPoint.Shape = slide1.shapes.getItem(savedTextShapeSelection[0]);
  const textRange: PowerPoint.TextRange = shape1.textFrame.textRange.getSubstring(savedTextTextRangeStart, savedTextTextRangeLength);
  textRange.setSelected();
  await context.sync();
});

toJSON()

Overrides the JavaScript toJSON() method in order to provide more useful output when an API object is passed to JSON.stringify(). (JSON.stringify, in turn, calls the toJSON method of the object that's passed to it.) Whereas the original PowerPoint.TextRange object is an API object, the toJSON method returns a plain JavaScript object (typed as PowerPoint.Interfaces.TextRangeData) that contains shallow copies of any loaded child properties from the original object.

toJSON(): PowerPoint.Interfaces.TextRangeData;

Returns