かずきち。の日記

サーバサイドエンジニアのつぶやき

個人事業さくっと完全無料で簡易ポイント照会アプリを作ってみた!

作った経緯

エクセルからデータを引っ張ってくるという業務ありますよね?
データベースから人手で検索をしてデータを取得するという謎業務。
人手でデータを返却するという無駄な操作です。
どの企業も何かしらデータベースで会員情報で顧客のデータベースなどを持っている企業はあるかと思います。
空室確認・予約確認・仕様状況確認などにお使いいただけます。

f:id:kazukichi_0914:20211116161619g:plain

例えばこのようなデータベースを裏で持っていたとします。

会員番号00001のポイントはいくつ?

と聞けば、A2列とE2列を見て、123ポイントだというのはわかります。
ですが、人手でデータを返すのは若干アホらしいです。
なので、さくっと簡易データベース取得アプリを作ってしまいましょう。

準備するもの

GoogleAppsScript(無料)
script.google.com

Googleスプレッドシート(無料)
Gmail(無料)

の3点で会員情報取得アプリを作っていきます。

会員情報を検索するフォームを作りましょう


見た目をそれっぽくすればOKです。
このあとに魔改造していきましょう!

まずは適当に会員データベースを確認するためのフォームを作成します。
ここまでは5分で作成ができると思います。
会員情報を照会するフォームができましたので、ここから会員情報のポイントを返却するコードを書いていきましょう。

ここにアクセスしてコードを書いていきましょう。
コード自体は53行で完結しました。

function myFunction() {
  //https://docs.google.com/forms/d/e/1FAIpQLSfiVjQcILVOeN9uHbK4OGjhbTJ_04FaJYW-giAaX1DeeBXrHQ/viewformから検索
  
  //現在のスプレッドシートを取得
  var spreadsheet = SpreadsheetApp.openById('1RPvzx9Io2KHYoD-RWMBdMaaCnC3qiNCB0z8c1WYg1WA');
  //現在のシートを取得
  var sheet = spreadsheet.getActiveSheet();
  //指定するセルの範囲(A1)を取得

  var lastRow = spreadsheet.getLastRow();
  Logger.log(lastRow);

  //通知先メールアドレス
  var range = sheet.getRange("B"+lastRow);
  //値を取得する
  var value = range.getValue();
  Logger.log(value);
  

  // 検索会員番号
  var range2 = sheet.getRange("C"+lastRow);
  //値を取得する
  var value2 = range2.getValue();
  Logger.log(value2);

  //現在のスプレッドシートを取得
  spreadsheet2 = SpreadsheetApp.openById('1SPG_34MegkrlIXS6Wn-536uQFWfYqr2PplAYk2I_gPk');
  var sheet2 = spreadsheet2.getActiveSheet();
        
  var textFinder = sheet2.createTextFinder(value2);
  var cells = textFinder.findAll();
        
  Logger.log('ヒット数 : ' + cells.length);
        
  for(var i=0; i<cells.length; i++){
    Logger.log('セル位置 :  ' + cells[i].getA1Notation()) ;
    var point = cells[i].offset(0, 5).getValue();
    var point2 = Math.floor(point);
    Logger.log(point2);
    
    var date = cells[i].offset(0, 6).getValue();
  }
  const recipient = value; //送信先のメールアドレス
  const subject = 'ポイント通知';

  const recipientCompany = 'かずきち。';
  const recipientName = '【自動送信】ポイント確認';
  const body = 'あなたが現在保有しているポイントは\n\n'+point2+'\n\nです\n\n失効日は'+date+'\nですので、お早めに交換してください。';  
  const options = {name: 'かずきち。のポイント確認システム'};
 
  GmailApp.sendEmail(recipient, subject, body, options);

}
完成体

こちらに
サンプルとして「000001」の会員情報を返却してくださいとリクエストを送ってみてください。
そうすると裏でプログラムがごにゃごにゃとデータベースを探して、「000001」の会員情報を探してきます。

f:id:kazukichi_0914:20211116180617g:plain

かずきち。のポイント紹介システムから「123ポイントが残っていて、失効日は2020/1/1です」と通知を行ってくれます。
活用方法は客室の空き情報管理など活用方法はユーザになにか情報を返却したいと言う方におすすめです。

空室情報返却
使用量返却
有効期限返却などさまざまです。
あなたにあった仕様で作成いたしますので、ぜひご検討ください。