記事内に広告が含まれています。

【Excel VBA】薬局日誌、”書く”より”確認”が大変だった。Excelでデータベース化した話

休日・夜間診療所、ってご存じでしょうか。

ふだんの医療機関が閉まっている休日や夜間に、当番制で診療を行う医療機関のことです。登録している医師や看護師・薬剤師が、輪番で勤務にあたります。私もそのひとりで、当番はだいたい月に1回くらい。

当番の日には「薬局日誌」をつけます。その日にあったこと、明日以降の当番さんに伝えたいこと等を記録して、申し送る。大事な役割なのですが——これを、長いあいだ手書きでやっています。

この記事は、その手書きの日誌を「デジタル化したら、もっとラクになるかも」と思って、自分でExcel(VBA)で作ってみた話です。プログラミングは初心者。「現場のこの面倒、自分で何とかできないかな」と思って手を動かした記録です。

先に正直にお伝えしておくと、これは“こんなのがあったらいいな”で作った試作で、実際の現場にはまだ導入していません(導入を提案する立場ではなかったので)。それでも、需要があればいつでも提供できる完成度にはなったと思っています。

※VBA(ブイビーエー)=Excelに付いている、操作を自動化するための仕組みのことです。

スポンサーリンク

紙の日誌、何が大変だったか

紙の日誌はけっこうストレス、そして非効率です。

・めくらないと分からない。紙はページをめくっていかないと、過去の申し送り情報が把握できません。
・患者数(処方箋の枚数)が見えない。「今ってどれくらい忙しい時期?」が、ぱっと分からない。
・申し送りをどこまで遡るかが、人まかせ。必要な申し送りを得るのに、何ページ前まで戻るか。これが個人の判断にゆだねられていました。私は見落とすのが怖くて、毎回2週間分くらいはパラパラと遡って確認していました。
・「明日だけ」や「対応済」の申し送りも混ざる。申し送りには「明日の当番さんにだけ伝わればいいこと」もあれば、「すでに対応済」もある。申し送りのフォーマットがないので、期限が明確でないものが多い。
・見落とせないプレッシャー。「大事なことを見落としてはいけない」と思いながら、ひたすらページをめくる。これが地味に疲れる。

しかも当番は月に1回。久しぶりの出勤だと、近況がまるで分からない。「あの資材、どこに片づけてあるんだっけ…?」から始まることもしばしばでした。

作ったもの:デジタル薬局日誌でできること

そこで、こんなことができるものを作りました。

画像

・カレンダーで処方箋枚数が一目で分かる。メイン画面に月間カレンダーを表示して、日ごとの「日中/夜間」の処方箋枚数を載せま

した。流行時期に患者数が跳ね上がるのも、一覧でぱっと把握できます。年を変えれば去年の同じ時期とも比べられる。
・日誌は入力して、押すだけ。フォームに勤務区分・処方箋枚数・当番の先生・勤務した薬剤師・申し送り・トラブル報告を入力すると、保存され、決まった様式で印刷までできます。手書きをやめれば、誰が見ても読みやすい日誌になります。

画像

・同じ日誌の二重登録を防ぐ。「日付+勤務区分」が同じデータは登録できないようにしま

した(後で詳しく書きます)。
・期限が近い医薬品を自動で警告。使う頻度の低い在庫は、気づかないうちに期限切れになりがち。期限が近づくとメイン画面に出るようにしました。
・申し送りを「表示期限つき」で次の当番へ。「いつまで表示するか」を決めて入力すると、その期間だけメイン画面に出る。必要な申し送りだけが、ちゃんと残ります。

画像

・直近の感染症の動向も表示。スクレイピングで外部の感染症情報サイトからデータを取り込んで、いま何が流行っているかを画面で確認できるようにしました。

個人的に気に入っているのは、Excelで作ったからこそ「検索」も使えること。「あの申し送り、いつだったっけ?」と思っても、Excelの検索機能でさっと探せます。専用のシステムではなく、使い慣れたExcelの上に乗っているからこその強みだと思っています。

