[総務 × GAS] 非エンジニアがGASで効率化を叶えるその日まで Part2 #cm_odyssey

[総務 × GAS] 非エンジニアがGASで効率化を叶えるその日まで Part2 #cm_odyssey

Clock Icon2024.6.28

こんにちは!総務の徐(Seo)です。

前回に引き続き、GASを使っていくつかの総務業務を改善しました。
今回は資格試験用のバウチャーチケット発行についての改善をご紹介いたします!

他の改善やGASについて、GASを使い始めたきっかけなどについては前回のブログをご覧ください。
前回のブログはこちら:https://dev.classmethod.jp/articles/soumu-kaizen/
 

弊社ではIT関連の資格取得に力を入れていて、希望者には資格試験用のバウチャーチケットを発行しております。
これまで、社員がスプレッドシートにバウチャーの発行希望内容を入力し、Slackの専用チャンネルから依頼することで、総務部門がバウチャーを発行していました。
しかし、この方法には入力ミスや誤発行などいくつかの課題がありました。

それでは、どのような課題か、それらの課題をどのように改善したかをご紹介します。
 


【課題①】姓/名を逆に記載してしまう

FirstName(名)とLastName(姓)を入力する必要がありますが、姓名を逆に入力するケースがたまに発生していました。
姓名を逆でバウチャーを発行してしまった場合、受験ができずバウチャーの返還(返金)もありません。
そのため、正しく姓名を入力する必要があります。
 

【改善①】自動反映(関数)

メールアドレスを入力するとFirstName、LastNameが自動入力されるように変更しました。
ついでに社員番号と氏名も自動入力されるようにしました。

社員番号 Vlookupを使用し、社員一覧を参照して引用するように設定しています。
氏名 Vlookupを使用し、社員一覧を参照して引用するように設定しています。
FirstName C2に以下関数を設定
=iferror(Proper(MID($E2,FIND(".",$E2)+1,FIND("@",$E2)-FIND(".",$E2)-1)),"")
※”.”と"@”の間のアルファベットを抜き出し、最初の文字を大文字にしています。
LastName D2に以下関数を設定
=iferror(PROPER(LEFT($E2,FIND(".",$E2)-1)),"")
※左から".”までのアルファベットを抜き出し、最初の文字を大文字にしています。

 

【効果①】

依頼者:入力の手間が省ける
    誤入力することがなくなる
総務 :誤入力の情報そのまま発行することがなくなる  


【課題②】在庫がないのに発行依頼をしてしまう

シート上部にバウチャーの在庫状況を表示させてはいますが、在庫状況を確認する前に発行依頼してしまうことも多く、依頼を受けても「在庫がないため発行できない」という案内をしておりました。
また、発行時に確認はしているものの、複数部署の在庫を一括で管理しているため
ミスにより部署Aの在庫がないのに部署Bの在庫を使用してバウチャー発行してしまうケースも発生しておりました。
 

【改善②】ポップアップ(メッセージボックス)を表示(GAS)

在庫の有無を判別し、在庫がない場合は以下のとおり対応

  • 発行が出来ない旨ポップアップ(メッセージボックス)を表示
  • 列をグレーアウト

function myFunction() {
  var message = "A5:E9をご確認いただき、在庫なしの場合はバウチャー無しでお申し込みをお願いします。\\n※過去試験を受けた際に発行されたバウチャーがありましたら、そちらをご利用ください。";
  Browser.msgBox("【要確認】在庫が0の場合はバウチャーの発行が出来ません", message, Browser.Buttons.OK);
}

※ここではスプレッドシートの詳細を説明していない関係上、在庫がない場合ではなく通常の実行すれば表示される基本のポップアップのコードを記載しております。在庫がない場合に表示されるようこの基本のコードを応用・工夫し、改善を進めております。
 

【効果②】

依頼者:無駄な発行依頼をしなくてもよくなる
    次回から起票前に在庫を確認する習慣がつく
総務 :在庫なしの案内をしなくてもよくなる
    誤って別部署の在庫で発行してしまうことが無くなる  


【課題③】発行対象外なのに発行依頼をしてしまう

所属部署によってはバウチャーの発行対象外となりますが
誤って対象外の部署の方が発行依頼をし、対象外のため発行できないという案内をしておりました。
 

【改善③】ポップアップ(メッセージボックス)を表示(GAS)

社員番号から発行対象の部署かを判別し、発行対象ではない場合に以下のとおり対応

  • 対象外である旨ポップアップ(メッセージボックス)を表示
  • 列をグレーアウト

function myFunction() {
  var message = "以下部署のみバウチャー発行が可能です。\\n・A部署\\n・B部署";
  Browser.msgBox("【要確認】バウチャー発行対象のお知らせ", message, Browser.Buttons.OK);
}

※ここではスプレッドシートの詳細を説明していない関係上、対象外の場合ではなく通常の実行すれば表示される基本のポップアップのコードを記載しております。対象外の場合に表示されるようこの基本のコードを応用・工夫し、改善を進めております。
 

【効果③】

依頼者:無駄な発行依頼をしなくてもよくなる
    ご自身の所属部署について発行対象かを把握することができ、次回から起票・発行依頼しなくなる
総務 :発行対象外との案内をしなくてもよくなる


ポップアップは上記改善のように案内や注意事項を表示させ、ミスを減らすのにとても便利です。
比較的難しくなくハードルが低いものの、他にも以下のようなことにも活用が可能です!

①エラー&修正依頼
データ入力後にエラーチェックを行い、エラーが見つかった場合にポップアップでユーザーに通知します。
エラーを修正するための具体的な指示やアクションを提供することも可能です。
※ 事前に予測できるエラーとその修正方法などを把握・入力しておく必要があります。

②データの確認依頼
ユーザーがデータを入力または変更した際に、最終確認するようポップアップを表示します。
これにより、入力ミスがあってもユーザー自身が入力ミスに気付いて修正する機会を提供します。

③次のステップの提示
何か作業を行った際、次のステップを案内するポップアップを表示します。
ユーザーが次に何をするべきかを明確に理解できます。

GASに触れたことがない方も、簡単なコードから始めてみてはいかがでしょうか。


TIP

知識豊富なエンジニアとは違い、慣れるまではGASについての検索から始まりますが
「メッセージボックス GAS」など、「〇〇(やりたいこと) GAS」で検索すると様々なサイトが出てきます。

コードは大きく変わらないためどのサイトもだいたい同じことが書かれていることが多いですが、全て同じだと思わずに色々なサイトを確認し、ご自身に合った見やすいサイトを見つけ
ひとつずつ理解しながら進めることが、応用などする際にも成功に繋がりやすいかと思います。

また、機密情報などを入力しないように気を付けながらChatGPTなどを活用することもおすすめです。

弊社のエンジニアが執筆しているブログなどもおすすめなので、是非ご覧ください!!


最後に

総務では随時関数やGASなど勉強を進めて業務改善を行っていますので、
今後も各総務メンバーから発信を出来ればと思っております!

この記事をシェアする

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.