【完全無料】名刺管理の決定版!最新AI(Gemini)で「画像保存して寝るだけ」の全自動システムを自作しよう
「名刺管理アプリ、便利だけど毎月の課金がなぁ…」
「机の上に名刺が山積み。でも入力するのは面倒くさい…」
そんな悩み、今日で終わりにしましょう。
実は、Googleが提供している無料ツールを組み合わせるだけで、有料アプリ顔負けの「最強の名刺管理システム」が自分で作れるんです。
- 完全無料(GoogleアカウントがあればOK)
- スマホで撮るだけで自動データ化
- 最新AIが「会社名」「氏名」を完璧に仕分け
- ファイル名も自動でリネームして整理整頓
- 5分ごとに自動巡回(エラー知らずの安定設計!)
「プログラミングなんて未経験」という方でも大丈夫。この記事の通りにコピペするだけで完成するように、最新の手順を超丁寧に解説します。
そもそも、何を使うの?(3つの魔法のツール)

今回は、Googleの3つの無料サービスを使います。
- Googleドライブ & スプレッドシート名刺の「画像」と「データ」を保存しておく「箱」と「台帳」です。
- Google Apps Script(ガス / GAS)今回の主役。箱に入った名刺画像を読み取って、台帳に書き写してくれる「自動ロボット」です。
- AppSheet(アップシート)台帳のデータを、スマホで見やすい「アプリ」に変身させてくれるツールです。
これらを組み合わせて、「写真を撮る(ドライブ)→ ロボットが整理(GAS)→ アプリで見る(AppSheet)」という最強の流れを作ります。
ステップ1:Googleドライブに「箱」を作る

