「なんか、思ったより職場のDXって進んでないな?」
- 掲示物はほぼ紙
- 情報共有は手書きのメモ
- 印刷物のレイアウトは毎回手作業で調整
- そもそもDXしようとしても、周りの人が「ちょっとそういうのわからないから…」とやんわり否定的
こんな職場環境、身に覚えがないだろうか?
隠すまでもないが、この記事を書いているあざらしの職場は、これらすべてが当てはまる。
ちなみに理由は単純。デジタルに慣れていない世代にとっては、紙が一番早くて確実だから。
DXを目指してこれまでいくつか制作をしてきたが、社員として管理しているパートさんの実に半分以上が60代という環境は、想像以上に課題だった。
スマホを見るのにまず眼鏡をはずして焦点を合わせるところから始めたり、そもそも電話としてしか使っていない年齢の方々がほとんどの職場で、DXをやりたいという方が無理があったのではないかと思うほどだ。
「なんかスマホでこの業務連絡確認できたらいいのにとかありますか?」
「そりゃまあ、シフトとか明日の計画とか色々見れたら便利だけど、それよりも紙で早くもらえる方が嬉しい」
……なるほど?
発想の逆転
そんなわけで今回は、思考の方向を変えるところから始めた。
紙ベースが浸透しているなら、紙ベースの体制をサポートするものを作ればいいのではなかろうか。
掲示物ひとつ取っても、印刷したときに読みやすいようにするのって、案外時間がかかる。
(特にうちの職場は、文字が小さいと読みづらいって言われるし……)
ということで、職場のDXを目指す記事の3回目は、
PowerAppsとExcelを使った印刷物の体裁整理の簡略化に挑戦した。
※前回までの記事はこちら
ローコードアプリ開発:PowerApps + Excel
全体像
今回の仕組みもとてもシンプル。
【PowerApps(入力フォーム)】
↓ データを書き込む
【Excel:データベースシート】
↓ XLOOKUP関数で転記
【Excel:印刷レイアウトシート】
↓
【A3で印刷して掲示】
使用ツール
- PowerApps
- Excel
作成手順
Excel①:準備
まずはExcelに「データ保存用」のシートと「レイアウト」のシートを準備する。
-
Sheet1: データ保存用

運用ルール案
・一度入力した内容は基本的に勝手に書き変えない
・また、自分以外の「発信者」が入力した行には基本的に触れない
・間違っていた場合も行の追加や削除は行わず、フォントオプションから取り消し線を引く(印刷レイアウト側には影響が出ない)
・誤字や修正があった場合には、オレンジ色の見出しの項目については書き変えても良い
デジタルが苦手な人は「勝手に触って変になったら悪いから」といって、せっかく作ったものも埃をかぶりがちだ。 -
Sheet2: レイアウト
今はまだ###と#N/Aしか入っていないが、ここにXLOOKUP関数を使って転記されていく。

PowerApps
作成した入力画面

上から「発信日(作成日)」「発信者」「タイトル」「連絡事項1」「連絡事項2」「連絡事項3」が並んでいる。
各項目を入力して「登録」ボタンを押すと、Excelのテーブルに自動入力される仕組みになっている。またこの時、後で呼び出しに使う「ID」が自動生成される。
各UIコンポーネントの役割
※それぞれの説明に、主要な機能に書き込んだコードも書いてあります。

- DatePicker1:発信日(カレンダー形式で選択可能)
DefaultToday
DefaultDate = Today()
-
TextInput1:発信者
-
TextInput2:タイトル
-
TextInput_連絡1〜3:連絡事項
HintText
Default = " "(空欄。文字が入力してあると一度消す必要があります)
HintText = "○○(表示したい文字列)"
- Button3:登録ボタン(Excel に書き込む処理を実行する)
・Patch で Excel に書き込み
・Notify で登録完了を表示
・Reset で入力欄をクリア
Patch
Patch(
テーブル1,
Defaults(テーブル1),
{
ID: CountRows(テーブル1) + 1,
発信日: DatePicker1.SelectedDate,
発信者: TextInput1.Text,
タイトル: TextInput2.Text,
連絡事項1: TextInput_連絡1.Text,
連絡事項2: TextInput_連絡2.Text,
連絡事項3: TextInput_連絡3.Text,
作成日時: Now()
}
);
Notify("登録しました", NotificationType.Success);
Reset(DatePicker1);
Reset(TextInput1);
Reset(TextInput2);
Reset(TextInput_連絡1);
Reset(TextInput_連絡2);
Reset(TextInput_連絡3);
- その他、位置を調整するのに使うプロパティ
・Height - 縦の長さ
・Width - 横の長さ
・X - 画面の左端からどれくらい右にずらすか
・Y - 画面の上端からどれくらい下にずらすか
Excel②:印刷

先ほど作成したアプリの登録ボタンを押すと、このようにテーブルに内容が登録された。
「文字列を折り返して全体表示」 を切っておくと、文章が干渉し合わず見やすくなる。

印刷レイアウトの方には、入力した内容が反映されている!
ここでは XLOOKUP関数 を使って、データ保存用シートから内容を引っ張ってきている。
左上に小さくいる「ID」によって、内容を管理できる仕組みも採用した。
XLOOKUP関数
例:発信日を参照しているセル
=XLOOKUP($B$1, テーブル1[ID], テーブル1[発信日])
XLOOKUPとは、指定した範囲から特定のデータを検索し、それに対応する値を取り出すための関数である。Excelに慣れていないと混同しがちだが、VLOOKUPとは機能が異なるので、注意してほしい。
(平たく言うとXLOOKUPの方が新しくて便利。ただし古いバージョンのExcelだとVLOOKUPを使っている場面も見られる)
動作の様子
上司からのフィードバック
さっそく、いつもお世話になっている上司のシロクマ主任からフィードバックをもらってきました。
- 入力欄がシンプルでわかりやすい
- 印刷文化の廃止ではなく、効率化の視点がいいと思う
- IDとタイトルがあるので後から管理しやすい
- 入力欄の高さが足りないから、アプリ側で入力してるときがちょっと見づらい
- エラー処理が弱い(必ずしも連絡事項が3つあるわけではないためスルーしていたが、タイトルや発信者を入力しなくても登録できる状態になっていた)
- 翻訳機能、切実に実装してほしい
概ね、良いところも伸びしろもあるねという評価をいただけた。
今回は実装していないが、今後改良していくにあたって、外部から翻訳APIの導入を第一の課題としていきたい。

