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ドキュメントのスクリプトエディタで記述します。
- スクリプトエディタを開く
Googleドキュメントを開き、メニューの「拡張機能」→「Apps Script」をクリックします。新しいタブでスクリプトエディタが開きます。 - スクリプトを記述する
デフォルトのコードを削除し、以下のスクリプトを貼り付けます。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(""); // 画像の後に改行を追加 } } - URLリストを編集する
コード内のurls配列に、挿入したい画像のURLを追加します。URLはシングルクォーテーションまたはダブルクォーテーションで囲み、カンマで区切ります。 - スクリプトを保存して実行する
Ctrl+Sで保存し、実行ボタン(▶)をクリックします。初回は権限の承認画面が表示されるので、「許可」をクリックします。スクリプトが実行され、画像がドキュメントに挿入されます。 - 画像の位置を調整する
デフォルトでは文書の末尾に画像が追加されます。挿入位置を指定したい場合は、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()を使うと並列ダウンロードができて高速になります。
手動挿入とApps Scriptの違い
| 項目 | 手動挿入 | Apps Script |
|---|---|---|
| 操作時間 | 1枚ずつアップロード・配置 | 一括自動実行で数秒 |
| 画像の位置 | ドラッグで自由に調整 | コードで指定(カーソル位置などは不可) |
| URLの管理 | 手作業でコピー | 配列で一括管理 |
| エラー耐性 | 画像がないと気づきにくい | エラーログで確認可能 |
手動挿入は直感的ですが、大量の画像には向いていません。Apps Scriptは少し難易度が高いものの、一度設定すれば繰り返し使えて効率的です。特に定期的に画像を差し替える業務には最適です。
まとめ
この記事では、Apps Scriptを使ってGoogleドキュメントに画像を自動配置する方法を解説しました。UrlFetchAppとDocumentAppを組み合わせることで、URLリストから複数の画像を一括挿入できます。まずはサンプルスクリプトを試し、自分のURLリストに置き換えてみましょう。さらに、スクリプトにタイムトリガーを設定すれば、定期的な画像更新も自動化できます。応用として、GoogleスプレッドシートのセルからURLを読み込むように改造することも可能です。
ADVERTISEMENT
超解決 第一編集部
疑問解決ポータル「超解決」の編集チーム。正確な検証と、現場視点での伝わりやすい解説を心がけています。
Google Driveの人気記事ランキング
- 【SharePoint】SharePointで「同期」ボタンが表示されない時の確認手順
- 【PDF】スマホからPCへPDFをケーブル無しで送る!クラウド(Googleドライブ/iCloud)同期の基本
- 【SharePoint】ドキュメントライブラリを開けない時のアクセス許可と保存場所チェック
- 【Googleスプレッドシート】テンプレートギャラリーを使い倒すコツ!業務別の活用例
- 【Googleスプレッドシート】Apps Scriptが動かない・実行されない時のチェックポイント
- 【Googleスプレッドシート】Googleフォームの回答エクスポート!CSVダウンロードの操作
- 【Googleドキュメント】WordファイルをDocs形式に変換!互換性と書式維持
- 【Googleアカウント】会社アカウントと個人アカウントを分けたい時の運用方法
- 【Googleドキュメント】AndroidからWordファイル開く!アプリ選択の指定
- 【OneDrive】OneDriveで同期済みなのにスマホから開けない時に見直す保存場所と同期設定
