【2026年版】kintoneの条件分岐で項目を表示・非表示にする方法|必須の切り替えまで

2026年版 kintoneの条件分岐で項目を表示・非表示にする方法 必須の切り替えまで

本記事は、kintoneの構築・カスタマイズやプラグイン開発の実務経験を持つ筆者が、サイボウズ公式の開発者向けドキュメントで仕様を確かめながらまとめたものです。

問い合わせ管理のアプリで、区分に「個人」と「法人」があるとします。法人のときだけ会社名と部署名を入力してほしいのに、個人の問い合わせでも同じ欄が並んでいる。入力する人は「ここは空でいいのか」と毎回迷いますし、法人なのに会社名が空のレコードも混ざってきます。

この記事では、kintone(キントーン)で入力値によって項目を出し分ける方法を整理します。

  • kintoneの標準機能でできること・できないこと
  • 条件分岐を入れたくなる業務の例
  • 標準の範囲でしのぐ3つの工夫
  • JavaScriptで表示・非表示と必須を切り替える書き方(サンプルコード4本)
  • プラグインを使って設定だけで条件分岐を作る方法
  • 出し分けを入れるときの設計のコツと、よくある質問

方法は大きく3つあります。先に全体像を示しておきます。

kintoneで項目を条件で出し分ける3つの方法。1は標準の工夫で、グループ・ラベル・アプリ分割で迷いを減らすが入れ忘れは止められない。2はJavaScriptで、setFieldShownで表示を切り替える。自由だが書く人と保守が要る。3はプラグインで、条件と動作を選ぶだけで必須や選択肢の絞り込みまで設定できる

kintoneの標準機能では、項目の条件分岐はできない

まず結論から書くと、フォームの設定だけで「この値のときだけこの項目を出す」と決める機能は、kintoneにはありません。2026年11月時点でも同じです。

何もしないと、すべての項目が常に並ぶ

標準のフォームでは、置いた項目はいつも全部表示されます。下の画面は商談管理のアプリの例です。確度がまだ低い段階でも、受注予定日や売上の欄が同じように並んでいます。

kintoneの標準の編集画面。案件名・会社名のほか、確度・商談フェーズ・受注予定日・締切日・売上の欄が、入力の段階に関係なくすべて並んでいる

項目が10個程度なら気になりません。ところが区分ごとに必要な項目が増えていくと、画面は長くなり、どこまで入力すればよいのか分かりにくくなります。

「人で分ける」ことはできるが「値で分ける」ことはできない

似た名前の機能はいくつかあります。混同しやすいところを表にしておきます。

機能条件に使えるもの項目単位で出し分けられるか
フィールドのアクセス権ユーザー・組織・グループ人によって見せない・編集させないはできる。入力値では切り替わらない
レコードのアクセス権レコードの値(ステータスなど)レコード全体の閲覧・編集を制限する。項目ごとではない
プロセス管理の条件分岐レコードの値次の作業者や進む先のステータスを分ける機能で、項目の表示は変わらない
必須項目にするなし常に必須か、常に任意かの2択

整理すると、次の図のようになります。

kintoneの標準機能でできる出し分けとできない出し分けの対比。OKは人によって出し分けるもので、フィールドのアクセス権でユーザー・組織・グループごとに閲覧や編集を制限できる。NGは入力値によって出し分けるもので、区分が法人なら会社名を出すような設定はフォームの設定にない

「kintone 条件分岐」で調べると、プロセス管理の分岐の話もよく出てきます。承認経路を金額で分けたい場合は、kintoneプロセス管理の使い方で設定手順を解説しています。この記事で扱うのは、入力画面の項目そのものを出し分ける話です。

条件分岐を入れたくなる業務の例

どんな場面で出し分けが必要になるのかを、よくある例で見ておきましょう。自社のアプリに近いものがあれば、後半の方法を当てはめやすくなります。

アプリ条件出し分けたいこと
問い合わせ管理区分が「法人」会社名・部署名を表示して、会社名を必須にする
商談管理確度が100%受注予定日を必須にし、商談フェーズを「受注」にする
経費精算種別が「出張」出張先・宿泊費の欄を出し、交通費だけのときは隠す
稟議・申請金額が100万円以上見積書の添付欄と、決裁理由を必須にする
案件管理ステータスが「完了」完了日を必須にし、それ以外の欄は書き換えさせない

どの例も「表示する・隠す」だけでなく、必須にする、値を入れる、書き換えさせないといった動きがセットで欲しくなります。方法を選ぶときは、表示の切り替えだけで足りるのかを先に考えておくと迷いません。

