apps script 使い方と医療業務の自動化・活用完全ガイド

Google Apps Script(GAS)の使い方を医療従事者向けに徹底解説。スプレッドシート連携からトリガー設定、シフト管理・報告書自動化まで、現場で今すぐ使える手順を紹介。あなたの職場で月何時間が無駄になっていますか?

apps script 使い方と医療業務への活用・完全ガイド

プログラミングができなくても、毎月20時間以上の事務作業が自動で消えます。


📋 この記事でわかること
🚀
GASの基本と始め方

Googleアカウントがあれば今日から無料で使えるApps Scriptの仕組みと、スクリプトエディタの起動から実行までの手順をわかりやすく解説します。

🏥
医療現場での具体的な活用事例

調剤薬局の定期報告自動化・シフト管理・患者情報の集計など、医療従事者がすぐに使える実践的なGAS活用例を紹介します。

⚠️
知らないと損する制限と注意点

1回6分の実行時間制限、1日90分の上限、トリガーの上限数など、運用前に必ず押さえておくべき制約事項を整理します。


apps script(GAS)とは何か・医療従事者が知っておくべき基礎知識

Google Apps Script(通称GAS)は、Googleが提供するクラウドベースのスクリプト環境です。JavaScriptをベースにしており、Googleスプレッドシート・Gmail・Googleカレンダー・Googleドライブなど、普段から使っているGoogleサービスを自動化・連携させることができます。


最大の特徴は「無料で使える」という点です。Googleアカウントさえあれば、特別なソフトのインストールも、サーバーの用意も一切不要で、ブラウザだけで開発・実行が完結します。これは医療機関のように独自システムの導入ハードルが高い現場にとって、非常に大きなメリットです。


医療従事者の中には「プログラミングは自分には無理」と感じている方も少なくないはずです。しかしGASは、JavaScriptの基礎さえ少し理解すれば、繰り返し作業や定型処理を驚くほどシンプルに自動化できます。たとえば、毎日手入力している報告書を自動生成したり、スタッフへのリマインドメールを決まった時間に自動送信したりといった処理が、数十行のコードで実現できます。


GASで連携できる主なツールは以下の通りです。


- Googleスプレッドシート:データ集計、転記、レポート自動生成
- Gmail:自動メール送信、受信メールの仕分け
- Googleカレンダー:予定登録、リマインド通知
- Googleドライブ:ファイルの自動整理・コピー・共有設定
- Googleフォーム:回答データの自動収集・整形
- Slack / Chatwork / LINE:外部ツールへの通知送信(API連携)


GASには「コンテナバインド型」と「スタンドアロン型」の2種類の開発方式があります。コンテナバインド型は特定のスプレッドシートやドキュメントに紐づくスクリプトで、初心者にはこちらがおすすめです。スタンドアロン型は特定ファイルに依存せず、複数サービスをまたいで動かせる上位互換的な方式です。まずはコンテナバインド型だけ覚えればOKです。


Google公式:Google Apps Script の概要(できること・連携サービス一覧)


apps script の使い方・スクリプトエディタ起動から初回実行まで

実際にApps Scriptを動かすまでの手順を、初めての方でも迷わないよう順番に解説します。難しい準備は何もありません。


ステップ1:スプレッドシートを開く


まずGoogleスプレッドシートを開きます。新規作成でも既存のシートでも構いません。自動化したい作業データが入ったシートを使うと、動作確認がしやすくなります。


ステップ2:スクリプトエディタを起動する


スプレッドシートの上部メニューから「拡張機能」→「Apps Script」をクリックします。すると新しいタブでスクリプトエディタが開き、そのシートに紐づいた専用のGASプロジェクトが自動作成されます。初期状態では `function myFunction(){}` という空の関数が表示されています。


ステップ3:プロジェクト名を変更する


エディタ左上の「無題のプロジェクト」をクリックして、わかりやすい名前に変更してください。「シフト管理\_自動通知」「報告書\_自動送信」のように「用途+対象」を組み合わせた命名がおすすめです。チーム運用の場合は「部署\_機能\_作成年月」のような統一ルールを決めると後の管理がスムーズになります。


ステップ4:コードを記述して保存する


試しに以下のコードを貼り付けてみましょう。スプレッドシートのA1セルに「Hello GAS!」と自動入力する最もシンプルなスクリプトです。


