なぜスライドの自動生成でエラーが多発するのか?
宇都宮市内でも、飲食店の新メニュー提案や、小売店の月次報告、建設業の安全資料など、日々たくさんのプレゼン資料(Googleスライド)を作る機会があるかと思います。
「毎回同じようなレイアウトだし、AIに頼んでGoogle Apps Script(GAS)を作ってもらい、ボタン一つでスライドを自動生成できるようにしよう!」
そう思い立ってチャレンジする方が増えています。しかし、いざAIが作ったプログラムを動かしてみると、「エラーが出て動かない」「スライドの文字や画像の位置がバラバラになって崩れてしまう」といったトラブルが非常によく起こります。
なぜ自動生成は失敗しやすいのでしょうか?理由はシンプルで、**「最初から見た目にこだわりすぎて、複雑なレイアウトや画像を盛り込みすぎているから」**です。
GASでスライドを操作するのは、ホームページのデザインを整えるよりも少しコツが必要です。最初は細かいデザインをすべて無視して、シンプルな構成から始めるのが成功への近道です。
解決の鍵は「文字だけの最小構成」から始めること
スライドの自動生成をスムーズに進めるための鉄則は、**「まずは文字だけで構成を通し、動くのを確認してからデザインを足す」**という2ステップを踏むことです。
最初からきれいなアイコンを並べたり、会社のロゴ画像を自動で挿入させようとすると、プログラムがどの位置に画像を置いていいか迷子になり、エラーの原因になります。
まずは、タイトルと箇条書きのテキストだけが正しくスライドに流し込めるかテストします。これが100%動くようになってから、文字の大きさを変えたり、枠線を追加したり、画像を挿入するプログラムを少しずつ付け足していきます。
このように段階を踏むことで、もしエラーが出たとしても「どこが原因で動かなくなったのか」がすぐに特定できるようになります。
実際にやってみよう!GASでスライドを作る基本手順とコード例
ここでは、宇都宮の架空の店舗をテーマに、「新店舗のプレゼン資料」を自動で作成するシンプルなプログラムを作ってみましょう。
まずは、Googleドライブで新規のGoogleスライドを作成し、メニューの「拡張機能」>「Apps Script」を開きます。そこに以下のコードを貼り付けてみてください。
1. 最小構成のプログラムコード
/**
* スライドを自動生成するシンプルなプログラム
*/
function createSimplePresentation() {
// スライドに入れるデータ(文字だけ)
const slideData = [
{
type: 'title',
title: "宇都宮餃子・新店舗展開プラン",
subtitle: "2026年度 新規出店計画のご提案\n株式会社宇都宮フード"
},
{
type: 'points',
title: "なぜ今、出店を強化するのか?",
points: [
"観光客の増加:週末の餃子通りは大盛況で、取りこぼしが発生している。",
"新しい顧客層:ファミリー層がゆったり過ごせる郊外型店舗のニーズが高い。",
"地元密着:宇都宮市民に愛される『普段使いの餃子店』を目指す。"
]
}
];
// 今開いているスライドを取得
const presentation = SlidesApp.getActivePresentation();
// すでにあるスライドを一度クリアする
presentation.getSlides().forEach(slide => slide.remove());
// データを元にスライドを1枚ずつ作成
slideData.forEach(data => {
let slide;
let titleShape, subtitleShape;
if (data.type === 'title') {
// 表紙スライドを作成
slide = presentation.appendSlide(SlidesApp.PredefinedLayout.TITLE_SLIDE);
titleShape = slide.getPlaceholder(SlidesApp.PlaceholderType.CENTERED_TITLE).asShape();
subtitleShape = slide.getPlaceholder(SlidesApp.PlaceholderType.SUBTITLE).asShape();
titleShape.getText().setText(data.title);
subtitleShape.getText().setText(data.subtitle);
} else if (data.type === 'points') {
// 箇条書きスライドを作成(タイトルのみレイアウトを使用)
slide = presentation.appendSlide(SlidesApp.PredefinedLayout.TITLE_ONLY);
titleShape = slide.getPlaceholder(SlidesApp.PlaceholderType.TITLE).asShape();
titleShape.getText().setText(data.title);
// 箇条書き用のテキストボックスを配置
const pageWidth = presentation.getPageWidth();
const left = 50;
const top = 150;
const width = pageWidth - 100;
const height = 300;
const textBox = slide.insertShape(SlidesApp.ShapeType.TEXT_BOX, left, top, width, height);
const textRange = textBox.getText();
// 改行でつないでテキストを設定
textRange.setText(data.points.join('\n\n'));
}
});
// 完了メッセージを表示
SlidesApp.getUi().alert('スライドの生成が完了しました!');
}
このプログラムを実行すると、すっきりしたデザインの「表紙」と「箇条書きスライド」が瞬時に作成されます。まずはこの状態をしっかりと動かすことが自動化の第一歩です。
よくあるエラーと対処法(「getParentPage」の落とし穴など)
プログラムを実行した際に、よく遭遇する代表的なエラーとその対策を紹介します。
エラー例1: 「… is not a function」と表示される
これは、使おうとした命令の名前が間違っているときに発生します。 たとえば、要素が配置されている親スライドを取得したい場合、以下のようなミスがよくあります。
- 間違い(エラーになる):
titleShape.getParentPageElement(); - 正しい記述:
titleShape.getParentPage();
AIにコードを書いてもらったとき、AIが少し古い命令や存在しない命令を適当に作ってしまうことがあります。エラーメッセージに「is not a function」と出たら、命令のスペルが正しいかGoogleの公式ヘルプなどで確認してみましょう。
エラー例2: テキストボックスの位置が重なってしまう
文字の長さが想定より長くなると、後から配置した図形と重なって文字が読めなくなることがあります。
対策として、最初は十分な余白(top や height の数値)を空けて配置するか、文字の大きさをプログラム側で自動で少し小さくする設定(setFontSize(16) など)を入れておくと安全です。
まとめ
Googleスライドの自動生成を成功させるコツは、何よりも「欲張らないこと」です。
- まずは「タイトル」と「文字」だけが正しくスライドに表示される最小限のプログラムを作る
- エラーなく動くことを確認する
- 文字の大きさ、色、背景などの装飾を1つずつ足していく
- 最後にロゴ画像やアイコンの挿入に挑戦する
このステップを意識するだけで、プログラム作成の難易度はグッと下がり、日々の資料作成にかかる時間を大幅にカットできるようになります。地元のビジネスでも、AIや自動化ツールを上手に取り入れて、もっとスマートに業務を効率化していきましょう!
MEO・SNS・AI活用について相談したい方は、お気軽にご連絡ください。