まずは、名刺画像を保存するフォルダを作ります。
- Googleドライブを開きます。
- 「新規」→「新しいフォルダ」で、以下の2つのフォルダを作ってください。
01_未処理(これから読み取る名刺を入れる場所)02_保存済(読み終わった名刺が移動する場所)
- 【超重要】フォルダの「ID」をメモする
- 作った
01_未処理フォルダをダブルクリックして開きます。 - 画面上のURL(アドレスバー)を見てください。
drive.google.com/drive/folders/の後ろにある**「英数字の羅列」**がフォルダのIDです。- これをコピーして、メモ帳などに貼り付けておいてください。
- 同じように
02_保存済のIDもメモします。
- 作った
メモするもの:
- 未処理フォルダID:
1A-bcDeFgHiJkLmNoP...みたいな文字列- 保存済フォルダID:
2X-yz1234567890...みたいな文字列
ステップ2:スプレッドシートで「台帳」を作る
次に、データを書き込む表を作ります。
- Googleスプレッドシートを新規作成します。
- ファイル名を「名刺管理台帳」にします。
- 1行目(A1〜J1)に、以下の文字を正確に入力してください。(コピペ推奨)
| A | B | C | D | E | F | G | H | I | J |
| 会社名 | 氏名 | 役職 | 携帯電話番号 | 会社電話番号 | メール | 種類 | 画像リンク | 登録日 | キー |
これで台帳は完成です。
ステップ3:AIの「合鍵(APIキー)」を手に入れる
名刺の文字を読み取るために、Googleの最新AI「Gemini(ジェミニ)」を使います。これを使うための鍵(APIキー)を無料で発行します。
- Google AI Studio にアクセスします。
- Googleアカウントでログインし、「Get API key」というボタンをクリックします。
- 「Create API key」を押し、表示された長い文字列(キー)をコピーして、さっきのメモ帳に保存します。
ステップ4:自動化ロボット(GAS)を設置する
ここが最大の山場ですが、コピペと設定だけなので安心してください!
4-1. コードを貼り付ける
- スプレッドシートに戻り、メニューの「拡張機能」→「Apps Script」をクリックします。
- コードを書く画面が開くので、最初から書いてある文字を全て消して空っぽにします。
- 以下のコードを丸ごとコピーして貼り付けてください。
★ここが「完全版」のポイント!
- エラー回避: 最新AIの厳しい制限に引っかからないよう、「1回の実行につき1枚だけ」確実に処理します。
- 自動整理: 処理が終わった画像のファイル名を「会社名_氏名.jpg」に勝手に書き換えます。これでGoogleドライブの中身もスッキリ!
- 手動ボタン: 基本は全自動ですが、今すぐ試したい時用の「手動実行ボタン」もメニューに追加されます。
/**
* AI名刺管理システム(完全版:自動リネーム&手動ボタン付き)
* ・トリガーで「5分おき」に実行し、名刺を1枚ずつ着実に処理します。
* ・処理後のファイル名を「会社名_氏名」に自動変更し、ドライブ内を整理します。
*/
function ocrWithAI() {
/* ========= 設定エリア(ここを書き換える!) ========= */
const apiKey = "★ここにAPIキーを貼る★";
const folderIdUnprocessed = "★ここに01_未処理のIDを貼る★";
const folderIdProcessed = "★ここに02_保存済のIDを貼る★";
const sheetName = "シート1";
/* ================================================= */
const ss = SpreadsheetApp.getActiveSpreadsheet();
const sheet = ss.getSheetByName(sheetName);
const folderUnprocessed = DriveApp.getFolderById(folderIdUnprocessed);
const folderProcessed = DriveApp.getFolderById(folderIdProcessed);
// 1. 未処理ファイルがあるか確認
const files = folderUnprocessed.getFiles();
if (!files.hasNext()) {
console.log("未処理ファイルなし(正常終了)");
return; // ファイルがなければ何もしないで終了(0.1秒で終わります)
}
// 2. 1つだけファイルを取り出す
const file = files.next();
console.log("処理開始:" + file.getName());
try {
/* ===== ① OCR(画像から文字を読む) ===== */
const resource = {
name: file.getName(),
mimeType: "application/vnd.google-apps.document"
};
// Drive APIを使ってドキュメント作成
const tempDoc = Drive.Files.create(resource, file.getBlob());
Utilities.sleep(5000); // 変換待ち(5秒)
const doc = DocumentApp.openById(tempDoc.id);
const text = doc.getBody().getText();
Drive.Files.remove(tempDoc.id); // 一時ファイル削除
/* ===== ② AI(Gemini)で情報整理 ===== */
const prompt = `
以下は名刺のOCRテキストです。情報を抽出し、必ずJSONのみで返してください。
【条件】
・携帯電話と会社電話を区別すること
・不要な挨拶・記号は除外すること
・不明な項目は空文字にすること
{
"会社名": "", "氏名": "", "役職": "",
"携帯電話番号": "", "会社電話番号": "", "メールアドレス": ""
}
【テキスト】
${text}
`;
// 最新のGemini 2.5 Flashモデルを使用
const url = `https://generativelanguage.googleapis.com/v1/models/gemini-2.5-flash:generateContent?key=${apiKey}`;
const payload = { contents: [{ parts: [{ text: prompt }] }] };
const response = UrlFetchApp.fetch(url, {
method: "post",
contentType: "application/json",
payload: JSON.stringify(payload),
muteHttpExceptions: true // エラーでも止まらないようにする
});
if (response.getResponseCode() !== 200) {
console.log("Geminiエラー:" + response.getContentText());
return; // AIが混んでいたら今回は諦める(次回またトライします)
}
// AIの返事をきれいにする
let aiText = JSON.parse(response.getContentText()).candidates[0].content.parts[0].text;
aiText = aiText.replace(/```json/g, "").replace(/```/g, "").trim();
const result = JSON.parse(aiText);
/* ===== ③ 重複チェックと書き込み ===== */
const key = (result.会社名 || "不明") + "_" + (result.氏名 || "不明");
const data = sheet.getDataRange().getValues();
const isDuplicate = data.some(row => row[9] === key);
if (!isDuplicate) {
sheet.appendRow([
result.会社名 || "不明",
result.氏名 || "不明",
result.役職 || "",
result.携帯電話番号 || "",
result.会社電話番号 || "",
result.メールアドレス || "",
"未分類",
file.getUrl(),
new Date(),
key
]);
// ★超便利機能:ファイル名を「会社名_氏名」に書き換える
file.setName(key);
} else {
console.log("重複のため登録スキップ");
file.setName("【重複】" + key); // 重複していたら分かりやすく名前を変える
}
/* ===== ④ フォルダ移動 ===== */
file.moveTo(folderProcessed);
console.log("処理完了:" + file.getName());
} catch (e) {
console.log("エラー発生:" + e);
}
}
// スプレッドシートに「手動実行ボタン」を作る機能
function onOpen() {
SpreadsheetApp.getUi().createMenu('★名刺システム')
.addItem('今すぐ1枚読み込む', 'ocrWithAI')
.addToUi();
}4-2. 設定を書き換えて保存する
- コードの上の方にある
★ここに...の部分を、先ほどメモした「APIキー」と「2つのフォルダID」に書き換えてください。 - 左側のメニューにある「+(サービス)」をクリックします。
- リストから「Drive API」を探してクリックし、下の「追加」を押します。
- 画面上の「フロッピーアイコン(保存)」を押します。
4-3. 「5分おき」に自動巡回させる(トリガー設定)
ここが全自動化のキモです!
- GASの画面左端にある「時計のアイコン(トリガー)」をクリックします。
- 右下の「+ トリガーを追加」ボタンを押します。
- 設定画面が出るので、以下のように設定してください。
- 実行する関数:ocrWithAI
- イベントのソースを選択:時間主導型
- 時間ベースのタイマーのタイプ:分ベースのタイマー
- 時間の間隔:5 分おき
- 「保存」を押します。
これでロボットが「5分おきにフォルダを見に行き、名刺があれば1枚処理して帰る」という動きを24時間続けてくれます。
一度に大量に処理しないので、AIのエラー制限にも引っかからず、1時間で12枚、一晩で100枚以上の名刺を確実に処理できます。
ステップ5:スマホアプリ化(AppSheet)

