13桁の手打ちは地獄!Power Appsのバーコードリーダーで入力ミスをゼロにする方法

13桁のJANコードを手打ちするのは地獄です。1桁でも間違えれば、まったく別の商品として登録されてしまいます。Power Appsにはバーコードリーダー機能が標準搭載されており、スマホのカメラでコードを読み取って自動入力できます。入力ミス防止の設計全体についてはPower Apps入力ミス防止ガイドでまとめているので、手入力をなくす設計の位置づけとして確認してください。

この記事では、バーコードスキャナーコントロールの基本的な使い方から、読み取った値をPatchで即座に登録するフロー設計まで解説します。

手入力をやめるのが最強の入力ミス防止策

バリデーションや視覚フィードバックは、ユーザーが誤った値を入力したあとに気づかせる仕組みです。それに対して、そもそも手入力させない設計はミスが起きる余地を根本から消します。

倉庫での在庫管理、店舗での商品登録、資産管理。バーコードやQRコードが印刷されているものを扱う現場では、スキャン入力を取り入れるだけで入力ミスがほぼゼロになります。私が社内で作った棚卸しアプリでも、バーコード入力に切り替えた後からミスの報告がなくなりました。

バーコードスキャナーコントロールの基本

Power Appsでバーコードを読み取るには、バーコードスキャナーコントロールを使います。挿入メニューから追加でき、スマホのカメラを自動的に起動してコードをスキャンします。

コントロールの追加手順

  1. Power Appsの編集画面で、挿入タブを開く
  2. メディアカテゴリからバーコードスキャナーを選択して追加する
  3. コントロール名を BarcodeScanner1 のように分かりやすい名前に変更する
  4. 必要に応じてサイズと配置を調整する

読み取った値はBarcodeScanner1.Valueで参照できます。スキャンが完了した瞬間に値が更新されるので、この値をラベルに表示したり、変数にセットしたりして利用します。

OnScanプロパティで読み取り後の処理を設定する

バーコードスキャナーコントロールには、OnScanというプロパティがあります。コードが読み取られた瞬間に実行されるアクションをここに書きます。

読み取った値を変数にセットする例です。

Set(varScannedCode, BarcodeScanner1.Value)

変数に格納しておくことで、スキャン後に画面の別の場所(テキスト入力のDefaultや、Patch関数の引数)からその値を参照できます。

スキャンしてそのままPatchで登録するフロー

最もシンプルな実装は、スキャンと同時にデータを登録してしまうパターンです。棚卸しや入庫確認のように、コードを読んだらその場で記録したい場面に向いています。

OnScanプロパティに直接Patch関数を書きます。

Patch(
    棚卸リスト,
    Defaults(棚卸リスト),
    {
        バーコード: BarcodeScanner1.Value,
        スキャン日時: Now(),
        スキャン者: User().FullName
    }
);

スキャンした瞬間にSharePointリストへ書き込まれます。スキャン日時にはNow()、スキャン者にはUser().FullNameを自動セットするので、誰がいつ読んだかも記録に残ります。

確認ステップを挟むパターン

スキャンしてすぐに登録するのではなく、一旦内容を確認してから保存したい場合は、OnScanで変数にセットし、別の保存ボタンで登録するフローにします。

// OnScan
Set(varScannedCode, BarcodeScanner1.Value);
Set(varShowConfirm, true)

// 保存ボタンのOnSelect
Patch(
    棚卸リスト,
    Defaults(棚卸リスト),
    {
        バーコード: varScannedCode,
        スキャン日時: Now(),
        スキャン者: User().FullName
    }
);
Set(varShowConfirm, false)

varShowConfirmをtrueにした瞬間に確認用のコンテナ(スキャン値を表示するパネル)が表示され、保存ボタンを押したら登録してパネルを閉じる、というUXになります。誤スキャンのやり直しも、保存前なら変数を書き換えるだけで対応できます。

対応コードの種類と注意点

Power Appsのバーコードスキャナーが対応しているコード形式は複数あります。主なものは次のとおりです。

コード形式用途の例
QRコードURLや文字列の埋め込み、社内帳票
コード128物流・在庫管理の国際標準
JANコード(EAN-13)小売商品のバーコード
コード39製造業・医療の部品管理

注意点として、暗い環境や印刷が薄いバーコードはスキャン精度が下がります。現場テストは必ず実機スマホで行い、実際の印刷物でスキャンできるかを確認してください。PCのプレビューではスキャン機能は動作しません。

また、スキャンした値はあくまで文字列として取得されます。数値として扱いたい場合はValue関数で変換が必要です。Patchで既存レコードを更新するパターンも合わせて確認しておくと、スキャンデータを既存マスターに紐付ける実装がスムーズになります。

まとめ

バーコードスキャナーコントロールをOnScanとPatchと組み合わせるだけで、手入力ゼロの登録フローが実現します。コードを読むだけで日時も担当者も自動記録されるので、ユーザーの負担が最小になり、ミスも入り込む余地がなくなります。

入力させないことが最強のバリデーションです。現場にバーコードやQRコードがあるなら、ぜひスキャン入力を取り入れてみてください。

Xでフォローしよう