ONLYOFFICEプレゼンテーションで段落の最初の行のインデントを調整する方法
プレゼンテーションを作成する際には、一貫性と読みやすさが重要です。重要なフォーマット機能のひとつに、段落の最初の行のインデント調整があります。このブログ記事では、プレゼンテーション全体のすべての段落の最初の行のインデントを調整する ONLYOFFICE マクロの作成方法をご説明します。
マクロの構築
インデント値を設定
マクロは、各段落の最初の行のインデント量を定義することから始まります。
const indentationValue = 720;
/* 段落の最初の行のインデント値を入力してください。値が 0 の場合はインデントは適用されません。
0 より大きい値は、テキストをインデントします。値は 20 分の 1 ポイント(1/1440 インチ)で指定します。*/
indentationValue: この定数変数は、20分の1ポイント(1/1440インチ)単位で最初の行のインデントを定義し、デフォルトでは720に設定されています。これは半インチのインデントに相当します。値が0の場合はインデントは行われず、0より大きい値の場合はテキストがインデントされます。ユーザーは、好みに応じてインデントの値を調整できます。
プレゼンテーションとスライド数の取得
現在のプレゼンテーションを取得する前に、マクロがユーザーのインデント値が有効な非負の数値である場合にのみ実行されることを確認します:
if (!isNaN(indentationValue) && indentationValue >= 0) {
GetPresentation() メソッドを使用して現在のプレゼンテーションを取得し、GetSlidesCount() メソッドでスライドの総数を取得します。
let presentation = Api.GetPresentation();
let nSlides = presentation.GetSlidesCount(); // プレゼンテーションのスライド数を取得します。
各スライド、スライド内のテキストボックス、および段落をループする
// 各スライドをループします
for (let slideIndex = 0; slideIndex < nSlides; slideIndex++) {
let slide = presentation.GetSlideByIndex(slideIndex); // スライドを取得します
let aShapes = slide.GetAllShapes(); // スライド内のすべての形状を取得します
// スライド内の各図形をループします
for (let shapeIndex = 0; shapeIndex < aShapes.length; shapeIndex++) {
let content = aShapes[shapeIndex].GetDocContent(); // シェイプのドキュメントコンテンツを取得します
if (content) {
let count = content.GetElementsCount(); // 形状内の要素(段落)の数を取得します
// 図の形に、各段落をループします
for (let elementIndex = 0; elementIndex < count; elementIndex++) {
let paragraph = content.GetElement(elementIndex); // 段落要素を取得します
- GetSlideByIndex(slideIndex) は、プレゼンテーション内の指定したインデックス(位置)のスライドオブジェクトにアクセスします。
- GetAllShapes() は、現在のスライド内のすべての形状オブジェクトを取得します。このメソッドは、スライド上に存在するすべての形状(テキストボックス、画像、その他の要素など)のコレクションを返します。
- GetDocContent() は、特定の形状のドキュメントコンテンツを取得します。このメソッドは、形状に関連付けられたテキストコンテンツを返します。
- GetElementsCount() は、指定されたシェイプ内の要素(段落)の総数を取得します。
- GetElement(elementIndex) は、指定されたインデックス(elementIndex)に基づいて、シェイプ内の特定の要素(段落)にアクセスします。
このセクションでは、次のことを行います。
- プレゼンテーション内のすべてのスライドをループします。
- スライド内のすべてのシェイプ(テキストボックス) をループします。
- シェイプのテキストコンテンツを取得します。
- 形状にテキストコンテンツがあるかどうかを確認します。
- 形状内の各形状コンテンツ要素(段落)をループします。
- 段落要素を取得します。
段落の最初の行のインデントを調整します。
GetParaPr()を使用して段落のプロパティを取得し、SetIndFirstLine(indentationValue)を使用してインデントを調整することで、テキストボックス内の段落の最初の行のインデントを指定します。
let paraPr = paragraph.GetParaPr();
paraPr.SetIndFirstLine(indentationValue);
}
}
}
}
}
完全なマクロコード
マクロ全体は次のとおりです。
(function () {
const indentationValue = 720;
/* 段落の最初の行のインデント値を入力してください。値が 0 の場合はインデントは適用されません。 0 より大きい値は、テキストをインデントします。値は 20 分の 1 ポイント(1/1440 インチ)で指定します。*/
if (!isNaN(indentationValue) && indentationValue >= 0) {
let presentation = Api.GetPresentation();
let nSlides = presentation.GetSlidesCount(); // プレゼンテーションのスライド数を取得します。
// 各スライドをループします
for (let slideIndex = 0; slideIndex < nSlides; slideIndex++) {
let slide = presentation.GetSlideByIndex(slideIndex); // スライドを取得します
let aShapes = slide.GetAllShapes(); // スライド内のすべての形状を取得します
// スライド内の各図形をループします
for (let shapeIndex = 0; shapeIndex < aShapes.length; shapeIndex++) {
let content = aShapes[shapeIndex].GetDocContent(); // シェイプのドキュメントコンテンツを取得します
if (content) {
let count = content.GetElementsCount(); // 形状内の要素(段落)の数を取得します
// 図の形に、各段落をループします
for (let elementIndex = 0; elementIndex < count; elementIndex++) {
let paragraph = content.GetElement(elementIndex); // 段落要素を取得します
}
}
}
}
}
})();
マクロを実行して、どのように動作するか確認しましょう!
このマクロは、プレゼンテーション内のすべての段落の最初の行のインデントを調整するシンプルながら効果的なソリューションを提供し、時間を節約し、スライドの一貫性を確保します。このプロセスを自動化することで、コンテンツの作成に集中しながら、洗練されたプロフェッショナルなレイアウトを維持できます。
当社の ONLYOFFICE API メソッドを試し、独自のマクロを作成してワークフローをさらに効率化してください。ご意見やご提案がございましたら、お気軽に お問い合わせください。ご意見をお待ちしております!
About the author
ONLYOFFICEの無料アカウントを登録する
オンラインでドキュメント、スプレッドシート、スライド、フォーム、PDFファイルの閲覧、編集、共同作業