対象読者
- 急な英訳依頼に追われているビジネスパーソン・若手PMO
- DeepLへの1スライドずつのコピペ作業に限界を感じている方
- SharePointの標準翻訳やVBAを試したが、直訳っぽくて使えなかった方
- Google WorkspaceとMicrosoft 365を併用している環境で働いている方
なぜGoogleスライド × GASなのか?
従来の機械翻訳マクロと比べて、GoogleスライドにGASを組み込む方法が優れている理由は翻訳の文脈精度にあります。
- IT用語の独特なニュアンスが崩れにくい
- ビジネス特有の言い回しを維持しやすい
- 修正工数が大幅に削減できる
実際に使えるGASコード
設定手順
- Googleスライドのメニューから 「拡張機能」→「Apps Script」 を開く
- デフォルトで入っているコードを全削除
- 以下のスクリプトを貼り付けて保存
-
translateAllTextBoxesを実行
function translateAllTextBoxes() {
const slides = SlidesApp.getActivePresentation().getSlides();
for (const slide of slides) {
const shapes = slide.getShapes();
for (const shape of shapes) {
try {
if (shape.getText) {
const textRange = shape.getText();
const text = textRange.asString();
if (text && text.trim()) {
const translated = LanguageApp.translate(text, 'ja', 'en');
textRange.setText(translated);
}
}
} catch (e) {
Logger.log("テキスト翻訳エラー: " + e);
}
}
}
}
実行するとスライド内のテキストボックスが順番に英訳されていきます。
現場の落とし穴と回避策
落とし穴① 客先ドライブだと実行権限がない
スクリプト実行時に「承認が必要です」という警告が出て止まることがあります。クライアントの共有Googleドライブ内で作業している場合、セキュリティ権限の関係でブロックされるケースが多いです。
回避策:
- スライドファイルを自社のGoogleドライブにコピー
- 自社環境でスクリプトを実行し英訳を完了
- 完成したファイルを客先ドライブに戻す
落とし穴② 表(テーブル)の中身が翻訳されない
スクリプトが正常に動いても、表の中のテキストだけ日本語のまま残ることがあります。
GASでスライド要素を取得する際、通常のテキストボックス(Shape)と表(Table)はオブジェクトの扱いが異なるため、上記のシンプルなコードでは表の中身をスルーしてしまいます。
回避策:GASとパワポのハイブリッド手順
| ステップ | 作業内容 |
|---|---|
| ① | GASで翻訳済みのGoogleスライドを .pptx 形式でダウンロード |
| ② | ダウンロードしたファイルをSharePoint(またはTeams)に格納 |
| ③ | PowerPointで開き、残った表の文章を選択 |
| ④ | 「校閲」タブ →「翻訳」機能で個別に英訳を適用 |
「最初からパワポの翻訳機能だけでいいのでは?」
スライド全体のレイアウト維持と自然なビジネス英語への仕上がりという点では、Googleの翻訳エンジンがベースとして優秀です。自動化で8割を一瞬で終わらせ、残り2割を手堅い標準ツールで埋めるのが実務における最速の解です。
まとめ
GAS(Googleスライド)→ 全体の8割を一括英訳
↓
パワポ標準翻訳機能 → 表の中身など残り2割を個別対応
現場の制約(権限・ツールの限界)を理解した上で、今あるツールを組み合わせて最速で解決する。小さな効率化の積み重ねが、大きな変革への第一歩です。
この記事は社内ナレッジをもとに作成しました。