ノーコードで業務の引継ぎアプリを作ってみた。

# 引継いでもらえない引継ぎ問題　:pencil:

どうも！皆さまのご近所の冷蔵庫（スーパー）で管理者として働く<B>ちょも</B>です。
皆さま職場の上司・同僚・部下との引継ぎはどのようにされていますか？
私の所属する管理者グループはB4サイズのノートを利用しますが、引継ぎをしてもらえないことが多々あります。

<BR>
<B>誰か来る予定だった<BR>
自分のいないところで決まった事項を聞かれるが答えられなかった。</B>
<BR><BR>

など、目が点になることがしばしばあります。
個人的に単純に困りますし、人に迷惑は掛かるし、要らぬ恥だと感じています。
そこで、この<B>引継がれない引継ぎ問題</B>を最近始めた<B>デジタルの力を使って改善</B>していきたいと思います。
<BR><BR>
![IMG_0013.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3951623/90b52e3d-f56c-4b34-a9ad-ff1a8a54029d.jpeg)
実際の引継ぎノートです。

## 引継ぎについてどう考えているか

引継ぎアプリを作るに当たり、私以外の3名に引継ぎについてどう考えているのか聞いてみました。

###
:::note info

管理者Aさん

- 情報共有するためにもとても重要
- しっかり残さないと自分も気兼ねなく休めない
- 証跡を残すことで何かあった際の助けとなる
- ノートに書くのは詳細を残すとき煩わしさを感じる
- ノートの引継ぎは以前の記録を遡りたいときに見つけられない
:::

###
:::note warn

管理者Bさん

- 情報共有・意思疎通に当たり重要
- ついうっかり残すのを忘れてしまう
- 確認するのも忘れてしまう時がある
- 書くの面倒くさいとは感じている
- 電話の方が早く、まどろっこしく感じる時もある

:::
###
:::note alert
管理者Cさん

- 重要だと思う
- 確認しなくても重要なら誰か教えてくれると思った
- 机に向かう時間が取れない
- 自分で完結すると思った
- 聞かなくても分かると思った

:::

見事なご意見を賜りました。
<font color="gainsboro">管理者Cさんは言い訳が始まったと思いますが、良い意味で正直者です</font>
皆さん引継ぎが重要だという共通認識はありますので、マイナス意見だった<B>面倒くさい・煩わしい</B>と、<B>証跡として残す</B>を念頭に、<B>シンプルで記録に残るアプリ</B>を作りたいと思います。