特に苦労したこと

きれいごと抜きで、一番大変だったところを。

「誰が触っても壊れない」ようにするのが、想像以上に大変でした。いろんな人が不定期に使う前提なので、操作ミスがあっても壊れない設計(フールプルーフ)にすることに苦心しました。初めて触る人でも迷わないように、というのを目指して。

画像

日誌が重複しないようにする工夫。同じ日の同じ勤務区分で、日誌を二重につけてしまったら困る。そこで「日付+勤務区分」を“ひとつだけの鍵”にして、すでに同じデータがあれば検索して見つけ、「上書きしますか?」と確認するようにしました。

上書きの処理が、地味に難物でした。上書きするなら、いったん入力中のフォームにデータを戻して、古いほうを消してから、新しい内容を保存し直す——という手順が必要で、ここの組み立てに頭を抱えました。

そして、今でも完璧じゃない部分。申し送りをメイン画面にうまく表示させるために、入力のときの注意事項がだんだん複雑になってしまいました。本当は入力のルールでもっとスマートにしたかったのですが、いい案が浮かばず…。ここは正直、今後の伸びしろです。

それでも、「こんなのあったらいいな」が自分の手で形になっていくのは、純粋に嬉しかったです。しかも作り込むほどに「あれもこれも」と欲しい機能が出てきて、それを自分でどんどん足していける。これが楽しくて、テンションが上がりっぱなしでした。

生成AIが生活の一部となりつつある今とは違い、当時はVBAの全部の動作を自分でコードに書かないといけませんでした。何度もテストしては直して…の繰り返し。でも、頑張って作ったぶん、思った通りに動いた瞬間の達成感はひとしおでした。

この作品で「無くしたかった」こと

実際に現場で回したわけではないので、「何分が何分になった」とは言えません。でも、自分の当番経験から「ここを無くしたい」と思って設計したポイントは、はっきりしています。

・過去の申し送り・履歴の確認:毎回、見落とさないように2週間分くらいの日誌をパラパラ遡っていた → 必要な申し送りが期限つきで画面に出れば、めくらなくても一目で済む
・過去の処方箋枚数の把握:日誌をめくらないと分からなかった → カレンダーに出ていれば一目でわかる
・期限切れの見逃し:気づかないと起きてしまう → 期限が近い在庫が自動で出れば、事前に気づける
・申し送りの伝わり方:口頭・紙だと漏れがち → 画面に残れば、次の当番にちゃんと届く
・オンラインで共有すれば、運営委員はリモートで日誌を閲覧できる

作ってみて思ったこと

実感したのは、ふだん何気なく使っている既存のシステムって、ものすごく考え抜かれて作られているんだなということ。自分で組んでみて初めて、その大変さとありがたみが分かりました。

そして単純に、プログラミングって面白い。作り込むほどに「ああしたい、こうしたい」が出てきて止まらなくなる。限られた時間での挑戦でしたが、やりたかったことはそれなりに形にできたかなと思っています。

もし同じように、現場の「面倒」を抱えている薬剤師の方がいたら、伝えたいことがあります。エンジニアじゃなくても、現場の不便は自分で形にできます。いきなり全部作ろうとせず、一番面倒な作業ひとつから始めるのがおすすめです。

おわりに

ひとつ、正直な話を。本文でも触れたとおり、これはほとんどAIの手を借りずに作ったものです。仕組みを理解した今なら、AIに相談しながら、もっとスマートに、もっとわかりやすく作れるだろうなということ。機会があったらブラッシュアップしてみたいです。

同じように日常業務で困っている薬剤師の方や、「うちの現場でも使えるかも」と思った方がいたら、気軽に声をかけてください。プロフィールから連絡できます。

―――

※本記事は個人の見解であり、特定の勤務先とは関係ありません。記事中の画面はすべて、実名・薬品名・地名などを含まないダミーデータで作成しています。