shikumika’s diary

日々の事務作業で手間なことを簡単にできる仕組み(自動化、方法など)、困ったことの解決方法を調べた備忘録

【kintone】ログインユーザー名を自動入力する方法(JavaScriptサンプル)

kintoneには標準で「作成者」フィールドや「更新者」フィールドが用意されており、誰がレコードを作成・更新したのかは自動的に記録されます。

一方で、アプリ開発や運用の中では、
別途「ユーザー選択」フィールドを用意し、ログインユーザーを初期値として設定する
というケースも少なくありません。

例えば、kintoneでは
登録済みレコードの「作成者」は後から変更できない仕様となっているため、
レコードごとに「作成者」を変更可能な形で管理したい、といった目的が挙げられます。

この点についての背景や考え方の詳細は、
以下の記事をご参照ください。
【kintone】登録済みレコードの「作成者」を変更できないので代替案 - shikumika’s diary

しかし実務では、次のような理由から
「ユーザー選択」フィールドではなく、あえて「文字列(1行)」フィールドを使いたい
という場面も多くあります。

  • ユーザー情報の値を計算式で利用したい
     ※標準の「作成者」「更新者」フィールドは計算式に利用可能なため、これらフィールドの情報が使えない時を想定
  • 標準の「ユーザー選択」フィールドでは
    入力フォームに選択候補などの付随情報が表示され、
    できるだけ画面をシンプルにしたい

そこで今回は、
これらの課題に対応するための方法として、
ログインユーザー名を自動入力するJavaScriptカスタマイズを紹介します。

内容

[:contents] 動作確認は、2026年4月時点のkintone(スタンダードコース)です。


標準機能でできること

kintoneの標準機能では、次のようなことが可能です。

  • 作成者」「更新者」フィールドにより、
    誰がレコードを作成・更新したかは自動的に記録される  なお、「作成者」「更新者」フィールドは計算式に利用も可能です
  • ユーザー選択」フィールドを利用することで、
    ログインユーザーを初期値として設定できる
    また、「ユーザー選択」フィールドのアクセス権を
    閲覧のみに設定すれば、ログインユーザー自身による変更を防ぐ運用も可能です。

アウトプットイメージ

「作成者名」などの文字列(1行)フィールドを用意しておくと、
レコードの新規作成・編集画面を開いた際に、ログイン中のユーザー名が自動入力されます。

※すでに値が入っている場合は上書きされません。

注意点

  • コースの制限
    kintoneのライトコースではJavaScriptカスタマイズを利用できません。
  • フィールドコードの指定が必須
    環境に合わせてフィールドコードを正しく設定してください。
  • 「空欄のときだけ」の仕様
    再編集時に、過去の担当者名が自分の名前に上書きされる事故を防ぐための仕様です。

設定手順

1.kintoneアプリの準備

自動入力したいアプリに文字列(1行)フィールドを追加し、
フィールドコードを 作成者名 に設定します。

2.JavaScriptファイルを登録

以下のコードをテキストエディタにコピーし、

  • 文字コード:UTF-8(BOMなし)
  • ファイル名:set_login_user.js

として保存、「JavaScript / CSSでカスタマイズ」の設定画面でアップロードしてください。 ファイル名は適当な名称で結構です。

(function() {
    'use strict';

    // PC版・モバイル版 共通イベント
    const events = [
        'app.record.create.show',
        'app.record.edit.show',
        'mobile.app.record.create.show',
        'mobile.app.record.edit.show'
    ];

    kintone.events.on(events, function(event) {
        const record = event.record;
        const user = kintone.getLoginUser();

        // ▼ 設定:自動入力したいフィールドコード
        const userNameField = '作成者名';

        // 空欄のときだけログインユーザー名を設定
        if (!record[userNameField].value) {
            record[userNameField].value = user.name;
        }

        return event;
    });
})();

設置時の画面イメージについては、以下を参考にしてください。

shikumika.org

以上、ログインユーザー名を自動入力する方法(JavaScriptサンプル)でした。