kintone アプリでフィールドを隠すカスタマイズの落とし穴

公開日:

注意

本記事は情報提供を目的としており、本記事の内容は無保証、サポートの対象外です。
サポート窓口、問合せ窓口にご質問をいただいても対応いたしかねますのでご了承ください。

先週末(2025年8月23日の話)に、夏の甲子園で沖縄代表の沖縄尚学高校が優勝してテンション高い状態のシステム開発グループのよなしろ(沖縄生まれ、沖縄育ち、沖縄在住)です。

この勢いで弊社がトップオフィシャルパートナーになっている琉球ゴールデンキングスも新シーズンの開幕に向けて、勢いにのっていってほしいです。
GO GO KINGS!!!

kintoneアプリのカスタマイズの定番、「フィールドを隠す」

kintoneアプリのカスタマイズは、だいたいのことはgusuku Customineでカスタマイズしてしまって、特殊なところだけJavaScriptでコードを書く。っていうのがいい感じに開発できていて素敵だと思っています。
(※ 個人の感想です)

このあたりは下記リンクもあわせてご確認ください。
参考: カスタマインと他のプラグインやJavaScriptでのカスタマイズは共存できますか?

kintoneを使っていると、「フィールドを隠したい」と思うシーンはけっこうあります。

gusuku Customineのやること「フィールドやグループを非表示にする」を使用するとアクション1つで設定できますし、JavaScriptでも数行書けばすぐに実現できるので、基礎的なカスタマイズとして扱われることも多いです。

ただ、この「フィールドを隠す」というカスタマイズにはいくつかの落とし穴があります。
実際に運用してみて「あれ?おかしいな」と思った経験がある方もいるのではないでしょうか。今回はその代表的な問題と、現場でどう工夫すればよいかをまとめました。

なぜkintoneアプリでフィールドを隠したいのか?

まず前提として、なぜ「隠す」必要があるのでしょうか。考えられる理由はいくつかあります。

  • フィールド数が多すぎて見づらい
    アプリが育っていくと、フィールドがどんどん増えていきます。
    特にテーブル内に項目が多いと、横にスクロールしないと見られないくらい幅が広がってしまい、操作性が落ちます。
    そこで「普段使わない項目は隠したい」と考えて、フィールドを隠すカスタマイズを入れることが多いと思います。
  • アクセス権では制御できないが、見せたくない
    例えば「この部署の人には本当は見せたくないけど、アクセス権の仕組みでは細かく分けられない」といったケースがあります。
    見られて困るほどではないけど、なるべく隠しておきたい。そんなときに「非表示」にするカスタマイズを入れることが多いです。
  • 条件によってフィールドを出し分けたい
    たとえば「チェックボックスをオンにしたときだけ詳細フィールドが表示される」といった制御です。ユーザーにとって入力の流れが自然になるので、よく使われるパターンです。

このように、フィールドを隠すことはkintoneアプリの使い勝手を改善するのに有効です。
積極的に使うことは問題ありません。
ただし、いくつかの問題点があることを理解して実装をしたり、実装するかどうかを検討することをおすすめします。

kintoneアプリでフィールドを隠すことで起きる問題と工夫

計算フィールドの根拠が不明になる

ある計算フィールドが「隠したフィールド」を参照している場合、ユーザーはその計算根拠を確認できません。

例えば「合計金額」が出ているけれど、その内訳が非表示のままでは「どうやって計算されているのか」が見えなくなってしまいます。

こういうときは、管理者や特定ユーザーだけが必要に応じて参照できる仕組みを用意しておくと安心です。
普段は隠れていても、確認が必要になったらパッと表示できると、利用者の不安を減らせます。

gusuku Customineなら、特定のユーザーにだけ 隠したフィールドを表示するボタンを設置し、ボタンをクリックしたら フィールドを表示する。というカスタマイズを簡単に組むことができます。

セキュリティ的な効果はほぼ無いのに「隠す」ことで安心してしまう

「見せたくないから非表示にする」というのは要注意です。

カスタマイズで非表示にしているだけでは、JavaScriptの知識があれば簡単に値を取り出せてしまいます。

レコード詳細画面やレコード編集画面を表示しているときに、ブラウザの開発者ツールを開いて

kintone.app.record.get();