```javascript
function myFunction() {
const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('シート1');
sheet.getRange('A1').setValue('Hello GAS!');
}
```


記述が終わったら保存アイコン(Ctrl+S)をクリックします。保存しないと実行ボタンがアクティブにならないので注意してください。


ステップ5:実行して権限を承認する


エディタ上部の「▷ 実行」ボタンをクリックします。初回実行時はGoogleアカウントの認証画面が表示されます。これはGASがスプレッドシートなどのユーザーデータにアクセスするための必要な手続きです。「許可」をクリックして承認を完了させてください。


承認後、スクリプトが実行されてスプレッドシートのA1セルに「Hello GAS!」と入力されていれば成功です。


ステップ6:実行ログで結果を確認する


エディタ上部の「実行ログ」をクリックすると、処理の完了状況やエラー内容が確認できます。エラーが出た場合は、ログのメッセージをもとにコードを修正して再実行してください。エラーログには行番号が表示されるので、どこを直せばよいかがすぐわかります。


これが基本の起動から実行までの流れです。つまり「開く→書く→実行→確認」の4ステップが基本です。


apps script のトリガー設定で自動化を「完全放置」にする方法

GASの真価が発揮されるのは、スクリプトを手動実行するだけでなく「トリガー」を使って自動実行させる段階です。トリガーとは、「毎朝8時に実行」「スプレッドシートが編集されたら実行」といった条件を設定し、スクリプトを自動で動かす仕組みです。


これが使えると、医療現場でよくある「毎日同じ時間に行う定型作業」をまるごと自動化できます。


トリガーには大きく2種類あります。


| トリガーの種類 | 説明 | 医療現場での活用例 |
|---|---|---|
| ⏰ 時間主導型 | 1分〜月1回の間隔で定期実行 | 毎朝の日報メール送信、週1回のシフト集計 |
| 📝 イベント型 | ファイル編集・フォーム送信などをきっかけに実行 | 患者情報入力後に担当者へ自動通知 |


トリガーの設定手順


スクリプトエディタの左側メニューにある時計アイコン(「トリガー」)をクリックします。画面右下の「+ トリガーを追加」をクリックすると設定画面が開きます。「実行する関数の選択」で自動実行したい関数を選び、「トリガーのタイプを選択」で「時間主導型」を選択し、実行頻度を設定すれば完了です。


たとえば「毎日午前7時〜8時の間に実行する」設定であれば、朝の申し送り時間前に自動でメールが届く仕組みが作れます。これは使えそうです。


注意点として、トリガーによる自動実行には1ユーザーあたり1スクリプト20個という上限があります。また、1日の自動実行の合計時間には上限があり、無料のGmail(@gmail.com)アカウントでは1日90分まで、Google Workspaceアカウントでは1日6時間までです。大規模な処理を毎分実行するような運用を計画している場合は、この制限に注意が必要です。


医療現場でよく使われるトリガー設定の例を示します。


- 🌅 毎朝7時:前日の患者数や処置件数を集計してGmailで送信
- 📅 毎週月曜8時:週間シフト表をPDF化してスタッフのメールに一斉送信
- 🔔 フォーム送信時:スタッフのシフト希望が入力されたら即座に管理者へ通知


こうした設定を一度作ってしまえば、あとは完全に「放置」できます。トリガー設定が条件です。


Google公式:インストール可能なトリガーの種類・設定方法(開発者向けドキュメント)


apps script を使った医療現場の実践活用事例3選

ここからは、医療従事者が実際にGASを使って業務改善に成功している具体的な事例を紹介します。コードの全文ではなく「何をどう自動化したか」という視点でまとめています。


① 調剤薬局の定期報告書を自動アップロード


調剤薬局では毎週・毎月、本社や管理部門への報告書提出が発生します。従来は担当者がマイドライブのファイルを手動でコピーして共有ドライブに貼り付けていましたが、GASのトリガー機能を使うと、指定したフォルダのファイルを定期的に自動コピーする処理が実現できます。


主な処理の流れは「マイドライブ内の報告書フォルダを参照」→「共有ドライブの提出先フォルダにコピー」→「完了通知メールを送信」の3段階です。週1回・月1回のトリガーを設定すれば、担当者が何もしなくても提出が完了します。報告書アップロード忘れによるトラブルが0件になったという事例もあります。


② 看護師・スタッフのシフト希望集計を自動化


