ADVERTISEMENT

【Googleドキュメント】Apps Scriptで画像を自動配置!URLからの一括挿入

【Googleドキュメント】Apps Scriptで画像を自動配置!URLからの一括挿入
🛡️ 超解決

Googleドキュメントに画像をたくさん挿入する作業は、とても手間がかかります。一枚一枚アップロードするのは時間の無駄です。しかし、Apps Scriptを使えばURLリストから画像を一括で自動挿入できます。この記事では、具体的なスクリプトの書き方と実行手順を詳しく解説します。

【要点】Apps Scriptで画像を自動配置する3ステップ

  • スクリプトエディタを開く: ドキュメントの「拡張機能」からApps Scriptを起動し、コードを記述します。
  • UrlFetchAppで画像を取得: 指定したURLから画像データを取得し、Blobに変換します。
  • Body.insertImageで挿入: 取得したBlobをドキュメントの任意の位置に挿入します。

ADVERTISEMENT

Apps Scriptが画像を自動挿入する仕組み

Apps ScriptはGoogle Workspace製品を自動化するためのスクリプトプラットフォームです。画像の一括挿入では、主にUrlFetchAppとDocumentAppという2つのクラスを使用します。UrlFetchAppで画像URLからデータを取得し、DocumentAppでその画像をドキュメントに挿入します。この仕組みにより、手動で行っていたコピー&ペーストの作業を完全に自動化できます。

前提として、画像はインターネット上で直接アクセスできるURLである必要があります。DropboxやGoogle Driveの共有リンクなど、認証が必要なURLには対応していません。また、画像のサイズや形式(JPEG、PNG、GIF)は自動で認識されます。1回のスクリプト実行で、複数の画像を連続して挿入できます。

URLリストから画像を一括挿入する手順

以下の手順で、URLリストを元に画像をドキュメントに自動配置します。スクリプトはGoogleドキュメントのスクリプトエディタで記述します。

  1. スクリプトエディタを開く
    Googleドキュメントを開き、メニューの「拡張機能」→「Apps Script」をクリックします。新しいタブでスクリプトエディタが開きます。
  2. スクリプトを記述する
    デフォルトのコードを削除し、以下のスクリプトを貼り付けます。
    function insertImagesFromUrls() {
      var doc = DocumentApp.getActiveDocument();
      var body = doc.getBody();
      var urls = [
        "https://example.com/image1.jpg",
        "https://example.com/image2.png"
      ];
      for (var i = 0; i < urls.length; i++) {
        var response = UrlFetchApp.fetch(urls[i]);
        var blob = response.getBlob();
        var image = body.insertImage(blob);
        body.appendParagraph(""); // 画像の後に改行を追加
      }
    }
  3. URLリストを編集する
    コード内のurls配列に、挿入したい画像のURLを追加します。URLはシングルクォーテーションまたはダブルクォーテーションで囲み、カンマで区切ります。
  4. スクリプトを保存して実行する
    Ctrl+Sで保存し、実行ボタン(▶)をクリックします。初回は権限の承認画面が表示されるので、「許可」をクリックします。スクリプトが実行され、画像がドキュメントに挿入されます。
  5. 画像の位置を調整する
    デフォルトでは文書の末尾に画像が追加されます。挿入位置を指定したい場合は、body.insertImage(offset, blob)のようにoffset(挿入位置のインデックス)を指定します。offsetは段落や表などの要素のインデックスです。例えば、最初の段落の後に挿入する場合はbody.insertImage(1, blob)とします。

注意点とよくあるトラブル

画像が表示されない

原因の多くはURLが間違っているか、画像にアクセスできないことです。URLが有効かどうかはブラウザで直接開いて確認してください。また、Google Driveの共有リンクなど認証が必要なURLは使用できません。画像は一般公開されているURLのみ対応しています。

権限エラーが発生する

スクリプトの初回実行時に権限承認を求められます。「許可」をクリックしないと実行できません。承認後も、Googleのセキュリティポリシーによって制限される場合があります。その場合は「安全ではないアプリ」としてブロックされることがあるので、Googleアカウントの設定を確認してください。

画像が大きすぎる

画像ファイルサイズが大きいと、UrlFetchAppのレスポンス制限に引っかかる場合があります。UrlFetchAppの最大サイズは約10MBです。大きな画像は事前に圧縮することをおすすめします。サイズを小さくするには、画像編集ツールでリサイズするか、Googleドライブにアップロードしてから縮小版のURLを生成します。

スクリプトの実行が遅い

画像の数が多いと、1枚ずつダウンロードするため時間がかかります。大量の画像を挿入する場合は、スクリプトのトリガーを設定してバックグラウンドで実行することも可能です。また、UrlFetchApp.fetchAll()を使うと並列ダウンロードができて高速になります。

ADVERTISEMENT

手動挿入とApps Scriptの違い

項目 手動挿入 Apps Script
操作時間 1枚ずつアップロード・配置 一括自動実行で数秒
画像の位置 ドラッグで自由に調整 コードで指定(カーソル位置などは不可)
URLの管理 手作業でコピー 配列で一括管理
エラー耐性 画像がないと気づきにくい エラーログで確認可能

手動挿入は直感的ですが、大量の画像には向いていません。Apps Scriptは少し難易度が高いものの、一度設定すれば繰り返し使えて効率的です。特に定期的に画像を差し替える業務には最適です。

まとめ

この記事では、Apps Scriptを使ってGoogleドキュメントに画像を自動配置する方法を解説しました。UrlFetchAppとDocumentAppを組み合わせることで、URLリストから複数の画像を一括挿入できます。まずはサンプルスクリプトを試し、自分のURLリストに置き換えてみましょう。さらに、スクリプトにタイムトリガーを設定すれば、定期的な画像更新も自動化できます。応用として、GoogleスプレッドシートのセルからURLを読み込むように改造することも可能です。


ADVERTISEMENT

📄
Googleドキュメントトラブル完全解決データベースこの記事以外にも、書式・共有・Apps Script・引用など様々な困りごとへの解決策をまとめています。逆引きに活用してください。
この記事の監修者
✍️

超解決 第一編集部

疑問解決ポータル「超解決」の編集チーム。正確な検証と、現場視点での伝わりやすい解説を心がけています。