現代社会では、ビジネスミーティングでも学術的なプロジェクトでも、プレゼンテーションが重要な役割を担っています。以前の記事で、各スライドの図形をチャートに置き換えるマクロをご紹介しました。今日は、プレゼンテーションの各スライドのフォントファミリーとサイズを変更する新しいマクロをご紹介します。
マクロの構築
まず、Api.GetPresentation()メソッドでプレゼンテーションオブジェクトを取得し、変数oPresentationに代入します:
var oPresentation = Api.GetPresentation();
次に、slideIndex変数を使用して、プレゼンテーションの各スライドを繰り返し処理します。条件は、すべてのスライドが処理されるまでループが継続することを保証します:
for (var slideIndex = 0; slideIndex < oPresentation.GetSlidesCount(); slideIndex++) { }
ループの中で、oPresentation.GetSlideByIndex(slideIndex)メソッドを使って特定のスライドを取得し、変数oSlideに代入します:
var oSlide = oPresentation.GetSlideByIndex(slideIndex);
次に、現在のスライドoSlide上のすべての図形を取得し、aShapeという配列に格納します:
var aShape = oSlide.GetAllShapes();
別のループは、shapeIndex変数を使用して、現在のスライド上の各シェイプを繰り返し処理します:
for (var shapeIndex = 0; shapeIndex < aShape.length; shapeIndex++) { }
Shapeループの内部では、aShape[shapeIndex].GetDocContent()を使用して現在のShapeのドキュメントコンテンツを取得し、変数contentに格納します:
var content = aShape[shapeIndex].GetDocContent();
さらに処理を進める前に、コンテンツが有効かどうか(つまり、nullやundefinedでないかどうか)をチェックします:
if (content) { }
有効な場合は、content.GetElementsCount()を使用してコンテンツ内の要素数を取得し、count変数に格納します:
var count = content.GetElementsCount();
3番目のループは、elementIndex変数を使用してコンテンツ内の各要素を繰り返し処理します:
for (var elementIndex = 0; elementIndex < count; elementIndex++) { }
ループ内では、content.GetElement(elementIndex) を使用して現在の要素を取得します:
var element = content.GetElement(elementIndex);
エラーを避けるために、要素が有効かどうかをチェックします:
if (element) { }
要素が有効であれば、フォントサイズとフォントファミリーを設定します:
element.SetFontSize(10); element.SetFontFamily("Comic Sans");
マクロ全体は以下の通りになります:
(function() { oPresentation = Api.GetPresentation(); for (var slideIndex = 0; slideIndex < oPresentation.GetSlidesCount(); slideIndex++) { var oSlide = oPresentation.GetSlideByIndex(slideIndex); var aShape = oSlide.GetAllShapes(); for (var shapeIndex = 0; shapeIndex < aShape.length; shapeIndex++) { var content = aShape[shapeIndex].GetDocContent(); // Check if content is valid before proceeding if (content) { var count = content.GetElementsCount(); for (var elementIndex = 0; elementIndex < count; elementIndex++) { var element = content.GetElement(elementIndex); // Check if element is valid before using it if (element) { element.SetFontSize(10); element.SetFontFamily("Comic Sans"); } } } } } })();
マクロを実行し、どのように機能するか見てみましょう!
ONLYOFFICEマクロは、あなたの日常業務を効率化し、あなたの便利な武器となることを願っています。ONLYOFFICEのマクロは、あなたの生産性を高め、ワークフローを効率化します。 マクロを作成する際には、ONLYOFFICE APIが提供するチャンスをつかんでください。ONLYOFFICEマクロの柔軟性により、特定のニーズに合わせてマクロを微調整することができます。ご質問やクリエイティブなアイディアがありましたら、お気軽にご連絡ください。私たちは議論とコラボレーションのためにここにいます。あなたの説明の努力に幸あれ!