kintoneでルックアップを自動取得する3つの方法|JSコード付き解説
目次 [非表示]
この記事の結論(30秒で読める)
- kintone標準機能では「取得」ボタンを押さないとルックアップが反映されない。これを自動化するには JavaScriptカスタマイズ・有償プラグイン・代替製品の3択。
- JSカスタマイズは
record['フィールド'].lookup = trueをcreate.show / edit.showイベントで返すだけで実装できる。コスト0円・自由度最大だが、kintoneアップデート時の動作保証は自社責任。 - 有償プラグイン(M-SOLUTIONS製: 年額50,000円〜)は保守不要で導入が早い。代替製品(PigeonCloudなど)は月額1,100円〜で標準機能としてルックアップ自動取得を内蔵。
「kintoneでルックアップを自動取得するには、何から手をつければいいのか分からない」——そんな悩みを抱えている方は多いはずです。kintoneのルックアップは情報の重複入力を防ぎ、ミスを減らす便利な機能ですが、標準では毎回「取得」ボタンを押さなければ値が反映されません。
本記事では、kintoneでルックアップを自動取得する3つの方法を、実際にコピペで使えるJavaScriptコードや料金感、ハマりやすい落とし穴まで含めて、実装担当者の視点で解説します。手動取得の煩わしさから解放されたい方は、自社の体制と予算に合わせて選択肢を選んでください。
kintoneのルックアップ機能のおさらい
ルックアップとは、別アプリに登録済みのデータを参照して、自分のアプリのフィールドへ自動で値をコピーできる機能です。たとえば「顧客マスタ」アプリの会社情報を「商談管理」アプリ側で再入力せずに引っ張ってこれる、というイメージで使われます。
顧客コードを入れるだけで会社名・住所・担当者名がそのまま入る仕組みは、業務スピードを上げるだけでなく、入力ミスや表記揺れも減らせるため、kintoneを活用するうえで欠かせない機能と言えます。
標準機能のルックアップは「手動」が前提
気をつけたいのは、kintone標準のルックアップは キー値を入力したあと、ユーザーが毎回「取得」ボタンを押す前提になっている点です。誰かが押し忘れると参照先の値が反映されないため、現場では次のような事故が起きがちです。
| よくある現場のトラブル | 原因 |
|---|---|
| 取引先の住所が古いまま | マスタ更新後にレコードを開いても再取得されないため |
| 「会社名がコピーされていない」と怒られる | 取得ボタン押下を忘れてレコード保存されている |
| CSV一括取り込み後にデータがバラバラ | 一括取り込みではルックアップが走らずキー値のみ入る |
このような事故を未然に防ぐためには、ルックアップを「人が押す」工程から外して、システムが自動で実行する仕組みに変えるのが現実的です。
kintoneルックアップを自動取得する3つの方法
ルックアップ自動取得の実現手段は、ざっくり3パターンあります。それぞれ初期コスト・保守工数・自由度が大きく違うため、自社の体制に合わせて選んでください。
| 方法 | 初期コスト | 保守工数 | 向いている会社 |
|---|---|---|---|
| 1. JavaScriptで自前実装 | 0円 | 中〜高(自社負担) | エンジニアが社内にいる |
| 2. 有償プラグイン | 年額5万円〜 | 低(提供元が保守) | JSは触れないが予算はある |
| 3. 代替製品に乗り換え | 月額1,100円〜/人 | 低(標準機能として内蔵) | 他のkintone課題もまとめて解決したい |
以下、それぞれの実装手順とポイントを順に見ていきます。
方法1: JavaScriptカスタマイズで自動取得を実装する
kintoneにはJavaScriptカスタマイズ機能があり、レコードの作成・編集画面でイベントをフックしてルックアップを自動実行できます。コード自体は10行程度で書けるので、社内にJSが書ける人がいるなら最もコスパが良い方法です。
サンプルコード(コピペで動作)
下記は「顧客コード」フィールドにキー値が入っている状態でレコード画面を開いた際、ルックアップを自動でトリガーするサンプルです。kintoneアプリの「JavaScript / CSSでカスタマイズ」設定にこのファイルをアップロードするだけで動きます。
(() => {
'use strict';
const events = [
'app.record.create.show',
'app.record.edit.show',
'mobile.app.record.create.show',
'mobile.app.record.edit.show',
];
kintone.events.on(events, (event) => {
const record = event.record;
// 既にキー値が入っていればルックアップを自動実行
if (record['顧客コード'].value) {
record['顧客コード'].lookup = true;
}
return event; // ←必ず event を返す
});
})();
ポイントは record['顧客コード'].lookup = true をセットして event を return するだけ、という1点です。これだけでkintoneがルックアップ処理を内部的に走らせ、参照先のフィールド値が自動でコピーされます。
change イベントで自動取得したい場合の代替実装
「キー値を変更した瞬間にルックアップを再実行したい」というケースもよくありますが、ここで多くの方が躓きます。kintoneの仕様上、app.record.create.change イベントでは lookup = true が機能しません。代わりに、kintone REST APIでレコードを取得して値を直接代入する実装が必要です。
(() => {
'use strict';
const LOOKUP_APP_ID = 10; // 参照先アプリID
const events = [
'app.record.create.change.顧客コード',
'app.record.edit.change.顧客コード',
];
kintone.events.on(events, async (event) => {
const record = event.record;
const code = record['顧客コード'].value;
if (!code) return event;
const res = await kintone.api(
kintone.api.url('/k/v1/records.json', true),
'GET',
{ app: LOOKUP_APP_ID, query: `顧客コード = "${code}"` }
);
if (res.records.length > 0) {
record['会社名'].value = res.records[0]['会社名'].value;
record['住所'].value = res.records[0]['住所'].value;
}
return event;
});
})();
JSカスタマイズで詰まりやすい3つの落とし穴
実装担当者から相談が多いのは、だいたい次の3パターンです。先に潰しておくと後の手戻りが減ります。
- event を return し忘れる — 動かない原因の8割はこれ。
lookup = trueをセットしても、return eventが無いとkintoneが反映してくれません。 - change イベントで lookup プロパティを使う — 上述の通り非対応。REST APIで代替する設計に切り替える必要があります。
- キー値が空のまま lookup=true を立てる — エラーにはなりませんが、当然ながら何も取得されません。
if (record['顧客コード'].value)のような空チェックを必ず入れてください。
方法2: 有償プラグインで自動取得を導入する
「JavaScriptを書ける人が社内にいない」「アップデート対応の保守までは負担できない」というチームには、有償プラグインが選択肢になります。代表的なのがM-SOLUTIONS株式会社の「ルックアップ自動取得プラグイン」です。
| 項目 | 内容 |
|---|---|
| 提供元 | M-SOLUTIONS株式会社 |
| 料金 | 年額50,000円(税抜)/ 1ドメイン |
| 対応プラン | kintoneスタンダードコース必須(ライトコース不可) |
| アプリ数 | 1ドメイン内であれば無制限 |
| 公式サイト | smartat.jp/kintone-solution/lookup/ |
プラグインのメリットは 「導入したらほぼノータッチで運用できる」点に尽きます。kintoneのアップデートで内部DOMが変わったとしても、提供元が追従してくれるためチームのリソースを取られません。一方で、kintone本体(スタンダードコース:1,800円/人/月、最小10ユーザー)にプラスして年5万円の固定費が乗ることになるため、利用人数が少ない組織ではコスト感が見合わないこともあります。
JS自前 vs プラグインの判断基準
どちらにすべきか迷ったときは、次の質問を順に問いかけてみてください。
- 社内にkintoneを触れるエンジニアが1名以上いるか? — いない場合はプラグイン一択。
- ルックアップを使うアプリが3個以上に広がる予定か? — はいならプラグイン(無制限利用)が割安になる。
- kintoneアップデート対応に月1時間以上避けるか? — 避けないならプラグインが安全。
方法3: ルックアップ自動取得が標準搭載された代替製品を検討する
そもそもの話として、「ルックアップは自動取得が当たり前」として最初から標準搭載しているWebデータベース製品もあります。kintoneのプラグイン費用や自前JSの保守工数を考えたとき、製品ごと乗り換えた方が結果的に安く済むケースは少なくありません。
PigeonCloud(ピジョンクラウド)
株式会社ロフタルが提供するクラウド型のWebデータベースで、ルックアップは標準機能として自動取得に対応しています。kintoneのように「取得」ボタンを押す手間がなく、参照元のデータが変わった際の更新ロジックも組み込み済みです。
| 項目 | 内容 |
|---|---|
| 料金 | 月額5,500円〜(5ユーザーから・1ユーザーあたり1,100円) |
| ルックアップ自動取得 | 標準機能(プラグイン不要) |
| 他の標準機能 | 帳票出力、自動採番、コネクト機能(RPA連携)など |
| 移行サポート | kintoneからのデータ移行機能を標準搭載。アプリ選択→移行実行→完了の4ステップ |
| 無料サポート | 初期DB構築・電話/チャット相談を無料で提供 |
kintoneでルックアップ自動取得のために年5万円のプラグインを契約しようか迷っているなら、PigeonCloudへ乗り換えた場合の月額と比べて、合計コストを試算してみる価値があります。10ユーザー規模での試算は次のとおりです。
| 構成(10ユーザー想定) | 月額合計 | 内訳 |
|---|---|---|
| kintoneスタンダード + ルックアップ自動取得プラグイン | 22,166円 | 1,800円×10人 + 50,000円÷12ヶ月 |
| PigeonCloud(標準機能で自動取得) | 11,000円 | 1,100円×10人 |
| 差額 | -11,166円/月 | 約50%のコスト削減 |
もちろんkintoneを既存で運用しており、業務フロー全体が組み上がっている場合、乗り換えコストは決して小さくありません。それでもルックアップ自動取得のためだけに年5万円を払うか迷っているなら、製品ごと比較してから判断する方が、長期的なTCO(総保有コスト)の最適化につながります。
3つの方法の使い分け
ここまでの整理を踏まえて、状況別の推奨パターンをまとめました。
| あなたの状況 | 推奨アプローチ |
|---|---|
| 社内エンジニアがいる・kintone継続前提 | 方法1(JSカスタマイズ)。コスト0で柔軟。 |
| 非エンジニア部門・kintone継続前提・予算あり | 方法2(プラグイン)。保守不要で導入が早い。 |
| 他のkintone不満(料金・帳票・RPA連携)も合わせて解決したい | 方法3(PigeonCloud等への移行)。標準機能で完結。 |
| 小規模・1〜2フィールドだけ自動化したい | 方法1でサクッと10行JSを置く。 |
よくある質問(FAQ)
Q. app.record.create.change で lookup=true を指定しても動かないのはなぜ?
A. lookup プロパティは create.show / edit.show でしか機能しません。change イベントから自動取得したい場合は、kintone REST API(GET /k/v1/records.json)でレコードを取得し、フィールド値を直接代入する代替実装に切り替える必要があります(本記事の「方法1」中盤のコード参照)。
Q. ルックアップフィールドの「取得」ボタンを完全に隠したい
A. CSSで該当ボタンを display:none にする力技は可能ですが、kintoneのDOM構造はアップデートで変わるため、JSで自動取得+ボタン非表示のセットでは保守コストが想像以上に高くつきます。長期運用を見据えるならプラグインや代替製品の方が安全です。
Q. 自動取得が複数フィールドで競合してエラーになる
A. 連動するルックアップフィールドが複数ある設計では、一度に lookup=true を複数立てると、参照アプリの権限・APIレート上限超過で取得が中断することがあります。1フィールドずつ async/await で待機させながら順番にトリガーする実装に変えると安定します。
Q. 年額5万円のプラグインと自前JSのどちらがお得?
A. アプリ数1〜2、ルックアップフィールド数が少なく、自社にJSを触れる人がいるなら自前実装の方が初期コストはゼロです。ただしkintoneアップデートで動作不能になる可能性があり、保守工数を月1時間以上見込むなら、結果的にプラグインの方が安く済みます。
Q. CSV一括取り込みでもルックアップを動かしたい
A. CSV取り込みではJSが走らず、ルックアップも自動でトリガーされません。取り込み後にレコードを順次開くワーカー的なJSを書くか、kintone REST APIの一括更新エンドポイントで参照値を取得して書き戻す処理を別途組む必要があります。100件超のレコードを扱うときは公式の上限(1リクエスト100件)に注意してください。
まとめ
kintoneのルックアップを自動取得する3つの方法を、コード例・コスト・保守性の観点から比較しました。
- 方法1(JSカスタマイズ):
create.show / edit.showイベントでrecord['フィールド'].lookup = trueを返すだけ。コスト0だが保守は自社責任。 - 方法2(プラグイン): 年額5万円〜の固定費で保守不要。kintoneスタンダードコースが前提。
- 方法3(代替製品): PigeonCloudなど標準で自動取得を備えた製品に乗り換える。月額1,100円〜/人で帳票・RPA連携も込み。
JSが書ける現場ならまずは方法1で十分ですが、運用人数が増えてきたり、kintoneの料金そのものに違和感があるなら、方法3の代替製品を含めて棚卸しする価値があります。コストと保守工数の両面で、自社にとって一番ストレスの少ない選択をしてください。
本記事で紹介したPigeonCloudは 30日間の無料トライアル を提供しています。kintoneとの並行検証も可能なので、現状の不便さを一度比較してみてください。
関連記事
参考文献
- cybozu developer network「ルックアップの更新を自動で行う」(2026年5月確認)
- サイボウズ株式会社「kintone 料金プラン」(2026年5月確認)
- M-SOLUTIONS株式会社「ルックアップ自動取得プラグイン」(2026年5月確認)
データ管理、もっと簡単に。
Excel・Access・スプレッドシートの課題を、ノーコードのWebデータベース「PigeonCloud」が解決します。
月額5,500円〜(5ユーザー)、30日間無料でお試しいただけます。