標準の範囲でしのぐ3つの工夫

プラグインやJavaScriptを入れられない環境では、フォームの作り方で迷いを減らすのが現実的です。完全な出し分けにはなりませんが、効果はあります。

グループで「法人のみ」の項目をまとめる

条件付きの項目をグループフィールドに入れ、グループ名を「法人の場合のみ入力」とします。グループは開閉できるので、初期状態を閉じておけば、個人の問い合わせでは画面がすっきりします。

ただし、開け閉めするのは入力する人です。法人なのに開かずに保存されることは防げません。グループ名に条件を書いておくのが、この方法を活かすいちばんのコツです。

ラベルで入力の決まりを書いておく

項目の直前にラベルを置き、「区分が法人のときは会社名を必ず入力してください」と書いておく方法です。地味ですが、新しく入った人が迷う時間は確実に減ります。

ラベルが多すぎると読まれなくなるので、決まりは1か所に1文までにしておくのがおすすめです。

入力パターンごとにアプリを分ける

項目がまったく違うなら、アプリを分けるのも手です。もっとも、集計や一覧が別々になり、似たアプリの保守も増えます。区分の違いが数項目だけなら、分けるほどの理由にはなりにくいでしょう。

標準の工夫は「迷いにくくする」ところまでです。入れ忘れを止めたいなら、次のJavaScriptかプラグインが必要になります。

JavaScriptで表示・非表示と必須を切り替える

kintoneには、フィールドの表示を切り替える公式のAPIがあります。サイボウズの開発者向けサイトにも、設問の回答で項目を出し分けるサンプルが公開されています。

使うのはsetFieldShownと3種類のイベント

表示の切り替えは kintone.app.record.setFieldShown(フィールドコード, true/false) で行います。詳細・追加・編集・印刷の各画面で使えます。呼ぶタイミングと、必須のチェックを入れる場所は次のとおりです。

JavaScriptで条件分岐を作る流れ。画面を開くshowイベント、条件の値を変えるchangeイベント、setFieldShownで表示を切り替え、保存時のsubmitイベントで確かめる。表示の切り替えはshowとchange、必須のチェックはsubmitのイベントで書く

  1. 画面を開いたとき(app.record.create.show など):保存済みの値に合わせて出し分ける
  2. 条件の項目を変えたとき(app.record.create.change.フィールドコード など):入力中に切り替える
  3. 保存するとき(app.record.create.submit など):値を確かめ、空なら error にメッセージを入れて保存を止める

基本のサンプルコード

区分が「法人」のときだけ会社名・部署名を出し、会社名を必須にする例です。フィールドコードは、お使いのアプリに合わせて読み替えてください。

(() => {
  'use strict';

  const toggle = (record) => {
    const isCorp = record['区分'].value === '法人';
    kintone.app.record.setFieldShown('会社名', isCorp);
    kintone.app.record.setFieldShown('部署名', isCorp);
  };

  kintone.events.on([
    'app.record.create.show',
    'app.record.edit.show',
    'app.record.detail.show',
    'app.record.create.change.区分',
    'app.record.edit.change.区分'
  ], (event) => {
    toggle(event.record);
    return event;
  });

  kintone.events.on([
    'app.record.create.submit',
    'app.record.edit.submit'
  ], (event) => {
    const r = event.record;
    if (r['区分'].value === '法人' && !r['会社名'].value) {
      r['会社名'].error = '法人のときは会社名を入力してください';
    }
    return event;
  });
})();

項目が多いときは、1つずつ指定する代わりにグループごと隠すと楽です。setFieldShown にグループのフィールドコードを渡すと、中の項目がまとめて隠れます。

チェックボックスを条件にする

チェックボックスや複数選択の値は、文字列ではなく配列で入っています。=== で比べても一致しないので、includes で「その選択肢が含まれているか」を確かめます。

kintone.events.on([
  'app.record.create.show',
  'app.record.edit.show',
  'app.record.create.change.対応内容',
  'app.record.edit.change.対応内容'
], (event) => {
  const hasVisit = event.record['対応内容'].value.includes('訪問');
  kintone.app.record.setFieldShown('訪問先', hasVisit);
  return event;
});

隠したときに値を空にする

setFieldShown は見た目を切り替えるだけで、入力済みの値はそのまま保存されます。法人から個人に変えたら会社名も消したい場合は、change イベントで値を空にして event を返します。