シフト管理は多くの医療現場で月に数時間を費やす煩雑な作業です。Googleフォームでスタッフの希望シフトを収集し、GASでスプレッドシートに自動集計・整形する仕組みを作ることで、集計作業そのものをゼロにすることができます。


さらに、フォーム送信をトリガーにして「希望が受け付けられました」という確認メールをスタッフに自動送信したり、「全員分の希望が揃いました」という通知を管理者に自動送信したりする処理も追加できます。スタッフ10名規模のクリニックでは、毎月約3時間かかっていたシフト集計が20分程度に短縮された事例があります。


③ 患者数・処置件数の日次レポートを自動送信


日々の外来患者数や処置件数をスプレッドシートで管理しているなら、GASで夜間に自動集計して翌朝に責任者へメール送信する仕組みが作れます。対象データの行数をカウントし、合計値を計算してGmailで送信するだけのシンプルなスクリプトでも、十分に実用的です。


これにより、朝の申し送り前に担当者が手動で集計する時間が不要になります。意外ですね。手入力の集計ミスも防げるため、データの信頼性向上にも直結します。


医療現場でGASを活用した病院DXの詳細な事例については、以下のリンクも参考になります。


note:病院業務は「GAS×スプレッドシート」で劇的に変わる!医療DXの実践事例まとめ


GASザイシ:【定期報告をGASで自動化】調剤薬局での効率化事例(コード付き解説)


apps script 使い方で知らないと失敗する制限・セキュリティの注意点

GASは非常に便利なツールですが、使い始める前に知っておくべき「制限」と「セキュリティ上の注意点」があります。これを知らずに運用を始めると、ある日突然スクリプトが止まったり、情報漏洩リスクが生じたりする可能性があります。


制限①:1回の実行時間は最大6分まで


GASのスクリプトは、1回の実行で最大6分しか動き続けられません。6分を超えると強制終了(タイムアウトエラー)になります。Google Workspaceの有料アカウントでも30分が上限です。大量のデータ処理や外部API呼び出しを繰り返す処理では、この制限に当たることがあります。6分に注意が必要です。


対策としては「処理を分割してトリガーで継続実行する」「1回の処理データ量を減らす」「実行時間を計測しながら途中で自動保存する」といった方法があります。日常的な医療現場の自動化であれば、多くのケースで6分以内に収まります。


制限②:1日の自動実行時間は無料アカウントで90分まで


時間主導トリガーで自動実行できる合計時間は、無料(@gmail.com)アカウントで1日90分、Google Workspaceアカウントで1日6時間という上限があります。毎分実行するような処理を大量に組むと、この制限に到達します。


通常のシフト通知や週次レポートであれば問題ありません。毎分実行が必要なリアルタイム処理には向いていないということです。


制限③:トリガーの上限は1スクリプトにつき20個まで


1スクリプトに設定できるトリガーの数は20個までです。複数の自動化処理を1つのスクリプトに詰め込みすぎると、トリガーが追加できなくなります。用途ごとにスクリプトを分けて管理することで、この制限を回避できます。


セキュリティ上の注意点:コードに機密情報を直書きしない


GASのスクリプト内に患者名・APIキー・パスワードを直接記述すると、スクリプトを誤って共有した際に情報漏洩につながります。これが最大のリスクです。代わりに「PropertiesService(スクリプトプロパティ)」という機能を使うことで、機密情報を安全に管理できます。スクリプトエディタの「プロジェクトの設定」→「スクリプトプロパティ」から設定できます。


また、医療機関では患者情報の取り扱いに法的な規制があります。GASを使ってスプレッドシートで患者データを管理する場合は、Googleドライブの共有設定を「リンクを知っている全員」にしないよう注意してください。アクセス権を「特定のユーザーのみ」に限定することが原則です。


制限④:ローカルファイルには直接アクセスできない


GASはクラウド上で動作するため、PC内やオンプレミスの院内サーバーに保存されたファイルを直接操作することはできません。Googleドライブにアップロードされたファイルのみが操作対象になります。既存のExcelファイルを自動化したい場合は、まずGoogleドライブにアップロードしてスプレッドシート形式に変換する必要があります。


Google公式:Google Apps Script のサービス割り当て・制限値一覧(公式ドキュメント)


よしかず IT ブログ:Google Apps Scriptを最大限活用するための制限値ガイドと解決策