GASで画像を自在に挿入!セルからドキュメントまで完全ガイド


GASを使ってセルに画像を挿入する
スプレッドシートのセルに画像を埋め込むには、GASを活用すると便利だ。
画像をセルに挿入する手順
まず、スプレッドシートの特定のセルに画像を挿入する方法を示そう。
function insertImageInCell() {
const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
const url = "https://example.com/image.jpg";
const blob = UrlFetchApp.fetch(url).getBlob();
sheet.insertImage(blob, 2, 2); // B2セルに挿入
}
これはURLから画像を取得してセルに挿入するコードだ。
SpreadsheetApp.getActiveSpreadsheet().getActiveSheet() でアクティブなスプレッドシートのシートを取得する。
画像のURLを指定し、UrlFetchApp.fetch() でその画像を取得する。
insertImage メソッドを用いて、指定したセルに画像を挿入する。


GASでドライブから画像を挿入する
Googleドライブに保存した画像をGASを用いて挿入する方法もある。
ドライブから画像を取得する手順
ドライブ内の画像を特定するには、ファイルIDを使うとよい。
function insertImageFromDrive() {
const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
const fileId = "your-file-id-here";
const file = DriveApp.getFileById(fileId);
const blob = file.getBlob();
sheet.insertImage(blob, 3, 3); // C3セルに挿入
}
DriveApp.getFileById() は特定のファイルをファイルIDで取得するメソッドだ。
取得したファイルからBlobを得て、insertImageを用いてスプレッドシートに挿入する。


GASでドキュメントに画像を挿入する
Googleドキュメントに画像を挿入するケースを考えてみよう。
ドキュメントに画像を挿入する手順
画像をドキュメントに追加するには、いくつかのステップがある。
function insertImageInDocument() {
const doc = DocumentApp.openById("your-document-id-here");
const body = doc.getBody();
const url = "https://example.com/image.jpg";
const blob = UrlFetchApp.fetch(url).getBlob();
body.appendImage(blob);
}
DocumentApp.openById() でGoogleドキュメントを開き、getBody() でドキュメントのボディを取得する。
取得したBlobを用いて、appendImageメソッドでボディ末尾に画像を追加する。


GASでHTMLに画像を挿入する
GASを使ってHTML出力に画像を取り込むこともできる。
HTMLに画像を挿入する手順
HTMLサービスを使って画像を埋め込むコードだ。
function showImageInHtml() {
const url = "https://example.com/image.jpg";
const html = "
";
const userInterface = HtmlService.createHtmlOutput(html);
SpreadsheetApp.getUi().showModelessDialog(userInterface, "Image Display");
}
HtmlService.createHtmlOutput() でHTML出力を作成する。
img タグを使いsrc属性に画像URLをセットすることで表示させる。
練習問題
- Googleドライブに保存された画像をスプレッドシートのA1セルに挿入するコードを書いてみよう。
- 既存のGoogleドキュメントに画像を指定したURLから挿入する方法を試してみよう。
解答・解説
function insertImageInSpreadsheet() {
const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
const fileId = "your-file-id-here"; // ファイルIDを正しく設定
const file = DriveApp.getFileById(fileId);
const blob = file.getBlob();
sheet.insertImage(blob, 1, 1); // A1セルに挿入
}
DriveApp.getFileById(fileId)でファイルを取得し、getBlob()を使ってその画像のBlobを取得する。
insertImageメソッドは指定したセルにBlobを挿入するために使用される。
function appendImageToDocument() {
const doc = DocumentApp.openById("your-document-id-here"); // ドキュメントIDを正しく設定
const body = doc.getBody();
const url = "https://example.com/image.jpg";
const blob = UrlFetchApp.fetch(url).getBlob();
body.appendImage(blob);
}
DocumentApp.openById(“your-document-id-here”)を使用して、ドキュメントを開く。
appendImageメソッドを使ってドキュメント内に画像を挿入する。