kintone.events.on([
  'app.record.create.change.区分',
  'app.record.edit.change.区分'
], (event) => {
  const isCorp = event.record['区分'].value === '法人';
  kintone.app.record.setFieldShown('会社名', isCorp);
  if (!isCorp) {
    event.record['会社名'].value = '';
  }
  return event;
});

選び間違えて切り替えただけで値が消えるので、入力し直しの手間は増えます。消すか残すかは、業務に合わせて決めてください。

スマートフォンにも対応する

kintoneのモバイル画面は、PCとは別のAPIとイベントで動いています。PC用のコードだけでは、スマートフォンでは何も起きません。

kintone.events.on([
  'mobile.app.record.create.show',
  'mobile.app.record.edit.show',
  'mobile.app.record.detail.show',
  'mobile.app.record.create.change.区分',
  'mobile.app.record.edit.change.区分'
], (event) => {
  const isCorp = event.record['区分'].value === '法人';
  kintone.mobile.app.record.setFieldShown('会社名', isCorp);
  return event;
});

このコードは、アプリの設定の[JavaScript / CSSでカスタマイズ]で、スマートフォン用の欄に登録します。

自分で書くときにつまずきやすい5つの点

動かすだけなら短いコードで済みますが、業務で使い始めると次のような点で手が止まりがちです。

JavaScriptで条件分岐を書くときにつまずきやすい5つの点。1は隠した項目の値は残る。2は計算・文字列(複数行)・リッチエディター・リンクはchangeが起きない。3はラベル・罫線は要素IDが要る。4はモバイルは別に書く。5は標準の必須とは合わせない

  • 隠した項目の値は消えない:前の節のとおり、消したいなら値を空にする処理を書き足します。
  • 変更イベントが無い型がある:計算・文字列(複数行)・リッチエディター・リンクは、値を変えても change イベントが起きません。これらを条件にすると、入力中には切り替わらず、画面を開き直したときに反映されます。
  • ラベルや罫線は要素IDが必要:2026年2月のアップデートで、ラベル・罫線・スペースも setFieldShown で隠せるようになりました。対象にするには、フォームの設定で要素IDを付けておきます。なお、スマートフォンでは罫線の表示は切り替えられません。
  • モバイルは別のAPI:上のとおり、PC用とは別に書き足します。
  • 標準の必須とは組み合わせない:標準で「必須項目にする」を付けた項目は、条件で任意に戻せません。条件で出し分ける項目は、標準の必須を外し、保存時のチェックで必須にします。

条件が2〜3個のうちは十分に保守できます。ただ、条件が増えてくると、どの項目がどの値で出るのかをコードから読み解くのは大変です。担当者が替わったときに手を入れにくくなる点は、最初に考えておきたいところです。

プラグインなら、条件と動作を選ぶだけで作れる

コードを持ちたくない場合は、プラグインで同じことができます。ここでは、当社が無料で提供している条件分岐フォーム for kintoneを例に、どんな出し分けが作れるのかを画面で紹介します。

設定は「条件・動作・適用する画面」の3つ

ルールごとに、条件と動作、効かせる画面を選んでいきます。

条件分岐フォームの設定の流れ。条件を選ぶ(例:確度が100%)、動作を選ぶ(例:必須にする)、適用する画面を選ぶ、保存してアプリを更新。ルールを足すだけで、コードを書かずに条件分岐を増やせる

動作は、表示する・非表示にする・必須にする・読み取り専用にする・値をセットする・選択肢を絞り込む、から選べます。条件は最大20件まで、ANDとORで組み合わせられます。

条件分岐フォームの設定画面。条件をANDとORで複数指定でき、動作のプルダウンに表示する・非表示にする・必須にする・読み取り専用にする・値をセットする・選択肢を絞り込むの6種類が並んでいる

「表示する」を選んだ項目は、普段は自動で隠れ、条件を満たしたときだけ現れます。区分ごとのフォームを作るなら「表示する」、例外のときだけ隠すなら「非表示にする」と覚えておくと、ルールを組み立てやすくなります。

条件を満たしたときだけ必須にする

たとえば「確度が100%のときだけ受注予定日を必須にする」と設定すると、確度が80%の間は任意のままです。

条件分岐フォームを使ったkintoneの編集画面。確度が80%のとき、受注予定日のフィールド名の横に必須の印は付いていない

確度を100%に変えると、その場で受注予定日に赤い「必須」の印が付き、空のままでは保存できなくなります。

