セル内画像は表の行に対応する画像を管理するときに使います。
公開画像のURL一覧ならIMAGE関数、手元や非公開Driveの画像なら挿入メニューを選びます。
練習データ・スライド・PDF・コードTXTをダウンロードすると、同じ入力で試せます。
実務ファイルは変更前にコピーを作ります。
掲載画面と操作記録は、2026年10月2日のパソコンのブラウザー版によるものです。
2026年10月25日は公式仕様と配布ZIPを再確認し、Googleスプレッドシートの画面操作やGAS実行は行っていません。
IMAGEの4モードを同じ画像で比べる
空の練習シートを作り、ZIP内のimage-practice.tsvをテキストエディターで開きます。
ファイル内の画像URLだけをコピーし、練習シートのA2へ貼り付けます。
B2~E2は数式用に空けておきます。
B:E列の幅を180ピクセル、2行目の高さを100ピクセルに設定し、B2~E2へ順に次の式を入れます。
=IMAGE(A2,1)=IMAGE(A2,2)=IMAGE(A2,3)=IMAGE(A2,4,60,160)
| モード | 表示 |
|---|---|
| 1・省略時 | 縦横比を保ってセルに収める |
| 2 | 縦横比を変えてセルに合わせる |
| 3 | 原寸のまま。セルからはみ出す部分は切れる |
| 4 | 高さ・幅をピクセル指定。例は高さ60、幅160 |
画像に合わせてセルの幅や行高を自動変更するモードはありません。
モード1でも画像が小さければセルのサイズを確認します。
URLは引用符で囲むか、A2のようなセルを参照します。
初回の外部取得許可と表示されない場合
2026年10月2日の操作記録では、初回に#REF!となり、外部URLからデータを取得するアクセス許可の案内が出ました。
練習ファイルと画像URLを確認してアクセスを許可すると、4つの画像が表示されました。
当時は実画面でも確認しましたが、今回の更新時には画像表示を再検証していません。
エラーの理由を読み、アクセス許可、URLの誤り、認証が必要なページ、対応していない画像形式を切り分けます。
画像ファイルではなく、画像のあるWebページのURLを渡していないかも確認します。
非公開画像を一般公開に変えて解決しようとせず、メニューからの挿入を選びます。
IMAGEの公式仕様では、drive.google.comのURLとSVG形式は対象外です。
Driveの共有リンクをuc形式へ変換する旧手順は使いません。
NOWやRANDなど、値が変動する関数を画像のベースURLへ使う制限もあります。
メニューでセル内・セル上へ入れる
画像を入れるセルを選び、挿入 → 画像 → セル内に画像を挿入を開き、アップロードやGoogleドライブから選びます。
非公開のDrive画像は、アクセスできるアカウントで選びます。
画像を選んだら、ダイアログの「開く」または「選択」を押し、選んだセルに表示されたか確認します。
メニューからの挿入は50MB未満のPNG・JPEG・GIFが対象です(Google公式の画像挿入手順)。
セル内画像と文字列は同じセルへ置けないため、説明は別列へ入れます。
セル上の画像は表の上に浮くオブジェクトで、行の並べ替えと画像の対応を同じものとして扱いません。
セル上の画像をセル内へ移す場合は、配置先のセルを選んでから画像のその他メニューを開きます。
「選択したセルに画像を置く」を選び、画像の移動先を確認してください。
非公開Drive画像の一覧を作るGAS補助例
GAS(Google Apps Script)は、スプレッドシートなどの操作を自動化する仕組みです。
次の例は、指定フォルダー直下のPNG・JPEG・GIFを最大50件まで処理し、新しいシートのセル上へ挿入します。
子フォルダー内は対象外で、挿入に失敗した画像も50件の上限に数えます。
編集権限のある練習用スプレッドシートで、拡張機能 → Apps Scriptを開きます。
次のコードを貼り、FOLDER_IDをアクセス可能な練習フォルダーのIDへ変更してください。
フォルダーURLの/folders/より後にあるID部分を使い、URL全体は入れません。
出力シートの閲覧者には画像コピーが見えるため、元画像の共有設定と出力先の共有設定を別々に確認します。
function importDriveImagesToNewSheet() {
const FOLDER_ID = '対象フォルダID';
const MAX_IMAGES = 50;
const ss = SpreadsheetApp.getActiveSpreadsheet();
const files = DriveApp.getFolderById(FOLDER_ID).getFiles();
// 既存シートを消去せず、新しいシートを作ります。
const sheet = ss.insertSheet('画像一覧_' + Date.now());
sheet.getRange(1, 1, 1, 3).setValues([['ファイル名', '元ファイル', '画像(セル上)']]);
sheet.setColumnWidth(3, 160);
let count = 0;
while (files.hasNext() && count < MAX_IMAGES) {
const file = files.next();
if (!['image/png', 'image/jpeg', 'image/gif'].includes(file.getMimeType())) continue;
const row = ++count + 1;
sheet.getRange(row, 1).setValue("'" + file.getName());
sheet.getRange(row, 2).setValue(file.getUrl());
sheet.setRowHeight(row, 110);
try {
const blob = file.getBlob();
if (blob.getBytes().length > 2 * 1024 * 1024) throw new Error('2MBを超えています');
const image = sheet.insertImage(blob, 3, row);
const scale = Math.min(140 / image.getWidth(), 100 / image.getHeight(), 1);
image.setWidth(Math.max(1, Math.round(image.getWidth() * scale)));
image.setHeight(Math.max(1, Math.round(image.getHeight() * scale)));
image.setAltTextTitle(file.getName());
} catch (error) {
sheet.getRange(row, 3).setValue('挿入できません: ' + error.message);
}
}
}保存したら実行する関数にimportDriveImagesToNewSheetを選び、実行します。
初回はコードの処理と必要な権限を確認して認可してください。
シートに戻り、画像一覧_で始まる新しいタブのファイル名・元ファイル・画像を照合します。
スプレッドシートから開く手順は、Google公式のコンテナバインドスクリプトでも確認できます。
Blob(ファイルのバイナリデータ)による挿入は、公式仕様で2MB以内です。
画像挿入時のエラーはC列へ記録し、再実行では別シートを作ります。
フォルダーID・アクセス権・認可の問題で開始できない場合は、Apps Scriptの実行エラーを確認します。
画像が入らない場合は、対象形式・ファイル容量を確認し、画像のコピーを縮小して再度試してください。
このGASの実サービス画像挿入は未検証で、IMAGEの実画面確認をGASの動作確認とは扱っていません。
少数の架空画像で試してから使用してください。
戻し方
IMAGEの結果を消すときは、そのセルの式を外します。
元の画像ファイルは削除されません。
メニューで入れた画像は対象のセルや画像を確認して取り除きます。
GASの試験で追加したシートだけを整理する場合も、他の表を消さないよう名前と内容を確認してください。
公式の仕様と検証範囲
IMAGE関数で現在の仕様を確認できます。
練習データとコードの使い方
練習ZIPには3つのTSV、3スライドを含むPPTXが1つ、PDF、数式TXTとGASのJavaScriptファイルがあります。
この画像記事ではimage-practice.tsv、code-278.txt、article-278.jsを使います。
code-278.txtの先頭4つの数式はシートへ、GASだけを使う場合はarticle-278.jsをApps Scriptへ貼ります。
2026年10月25日に、配布されたGASと本文のコードが改行・空白を除いて一致することを確認しました。