最後に、このデータをスマホで使いやすくします。
- スプレッドシートのメニューから「拡張機能」→「AppSheet」→「アプリを作成」をクリック。
- これだけで、自動的にアプリが作られます!
使いやすくする設定
- プルダウンを作る: 左メニュー「Data」→「Columns」で「種類」を
Enumに変更し、Valuesに「顧客」「業者」などを追加。 - 編集可能にする: 左メニュー「Data」→「Tables」で「Updates」などに全てチェックを入れる。
- キーの設定(重要): 「Data」→「Columns」で、一番右にある「KEY」列で、「キー(J列)」の行だけに青いチェック**が入っている状態にする。
最後に右上の「Save」を押せば完成です!
【応用編】アプリを「リスト形式」にして一覧性をアップ!
デフォルトの見た目だと「1画面に3件」くらいしか表示されませんが、設定を少し変えるだけで、Excelのようにズラッとたくさん表示できるようになります。
- AppSheetの編集画面で、左メニューの「UX(スマホのアイコン)」をクリック。
- 「Views」タブの「名刺管理台帳」(View名)をクリック。
- View type を
DeckからTableに変更。- これでリスト形式になります!
- さらに、その下の Column order で「会社名」「氏名」「携帯電話番号」などを追加すると、見たい項目だけがスッキリ表示されます。
トラブルシューティング(困ったときは?)
Q. エラーが出たらどうする?
赤いエラーが出ても焦る必要はありません。
一番確実なのは、エラーの文章をコピーして、「Gemini(またはChatGPT)」にそのまま貼り付けることです。「このエラーはどういう意味?直して」と聞けば、優秀なAIがすぐに答えを教えてくれます。
Q. すぐに動かしたいときは?
スプレッドシートの画面を再読み込みすると、メニューに「★名刺システム」が出現します。
ここから「今すぐ1枚読み込む」を押せば、5分待たずに処理を実行できます。
まとめ
お疲れ様でした!
これで、「写真を撮って放り込んでおくだけ」の最強名刺管理システムが手に入りました。
- ドライブ: ファイル名が「会社名_氏名」になってスッキリ!
- スマホ: いつでも検索・電話・メールが可能!
- コスト: ずっと0円!
一度設定してしまえば、あとはロボットが毎日コツコツ働き続けてくれます。ぜひ、このアプリを活用して、ビジネスをもっと効率化してくださいね!