確度を100%にしたkintoneの編集画面。受注予定日のフィールド名の横に赤い「必須」の印が付き、条件を満たして必須になっている

条件によって選べる選択肢を絞り込む

ドロップダウンの選択肢も、条件で変えられます。確度が100%なら商談フェーズはすべて選べる状態です。

確度が100%のkintoneの編集画面。商談フェーズのドロップダウンに、商談予定・提案中・内示・受注・失注・保留・中止のすべての選択肢が表示されている

確度が80%のときは「商談予定・提案中・内示」だけに絞られます。まだ受注していないのに「受注」を選んでしまう、という入力ミスを防げます。

確度が80%のkintoneの編集画面。商談フェーズのドロップダウンが、商談予定・提案中・内示の3つだけに絞り込まれている

条件を満たした瞬間に値を入れる

「確度が100%になったら商談フェーズを受注にする」といった連動も、値をセットする動作で作れます。確度が80%の間、商談フェーズは空のままです。

確度が80%のkintoneの編集画面。商談フェーズは未設定のままで、値は入っていない

確度を100%に変えた瞬間に、商談フェーズへ「受注」が入ります。

確度を100%にした瞬間のkintoneの編集画面。商談フェーズに自動で「受注」が入っている

日付の欄には「今日」や「今日から7日後」も指定できます。固定の値のほか、同じアプリのほかの項目の値をコピーすることも可能です。

説明のラベルや罫線もいっしょに隠す

項目だけを隠すと、その説明として置いたラベルが取り残されがちです。条件分岐フォームでは、要素IDを付けたラベル・罫線・スペースも、入力欄と同じルールで出し分けられます。

条件分岐フォームの設定画面。動作に、次回アクション日・アクション担当者・アクション内容に加えて、説明のラベルを非表示にする行が並んでいる。ルールの見出しの右には複製ボタンがある

詳細画面だけでなく、印刷画面に効かせることもできます。社内向けのメモ欄を、印刷するときだけ隠すといった使い方です。

条件分岐フォームの設定画面。確度・次回アクション日・アクション担当者・アクション内容を非表示にする動作の行が4つ並び、適用する画面で詳細と印刷にチェックが入っている

人によって適用するかを変える

フィールドの条件に加えて、ユーザー・組織・グループでルールの対象を絞れます。「一般の利用者には隠し、システム管理者にはすべて見せる」といった使い分けも設定だけで済みます。

条件分岐フォームの設定画面の対象ユーザー・対象外ユーザーの欄。このルールを適用しないユーザー・組織・グループを指定するチェックが入り、ユーザー・組織・グループ(ロール)の選択欄が並んでいる

スマートフォンでも同じ設定で動く

設定はひとつで、PCとスマートフォンの両方に効きます。JavaScriptのようにモバイル用を書き足す必要はありません。

スマートフォンで開いた稟議申請アプリの2画面。左の編集画面では、条件により申請部署がグレーの読み取り専用になり、申請内容に赤い「必須」の印が付いている。右の詳細画面では、差し戻すを実行したときに差し戻し理由の入力画面が開いている

保存や承認そのものを条件で止める

フォームの出し分けとは別に、「実行時チェック」で保存・プロセスの実行・削除を条件で止められます。たとえば承認するときに、コメントの入力を求める画面を出せます。

経費申請アプリのレコード詳細画面で「承認する」を実行したときに、承認コメントを入力してくださいという説明と、承認コメントの入力欄を持つ画面が表示されている

JavaScriptで同じことをすると、プロセス管理のイベントと入力画面の作り込みが必要になります。「承認済みは削除させない」「利用日が空なら申請させない」といった歯止めを、コードなしで足せるのがプラグインの強みです。

出し分けを入れるときの設計のコツ

方法を問わず、出し分けを入れるときに押さえておきたい点があります。あとから「思っていた動きと違う」とならないための、実務での判断基準です。

条件に使う項目は、フォームの上の方に置く

区分や種別のように条件になる項目は、フォームの先頭近くに置きます。下の方にあると、入力する人は先に下の欄を埋めてしまい、あとから区分を選んだときに欄が消えたり増えたりして混乱します。

隠す項目は、なるべくひとまとまりにする

条件付きの項目がフォームのあちこちに散っていると、隠れたときに画面の並びが不自然になります。同じ条件で出し入れする項目は、グループにまとめるか、近くに並べておきましょう。

秘密の情報を守る目的には使わない

いちばん誤解が多いのがここです。非表示はあくまで見た目の切り替えで、値は保存され、CSVの書き出しやAPIでは読めます。