## 使用するツール
- [ChatGPT](https://chatgpt.com/ "ChatGPT")　→質問責めする相手　初心者だと言えば分かりやすく教えてくれる
- [Google Apps Script](https://script.google.com/home "Google Apps Script")　→お天気の情報を取得するために使用
- [Weather API](https://www.weatherapi.com/ "Weather API")　→天気情報を取得する無料サイト
- [Googleスプレッドシート](https://docs.google.com/spreadsheets/ "Googleスプレッドシート")　→データの基本を入力するところ
- [AppSheet](https://www.appsheet.com/"AppSheet")　→スプレットシートの拡張機能でアプリを作るところ
- Googleアカウント　→アプリを使うのに必要

たくさん使ってるようですがChatGPTとAppSheetに時間を使った感じです。
それ以外はChatGPTのおかげで時間掛からず進みました。

## 出来上がったアプリ

https://x.com/Cyomo092/status/1889610826715103648

### <B>■　実際のスマホ画面</B>
  
![引継ぎアプリ1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3951623/ce790c2f-e00a-9e95-afec-95e458d75d00.png)


　日付・曜日は基本触りません。
　``入力者``・``事件事故の有無``・``その他引継ぎの有無``だけを選択します。

---
 
### <B>■　詳細を見るとこんな感じ</B>

 ![引継ぎアプリ2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3951623/4708ed39-5834-eed4-15a5-e56d05dfb3bd.png)


　左の画像の日は天気が確定しているので表示されます。
　右は当日の画面なのでまだ天気が確定していないので非表示となります。

---

### <B>■　残す事項がある場合の画面</B>

![引継ぎアプリ3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3951623/86027ebd-cb0e-23cc-5d6a-dfbcc95dcb4f.png)

　事件事故の場合は``有り``を選択すると``内容``と``事故報告書の提出確認``と``画像やファイルの取込み``が出来るようになります。
 　また、その他引継ぎも``有り``を選択すると``内容``と``画像``と``添付書類``が登録できるようになります。


:::note info
注意したこと
- とにかくシンプルな見た目
- 入力項目は最小限
- 選択して初めて必要な項目が出るようにする
:::

## 作成方法

### 1\. [ChatGPT](https://chatgpt.com/ "ChatGPT")を質問攻めにする。
　<B>「[AppSheet](https://www.appsheet.com/"AppSheet")で引継ぎノートを作る方法を初心者でも分かりやすく教えて下さい」</B>のスタートで質問攻めしていきます。
 
 ---
### 2\. [Googleスプレッドシート](https://docs.google.com/spreadsheets/ "Googleスプレッドシート")に表示したい項目をダダダッと入力する

![引継ぎアプリスプレッドシート.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3951623/85170795-3955-b608-359e-51e6576b166c.png)
（黄色い部分だけです）

---

### 3\. メンバーシートを追加する

![引継ぎアプリスプレッドシート2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3951623/1ec421e1-d671-0b60-ab4c-bb923113b39e.png)
メンバーのシートはほとんど触りませんでした。人事異動が出ない限り触らないと思います。

---

 ### 4\. 途中で天気のデータを入れたくなってしまい、寄り道をします。
  ![スクリーンショット 2025-02-10 203258.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3951623/aae90768-9408-51d5-9464-7c2adcf14ef5.png)


<details><summary>お天気データ取得コード（GAS）</summary>


```function getWeather() {
  var apiKey = "●●●";  // ① APIキー
  var city = "●●●";  // ② 取得したい都市名
  var url = "https://api.weatherapi.com/v1/forecast.json?key=" + apiKey + "&q=" + city + "&days=3&lang=ja";  
  // ③ 3日分の天気予報を取得（必要に応じて調整）

  var response = UrlFetchApp.fetch(url);
  var json = JSON.parse(response.getContentText());
  var forecastDays = json.forecast.forecastday; // 天気データ一覧

  var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("表紙");  // ④ シートを取得
  var lastRow = sheet.getLastRow();  // ⑤ データの最終行を取得
  var today = new Date();  // ⑥ 現在の日付を取得
  
  for (var i = 2; i <= lastRow; i++) {  // ⑦ A列の日付を1行ずつチェック（A2から最終行まで）
    var dateCell = sheet.getRange(i, 1).getValue();  // A列の日付を取得
    
    if (dateCell instanceof Date) {  // ⑧ 日付データかチェック
      var dateString = Utilities.formatDate(dateCell, "GMT+9", "yyyy-MM-dd"); // APIの日付フォーマットに変換

      // ⑨ APIのデータと一致する日付を探す
      var matchedWeather = forecastDays.find(day => day.date === dateString);

      if (matchedWeather) {  // ⑩ 一致する天気データがあれば記入
        var weatherText = matchedWeather.day.condition.text;  // 天気
        var tempMax = matchedWeather.day.maxtemp_c + "°C";  // 最高気温
        var tempMin = matchedWeather.day.mintemp_c + "°C";  // 最低気温
        
        sheet.getRange(i, 3).setValue(weatherText); // C列に天気
        sheet.getRange(i, 4).setValue(tempMax);     // D列に最高気温
        sheet.getRange(i, 5).setValue(tempMin);     // E列に最低気温
      }
    }
  }
}

```
</details>

↑のコードを[Google Apps Script](https://script.google.com/home "Google Apps Script")で[Googleスプレッドシート](https://docs.google.com/spreadsheets/ "Googleスプレッドシート")に埋め込みます。

---
### 5\. 選択した答えによって次の質問を表示する
![引継ぎアプリSheet2.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3951623/a9894cdf-6881-dc8e-935b-0ac2ca671d47.jpeg)
今回は``事件事故の項目を有り``にした場合、``事故内容の項目が出る``ように設定します。
この黄色い部分上の段``Show?``で可能にしています。
下の黄色は``text``だと入力しづらいので``Long Text``にすることで長文が入力しやすくなります。
以上の方法で``事故報告``・``その他引継ぎ``をそれぞれ``有り``にした場合のみ、他の項目が出る仕組みが出来上がりました。

---
## 全体の作りはこれ

![引継ぎアプリSheet1.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3951623/a4410e3a-ab3e-da14-1612-f23ae3731952.jpeg)
素人が作っているので余計な項目があるかもしれませんが、こんな作りになってます。
Dataには``表紙となるシート``と``メンバー``というシンプルな作りです。

## 実際に使ってもらった感想
作ってみたアプリを実際に使ってもらい、どんな感じか聞いてみました。

###
:::note info
良いところ

- 操作が簡単
- 必要ないところが出ないから、何も無ければ「ちょんちょん」で終わって良い
- 過去のデータが検索できるから似たような事故とか、どう対処したのか調べられて良い
- ノートと違って写真がその場で残せるので分かりやすい
:::

###
:::note warn
イマイチ＆要望

- データふっ飛ぶことある？
- 結局確認を忘れたらそれまでだよね
- 個人情報の漏洩が怖いから内容が限られてしまいそう
- その他引継ぎ内容を業務連絡事項に関することと、それ以外の事項と分けられないか？
- 天気よりも売上データを入れて欲しい
- 誰が確認したかチェックボタンでも良いから分かるようにして欲しい
:::

## まとめ

グループ4名が職務の性質上パソコン入力がそれなりに出来るので、<B>デジタルへの入り口</B>は難なく突破しましたが、デジタル特有の``良いところ``と``イマイチなところ``・``要望``が出てきました。
イマイチなところ、特に<B>情報漏洩</B>は私も知識が追いついていないので、今後の課題です。
``確認を忘れてしまう``に関しては、何か``通知機能``が付けられないか？
``確認チェック``項目の追加など、全体的なデザインを含めてまたChatGPTさんと相談しながらブラッシュアップ出来ればと思います。
想像以上に3人の食いつきが良かったので、もっと店舗にあった引継ぎアプリにしよう！と今後も楽しみに取り組みます:cherry_blossom:
<BR><BR>


https://qiita.com/Cyomo/items/2334a9d03ced71b286ae


https://qiita.com/Cyomo/items/20976edd605a69b98e41