
こんにちは、GAS剤師です
2024年10月から長期収載品の選定療養制度が始まりました
- 新規採用した薬が選定療養の対象か毎回確認するのは大変
- スタッフや患者様に周知してもらうためにリストを作成したい
Google Apps Script (GAS) を用いれば自店舗の選定療養対象品目のリストを素早く比較することができます。

選定療養医薬品リストの取得


国が提示している対象の医薬品のリストをダウンロードします。
対象医薬品は以下の3つの条件を満たす医薬品です。
(1)後発医薬品のある先発医薬品(準先発品含む、バイオ医薬品は除く)
(2)組成及び剤形区分が同一であって、次のいずれかに該当する品目
① 後発医薬品の上市後5年以上が経過(後発品置換え率が1%未満のものを除く)
② 後発品の置換え率が50%以上のもの
(3)長期収載品の薬価が、後発医薬品の最高薬価を超えていること(組成、規格及び剤形ごとに判断)
選定療養医薬品リストは、厚生労働省の公式サイトに公開されております。
※2025年の最新版はこちら(厚生労働省のサイトに移行します)
GASではスプレッドシートを用いて比較するため、必要に応じてファイル形式を変更します。
自店舗の在庫リストの取得


自薬局の在庫データをダウンロードします。
次にレセプトコンピューター(レセコン)を使用して自店舗の在庫リストを取得する方法について解説します。
レセコンからの在庫リストの取得方法
- レセコンの在庫管理機能を活用する
レセコンにログインし、在庫管理のセクションに移動します。
必要な在庫リストの条件を設定します。
在庫している全医薬品を比較したい
・在庫一覧のデータ
特定の医療機関の医薬品を比較したい
・医療機関別の出庫在庫データ
特定の患者が使っている医薬品を比較したい
・患者別の出庫在庫データ

今回は在庫一覧のデータを出力してください
データ出力の形式の指定
在庫リストが表示されたら、そのデータを出力する形式を選択します。
一般的に、CSV形式やExcel形式での出力が可能です。
スプレッドシートで使用するためこちらも、必要に応じてファイル形式を変更します。
Google Apps Script (GAS) の基本と準備


ここまで準備できたら上記で出力したデータを比較するコードを実際に作成します。
GASの概要は以下のサイトで解説してますので是非参照してください。
GAS を使ったリストの比較方法


では実際に、GAS を用いたリストの比較方法について詳しく解説します
GAS の基本設定とスプレッドシートの連携
まず、Google Apps Script (GAS) を使用するための基本的な設定と、スプレッドシートとの連携方法は以下のサイトを参考にしてください。
在庫リストの読み込みとデータの取得
スプレッドシートから在庫リストを読み込み、データを取得する方法について解説します。
GAS を用いて、スプレッドシートの特定の範囲からデータを抽出し、スクリプトで使用可能な形式に変換します。
function getInventoryData(sheetName, range) {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Inventory");
var data = sheet.getRange("A1:B10").getValues();
return data;
}
上記のスクリプトでは、sheetName
に指定したシート名と range
に指定した範囲からデータを取得します。
在庫リストの比較
在庫リストを比較するには、まず取得したデータをループで処理し、特定の条件に基づいて一致するかどうかをチェックします。
以下は、2つの在庫リストを比較する基本的な方法です。
function compareInventories(list1, list2) {
var discrepancies = [];
// list1 の各アイテムをループ
for (var i = 0; i < list1.length; i++) {
var found = false;
// 商品IDが一致するかを確認し、list2 から検索
for (var j = 0; j < list2.length; j++) {
if (list1[i][0] === list2[j][0]) { // 商品IDを比較
found = true;
break; // 一致したら内側のループを終了
}
}
// 一致しなかった場合、不一致項目として記録
if (!found) {
discrepancies.push(list1[i]);
}
}
return discrepancies;
}
このスクリプトでは、list1
と list2
の在庫リストを比較し、list1
にのみ存在する項目(不一致項目)を discrepancies
配列に追加します。
在庫データの不一致をハイライトする方法
比較結果を視覚的にわかりやすくするために、スプレッドシート上で不一致の項目をハイライトする方法について説明します。
以下のスクリプトでは、比較結果に基づいて特定のセルを色付けします。
function highlightDiscrepancies(discrepancies, sheetName, range) {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(sheetName);
var dataRange = sheet.getRange(range);
var data = dataRange.getValues();
// データ範囲を1行ずつ処理
for (var rowIndex = 0; rowIndex < data.length; rowIndex++) {
var rowData = data[rowIndex][0];
// 不一致リストを1つずつチェック
for (var i = 0; i < discrepancies.length; i++) {
var discrepancyItem = discrepancies[i][0];
// 不一致が見つかった場合、その行を赤色で強調
if (rowData === discrepancyItem) {
dataRange.getCell(rowIndex + 1, 1).setBackground('red'); // 不一致項目を赤色に設定
}
}
}
}
このスクリプトでは、不一致項目がスプレッドシート上で赤色にハイライトされるように設定されています。
まとめ
GAS を活用することで、薬局の在庫管理が大幅に効率化されます。
GAS の基本設定から始め、在庫リストの取得、比較、不一致のハイライト、そしてレポート生成と通知の自動化まで、一連のプロセスを通じて、在庫管理業務を効果的にサポートします。
これにより、管理薬剤師の業務負担を軽減し、在庫の精度と効率性を向上させることが可能です。
GAS を使ったスプレッドシートの操作に慣れることで、より高度な在庫管理システムを構築し、薬局運営を一層円滑に進めることができるでしょう。