と入力すると、アクセス権で保護されていないフィールドについては、フィールド値を見ることが可能です。

つまり「見られないようにする」つもりで隠しても、実際にはフィールド値は見ようと思えば見ることは可能です。

また、kintoneの追加・編集・詳細画面を表示してから、プラグイン・カスタマイズが実行されるまでの間は隠す予定のフィールドが表示されています。

もし本当に見せたくない情報であれば、必ずアクセス権で制御する必要があります。
アクセス権を設定できない事情がある場合は、「隠しても見られる可能性がある」という前提でカスタマイズを行なうことが大事です。

(別のアプリに格納して関連レコードで必要に応じて見れるようにするなどで対応するなどの対応策があります)

表示すること・隠すこと が、思ったとおりに動かない

「出るべきフィールドが出ない」「隠すはずのフィールドが出てしまう」といった現象もよくあります。

こういう場合は、まず非表示を制御している仕組みを整理しましょう。
「どのプラグインで隠しているのか?」「JavaScript側でも制御していないか?」と一つずつ確認することで原因を突き止めやすくなります。

よくあるケースとしては、gusuku Customineで、フィールドの値を編集して値が変わった時にフィールドAの値が「A」のときはフィールドBを隠す。

という設定をして、フィールドAの編集をしてフィールド値がAではなくなったになったときに、フィールドBを表示する。っていう設定を忘れる。というようなケースは、あるあるな気がしています。

個人的には、追加・編集・詳細画面を表示したとき & フィールドの値を編集して値が変わった時 に、フィールドの値が指定の値だったら隠す・隠さない。みたいなカスタマイズを組むことが多いです。

カスタマイズ内容でいうと下図のような感じです。

(239で複数の条件をまとめて何もしない。ってやっているのは個人的なこだわりです。240・241のように複数のアクションの発動条件で「いずれかのアクションの実行が完了したとき」を指定すると、239のあとに追加のアクションを入れて240・241に繋ごうとしたときに、アクションの編集がちょっと手間になるためこのような組み方が好きです。)

まとめ

「フィールドを隠す」ためのカスタマイズは、実際の現場でもよく使われるカスタマイズです。

ただし、便利さの裏に「計算根拠が不明になる」「セキュリティを勘違いする」「表示の整合性が崩れる」といった落とし穴が潜んでいます。

大切なのは「隠す」ことを目的にしないことです。あくまでユーザーが使いやすいように調整する手段であって、セキュリティやロジックの補強には別の仕組みを組み合わせる必要があります。

みなさんがkintoneをカスタマイズする際にも、「隠せば終わり」ではなく、「どう見せるか」「どう守るか」を意識して設計してみてください。それだけでアプリの使いやすさや安心感が大きく変わるはずです。

この記事を書こうと思った背景

この記事を書こうと思った背景についてちょっとだけ書いておきます。

弊社のSI事業の「キミノマホロ for kintone」でkintoneのシステム開発の支援をしているお客さまから「計算結果フィールドの結果が意図していない結果になっている」という問い合わせを受けたことがきっかけです。

必要なものを、必要なだけ。
業務改善の新しいカタチ

kintoneを活用した業務改善・システム開発サービス

kintoneを活用した業務改善・システム開発サービス

テーブルに表示されている数値フィールドの合計が指定の計算フィールドに表示されていないといけないが、計算結果が一致していない! というものでした。

計算フィールドの設定された計算式を見ると、別のフィールドの合計値を表示するように設定されていました。その「別のフィールド」というのは、合計の算出前にデータの補正を行なうために特定の計算がされている計算フィールドでした。

そのお客さまも実は前任者から社内引き継ぎなしでkintoneおよびgusuku Customineの管理担当となったため、補正されていることも、なぜ補正が必要なのかもよくわかっていない。ということでした。

隠されたフィールドの値を元に計算をしていることを説明したのですが、こういうフィールドを隠したことに由来する困りごとって、結構あるんじゃないかな…と思い、この記事を書いています。

もっと余談ですが自分がカスタマイズする時や開発中は隠したフィールドを一時的に表示するような機能をつけたり、(僕の記事で定番になっている)bookmarkletを作って、押したら隠れているフィールドを出すようにしています。

投稿者プロフィール

アバター画像
よなしろ
沖縄で業務しています。オンプレ生まれ・クラウド育ち。