にょきにょきさん

UE4を使ってゲームを作る人の備忘録や雑記がメインです。

iPhoneから入力した内容をGASを使ってGoogleスプレッドシートに記入する

【経緯】家計簿をつける習慣をつけたい

パートナーや友人と遊ぶ機会が多くなると、1人の時よりも用途の分からないお金が出ていくことが多くなったことが理由で、家計簿を付けたいと思いました。

でも、中々いいアプリがあっても有料部分があったり、広告が出てくるようになったり…。

使わない機能もあるし、かと言って足りなかったり…カスタマイズ性があるものがいいな!と思って、アプリを作るよりは簡易な、なんかいい感じのやつを作ることにしました。

 

今回はメモとして記載しますが、もし近い物を求めている方がいたら是非ご参考にしてください。

プログラミングが少し入ってきますが、VBAを触る方には大したことない内容です。

初心者の方はソースコメントの部分(// 以降)を参考に何をしているのかを、ふーんって感じで見てもらえれば。

 

⬛︎使用ツール

iPhone

PC:

内容としましては、

  1. ショートカットで[支払い者、分類、金額、日付]を入力し
  2. 入力値をGASにURLからパラメータで渡す
  3. 最後に調整してGoogleスプレッドシートに記入する

…といったものです。下記が結果です。

前提条件としては、

くらいかなと思います。

あとは、任意のカラムを用意しておくとか…。

後述するショートカットの初めにwebからGoogleスプレッドシートを開くようにしたら解決しますので、改良してみてください。

 

GASでは、webアプリケーションをデプロイすることが必要なのですが、そこは説明を省きます。

あくまで個人が趣味的に導入した方法のメモなので、分からないところは他文献をご参照ください。

 

⬛︎ショートカット

iPhoneのショートカットレシピはこちらです。

これは簡単に説明すると、

  1. 支払い者選択
  2. 分類選択
  3. 金額入力
  4. 日付取得

という形になっています。

 

ショートカットで作った内容は全て","で持つようにしており、この区切りは後述するGASで使用する「」に対して使える形式にするためでした。

GASの関数には他の文字も区切りの文字として使えたりするので、適宜設定してください。

 

⬛︎GAS

今回は、GASで書いた内容を実行するURLのパラメータから値を取得します。

使用するのはdoGet()関数です。

// URLからパラメータを受け取り、下記の関数を実行する用
function doGet(e) {
 // ".query"は、パラメータ"?query="で渡される
 var param = e.parameter.query
 // スプレッドシートの読み込み
 const spreadsheet = SpreadsheetApp.getActiveSpreadsheet()
 // シート選択
 const sheet = spreadsheet.getSheetByName("Sheet1")
 // 実行
 actionCells(sheet, param)
}
 
// パラメータの内容を取得したシートに対して反映する関数
function actionCells(sheet, param) {
 // セル範囲10行とする(任意)
 for (let int=1; int<=10; int++){
  // セルを取得
  var check_cell = sheet.getRange(int, 【該当列名】)
  // セルの空白チェック
  if (check_cell.isBlank()){
   // セルに入力を行う
   check_cell.setValue(param)
   // カンマごとに区分け設定
   check_cell.splitTextToColumns(SpreadsheetApp.TextToColumnsDelimiter.COMMA)
   break
  }
 }
}

※インデントを全角で調整しています。

  • うんちゃらURL.../exec?【任意のパラメータ】=【ショートカットで用意した値】

上記にアクセスして入力を反映させます。

以上です!多分全部コピペして自分好みの名称に書き換えただけで動きます。

 

⬛︎最後に

ここまで書いておいてなんですが、

この内容は需要がある人はかなり限られる気がします。笑

(初めての投稿なので色々練習…)

 

私は私なりに管理しやすいように書き換えていっているので、

これを土台に何か着想得られることがあったら幸いです。

 

⬛︎参考URLなど

後日追加