見出し画像

プログラミングのススメ

巷では「薬局DX」だとかヌカしていますが、電子処方箋開始に向けた流行りに乗ったビジネスも多いですので注意してください。我々在庫まみれ書類まみれな仕事をしている人間が、机の上に何一つないスマートな仕事をしている人にカッコイイと憧れるのもわかります。この記事を読んでそんな憧れが雲の上ではなく、実はもっと身近だと感じて下されば嬉しくと思います。職場が見た目雑多であっても、スマートな仕組みを自分で作れるようになるとカッコイイですよね。

アプリケーションやサービスに課金する理由は「ラクになるから」です。しかし課金が高額だと色々苦しくなりますね。自分が経営者でなくても上層から「カネかけたんやぞ(使いこなせ、効率上げろ)」と重圧が掛かります。

一店舗だけの薬局を経営する小さい組織(=私)にとってプログラミングは自分の少ない体力を補ってくれる最高のパートナーです。言い換えるとHPないのでMPで仕事してます。プログラミングの役割は「オーナーの指示で、間違えずに、繰り返し処理を、決まった時間に継続的に動いてくれる仕掛け」です。仕事で使うプログラミング言語はJavascriptベースのGoogle Apps Script(GAS)と、古典的と言われそうですがExcelに入っているVisual Basic for Appliction(VBA)です。これからはExcelよりGoogleスプレッドシートだと言われていますが、操作性やレスポンスが早いこと、印刷のしやすさ等の観点でまだまだExcelの方が使いやすいです。

例えばウチの薬局では、こんなところに自分のプログラムを仕掛けてあります。

  1. シフトを変更したら、自動でスタッフに変更点の内容と変更後のシフトのPDF(変更点のみ色付けられた)がLINEに送られる。

  2. 明日のシフトを出勤メンバに通知する

  3. 締め日の数日前に、出退勤エラーを本人と管理者(私)に通知する

  4. 社労士に勤務表を自動で送信してくれる(後日給与明細が来るので、勤怠管理のエラーさえしておけば給与情報がほぼ自動で届きます)

  5. レジ精算に必要な情報(クラウドレジの明細、PayPay決済等)をサイトから自動で取得し、レセコンデータと比較して相違点を見つける

  6. 新型コロナウイルス感染症の薬剤交付事業について、契約した配送員の配送実績を管理する(詳細はこちら

  7. 研修記録(研修の登録、参加者の記録等)ならびにPDFを発行する

自作するメリット

一般に仕事は外注するほうが賢いと言いますが、プログラミングにおいては、自分がイメージしている仕様を制作者に伝えるところから始めなければなりません。不満があったりバグがあった際に修正依頼をかけ、対応いただくまでにタイムラグが発生します。自分で作れると、仕様な脳内にあり単なるパズルゲームになる、作り直すのも自由、エラーの修正をするのも自由、お金はかからない、時間は食うけどどちらにせよ依頼するにしても時間を食う、しかも伝わらず悩んでしまう。な訳で小規模な開発は自分で作るべきです。

プログラミングせず仕事を外注するケース

当薬局では例えば給与計算は社労士に外注しています。これは私自身が法律や給与計算のルールを網羅できておらず、プログラムに反映できないためです。自分が精通していない専門分野は自作すると、新しい気づきがある毎に改変するため、バグの温床となり得ます。後片付けの方が大変です。

プログラミングに対する興味

そもそもなぜ私がプログラミングできるかと言うと、大学の頃に自分でゲームを作ることに憧れ、特にやりこみ系のRPG(ロールプレイングゲーム)のシステムを作りたくて勉強し始めたのがきっかけです。当時RPGツクールなどプログラミングせずとも自作のRPGを作ることは可能でしたがシステム面には制約が多く、自力で作るしか方法はありませんでした。当時とっつきやすかったプログラミング言語としてVisual Basic(今のExcelVBAの母体)から始め、その後はC言語、Java、PHP…色々。ゲームを作るに必要なC言語を特に勉強していました。RPGのシステム設計はとても難しく、最後まで完成することはありませんでしたが、人に自慢するレベルの内容までは進んだので、今思えば残しておいたらよかったと後悔しています。ドット絵も自分で描いていましたし。FF6レベルを目指していました(わからない人ごめん)。

大学も卒業して社会人になり、新卒では化学会社に勤めていたので工場の各計器の解析や、リスクマネジメントの集約/分類にExcelを多用していました。すでにプログラミング脳だった私は関数の覚えが早く、ただ限界がある事を知ります。職場でも「こんなことができたらいいのに」が多く、VBAは手の届かない処理をしてくれるので、私が使える事に非常に重宝された覚えがあります。初めて仕事と趣味がつながった瞬間でした。

GASは特に簡単

GASはJavaScriptという言語をベースにGoogleが提供しているサービスで、Gmailやスプレッドシート等と連携することができます。たとえば、あるスプレッドシートの任意のセル、例えばB5セルの値を抽出してメールで送りたい場合、下記の命令だけで済みます。

var a; //変数 a を宣言する

//変数aにスプレッドシートの値を代入する
a = SpreadsheetApp.openById(==任意のID==)
    .getSheetByName("sheei1").getRange("B5").getValue();

//メールで変数aの内容を送る
GmailApp.sendEmail("xxxxx@gmail.com", "題名", "セルの値は"+a+"です");

各スペルは長いですが、「スプレッドシートアプリの、任意のIDのファイルを呼び出して、sheet1シートの、B5セルの、値をgetして、変数aに代入」しているだけです。メールに至っては、任意のアドレス、題名、本文を( )に書くだけです。スペルは覚えなくても、頭数文字入れるとエディタが候補を挙げてくれるので選択するだけでOKです。

因みにGASの利用料は「タダ」です。そのうちサブスク化すると思いますが、月2万円と言われても課金すると思います。

プログラミングのメリット

作ったプログラムを「自分が使うか」「社員に使ってもらうか」によってメリットは変わってきます。
自分で使う場合は、「時短」と「単純作業に飽きない」「忘れず実行する」です。ずっと同じことをしているとイヤになるので、それを避ける目的があります。またGAS等はタイマーを設定して月1回や、毎日〇時台に実行、のような設定ができるので、私みたいに忘れっぽい人には最高です。

社員に使ってもらう場合は、「間違えない」「不必要な教育をしなくてよい」ことが挙げられます。レジ集計にExcelを使う場合、その操作方法について教育が必要ですが、全てプログラムで組んでしまうと「ここ押したら全部やってくれるから」で終了です。

最後に

本記事では特にプログラミングの詳細というより有用性について説明しました。少しでも興味を持って仕事の効率化を図っていただければと思います。

この記事が気に入ったらサポートをしてみませんか?