非表示とアクセス権の違い。OKは情報を守るならアクセス権で、閲覧できない人には値そのものを渡さないので給与や原価などに使う。NGは非表示は見た目だけで、隠した項目の値は保存され、CSVの書き出しやAPIでは読めるので秘密を守る用途には使わない

給与や原価のように見せてはいけない情報は、フィールドのアクセス権で守ってください。出し分けは「入力しやすくする」ための仕組みと割り切るのが安全です。

最初は少ないルールから始める

いきなり全部の項目に条件を付けると、どの項目がいつ出るのかを誰も把握できなくなります。入れ忘れが多い項目、迷いが多い項目から1つずつ足していくのがおすすめです。

ケース別の選び方

どの方法が合うかは、条件の数と、社内でコードを保守できるかでおおむね決まります。

状況向いている方法
出し分けたい項目が少なく、入れ忘れも大きな問題にならないグループ・ラベルの工夫
条件が2〜3個で、社内にJavaScriptを書ける人がいるJavaScript
条件が多い、またはあとから増えそうプラグイン
スマートフォンでも同じ動きにしたいプラグイン(JavaScriptならモバイル用の記述が別途必要)
必須・選択肢の絞り込み・値のセットもまとめて欲しいプラグイン
項目がまったく違う業務アプリを分ける

小さく始めたいなら標準の工夫から

まずはグループとラベルで整え、それでも入れ忘れが続くようなら仕組みで止める、という順番がおすすめです。困っていない段階で仕組みを入れると、かえって設定の把握が難しくなります。

他のカスタマイズと一緒に管理したいならJavaScript

すでに社内でJavaScriptのカスタマイズを運用していて、コードの管理の仕組みがあるなら、その中に足すのも合理的です。条件が少ないうちは、コードの方が動きを細かく決められます。

条件があとから増えそうならプラグイン

区分ごとの項目は、運用を始めてから「この場合も分けたい」と増えていくのがふつうです。設定画面でルールを足すだけで済む方法にしておくと、アプリの管理者が自分で直せます。

よくある質問

プロセス管理のステータスで項目を出し分けられますか?

標準の機能ではできません。JavaScriptなら、event.record['ステータス'].value でステータスを読み、ほかの条件と同じように setFieldShown で切り替えられます。条件分岐フォームでもステータスを条件にできます。ただし、どちらも画面を開いた時点のステータスで判定します。

テーブルの中の項目も隠せますか?

setFieldShown にテーブル内のフィールドコードを渡すと、その列がまとめて隠れます。テーブルのフィールドコードを渡せば、テーブル全体が隠れます。特定の行だけを隠す指定はありません。

ルックアップで取得した値を条件にできますか?

できます。JavaScriptでは、ルックアップのコピー先の項目の change イベントで受けると、取得した値が入った状態で判定できます。2026年8月からはルックアップ自身の change イベントも発生しますが、その時点ではコピー先にまだ値が入っていない点に注意が必要です。

隠した項目が必須だと、保存できなくなりませんか?

標準の「必須項目にする」と出し分けを組み合わせると、隠れた欄が原因で保存できない状況を招きかねません。条件で出し分ける項目には標準の必須を付けず、表示しているときだけ必須にする作りにします。条件分岐フォームでは、隠れた項目の必須は自動で外れます。

まとめ

  • kintoneの標準機能には、入力値で項目を表示・非表示にする設定はない
  • フィールドのアクセス権は人で切り替える機能で、値による出し分けには使えない
  • 標準の範囲では、グループ・ラベル・アプリの分割で迷いを減らすのが限界
  • JavaScriptなら setFieldShown と show・change・submit のイベントで作れる。チェックボックスは配列、モバイルは別のAPI、隠した値は残る点に注意
  • 条件が多い、モバイルでも使う、必須や選択肢の絞り込みもまとめて欲しいならプラグインが手早い
  • 非表示は見た目だけ。秘密の情報はフィールドのアクセス権で守る

項目の出し分けは、入力する人の迷いを減らし、データの抜けを防ぐのに効く改善です。まずは一番入れ忘れの多い項目から試してみてください。

kintoneのフォーム設計でお困りではありませんか?

条件分岐フォームは、表示・非表示、必須、読み取り専用、値のセットまで、すべて無料で使えます。

アプリの設計やカスタマイズのご相談は、お問い合わせからお気軽にご連絡ください。

関連記事・サービス

← ブログ一覧に戻る