Googleドキュメントで、テキストとして記載された画像URLを実際の画像に置き換えたいと思ったことはありませんか。手動で1つずつ画像を挿入するのは時間がかかり、ミスも起こりやすい作業です。この記事では、Apps Scriptを使ってその作業を自動化する方法を解説します。スクリプトを実行するだけで、本文中のすべての写真URLを画像に変換できるようになります。
【要点】Apps ScriptでURLから画像への一括置換を実現
- replaceUrlWithImage 関数: 文書内の全URLを画像に置き換えるメイン関数で、正規表現とsetInlineImageメソッドを使用します。
- 正規表現 /https?:\/\/[^\s]+(jpg|jpeg|png|gif|webp)/gi: 画像URLのみを抽出するパターンで、拡張子で画像かどうかを判定します。
- getBlob() と setInlineImage(blob): URLの画像データを取得し、インライン画像として段落に挿入する一連の処理です。
ADVERTISEMENT
目次
URLから画像への一括変換が必要な理由とApps Scriptの利点
Googleドキュメントには、文書に画像を挿入する機能が標準で備わっています。しかし、テキストとしてURLが記載されている場合、それを一括で画像に変換する機能はありません。1つずつ手動で画像を挿入するのは、文書が長いほど非効率です。そこで活用したいのがApps Scriptです。Apps Scriptを使えば、文書内のすべての画像URLを自動的に検出し、実際の画像に置き換えるスクリプトを簡単に作成できます。このスクリプトはGoogleドキュメントのアドオンとして実行でき、手間と時間を大幅に削減します。また、スクリプトは再利用可能で、ほかの文書にも応用が効きます。さらに、画像の取得方法や挿入位置の調整など、細かなカスタマイズも可能です。
Apps Scriptで画像URLを一括置換する手順
ステップ1: スクリプトエディタを開く
- Googleドキュメントを開く
画像URLが記載された文書を開きます。 - 拡張機能メニューを開く
メニューバーから「拡張機能」→「Apps Script」を選択します。スクリプトエディタが新しいタブで開きます。
ステップ2: スクリプトコードを記述する
- コード.gsにコードを貼り付ける
エディタが開いたら、既存のコードをすべて削除し、以下のコードを貼り付けます。
function replaceUrlWithImage() {
var doc = DocumentApp.getActiveDocument();
var body = doc.getBody();
var paragraphs = body.getParagraphs();
for (var i = 0; i < paragraphs.length; i++) {
var para = paragraphs[i];
var text = para.getText();
var urlRegex = /https?:\/\/[^\s]+(jpg|jpeg|png|gif|webp)/gi;
var match;
while ((match = urlRegex.exec(text)) !== null) {
var url = match[0];
var blob;
try {
blob = UrlFetchApp.fetch(url).getBlob();
} catch(e) {
continue;
}
var image = para.setInlineImage(blob);
// 元のURLテキストを削除する
para.replaceText(url, '');
}
}
}
このコードは、文書内のすべての段落を走査し、画像URL(jpg, jpeg, png, gif, webp)を検出します。各URLに対して画像データを取得し、その段落にインライン画像として挿入した後、元のURLテキストを削除します。UrlFetchApp.fetchで外部URLにアクセスするため、初回実行時には権限の承認が必要です。また、画像が取得できないURLはエラーをキャッチしてスキップされるため、一部のリンクが壊れていても処理は続行します。
ステップ3: スクリプトを実行する
- 関数を選択する
スクリプトエディタのツールバーで「replaceUrlWithImage」関数を選択します。 - 実行ボタンをクリックする
「▶」実行ボタンを押します。初回は承認画面が表示されるので、自分のアカウントを選択し、権限を承認します。 - 完了を確認する
スクリプトが正常に完了すると、文書内の画像URLが実際の画像に置き換わっていることを確認できます。
スクリプト実行時の注意点と制限事項
画像URLが直接画像ファイルでない場合
このスクリプトは、URLの拡張子が画像形式であることを前提としています。WebページのURLなど画像直接でないURLには対応していません。その場合、エラーが発生するか、無視されます。対象のURLが画像ファイルへの直接リンクであることを確認してください。例えば、Googleフォトの共有リンクは直接の画像URLではないため、別途変換が必要です。
実行時間制限と回数制限
Apps Scriptには1回の実行あたりの最大実行時間(現在6分)と、1日あたりのURL取得回数制限があります。大量の画像URLがある場合は、複数回に分けてスクリプトを実行するか、一度に処理するURL数を制限する工夫が必要です。また、画像サイズが大きい場合は、取得に時間がかかるため注意してください。
画像が正しく表示されない場合
画像データの取得に失敗する場合があります。URLが無効であったり、アクセス権限がない場合はエラーとなります。また、画像サイズが大きすぎると、ドキュメントの表示が遅くなったり、容量制限に引っかかる可能性があります。必要に応じて画像を圧縮してからアップロードすることをおすすめします。さらに、取得した画像が期待と異なる形式で表示されることもあるため、事前にテストすることを推奨します。
元のURLテキストの扱いについて
スクリプトはURLテキストを空文字に置き換えますが、画像は段落の最後に挿入されます。元のURLが段落の途中にある場合、テキスト位置がずれる可能性があります。より精密に置換したい場合は、画像を特定の位置に挿入する処理を追加する必要があります。例えば、テキスト内のURL位置を取得し、その位置に画像を挿入するカスタマイズが考えられます。
ADVERTISEMENT
まとめ
この記事では、GoogleドキュメントのApps Scriptを使って、本文中の写真URLを一括で画像に置き換える方法を解説しました。replaceUrlWithImage関数を実行するだけで、手作業では時間のかかる置換処理を自動化できます。応用として、特定のURLパターンだけを対象にしたり、画像のサイズを調整する処理を追加することも可能です。また、同様のスクリプトをGoogleスプレッドシートの画像挿入にも応用できます。このスクリプトを基に、画像のサイズ制限や特定のURLのみを対象とするフィルタリングを追加することで、より実用的なツールに発展させられます。
ADVERTISEMENT
超解決 第一編集部
疑問解決ポータル「超解決」の編集チーム。正確な検証と、現場視点での伝わりやすい解説を心がけています。
SPONSORED
Googleドキュメントの人気記事ランキング
- 【Googleドキュメント】音声入力が認識されない時の対処!マイク権限の確認
- 【Googleドキュメント】上付き・下付き文字の入力方法!ショートカットと手動切替
- 【Googleドキュメント】ルビ(ふりがな)を振る方法!代替ツールとアドオンの活用
- 【Googleドキュメント】縦書き表示を実現する方法!代替ツールと回避策
- 【Googleドキュメント】表内の文字を縦中央揃えにする方法!セル内配置
- 【Googleドキュメント】文字間隔(字間)を調整する方法!カーニングの代替手段
- 【Googleドキュメント】インデントを正確に調整する方法!ルーラーとタブストップの使い方
- 【Googleドキュメント】PDFからDocsへ変換する方法!OCR取り込みと精度
- 【Googleドキュメント】Docs→Wordへエクスポート!docx出力での書式維持
- 【Googleドキュメント】図表番号の自動採番!Figure 1, Table 2 の連番
