スポンサーリンク

音声入力の現金出納帳を作成、IFTTT × Google Assistant × スプレッドシート GAS を使った仕組み


会社や個人事業の日々の現金取引は、現金出納帳に記録しなければいけません。

Excel やスプレッドシートで現金出納帳を作ることはできます。

Excel やスプレッドシートへの入力は普通は PC でキーボードを使って行いますが、最近は音声入力も注目されています。

自分でも色々と試してみると、 キーボードでの手入力よりも楽なケースもあると感じています。

今回、PC を開かなくても、スマホに向かって入出金の内容を喋れば登録できる現金出納帳を作ってみましたので、作り方紹介したいと思います!

以下のツール↓ を使っています。

・IFTTT
・Google Assistant
・スプレッドシート
・GAS(Google Apps Script)

それでは行きますね!

なお、後に説明します IFTTT の設定については同業者の方のブログを参考にさせて頂きました。ありがとうございました!

GoogleHome+IFTTT+Googleスプレッドシート&freee。声で経理、レシート入力ができる可能性。

スポンサーリンク

1、音声入力現金出納帳の仕組み

音声入力現金出納帳の使い方

どのような仕組みを作ったのか、まず使い勝手からお話しします。

スマホで Google Assistant を開きます。

Image(14)

そして、例えば店舗の売上 125,400円分の現金入金があった場合

「入金 125,400円 店舗売上」

と3つの単語を少し間を開けて続けざまに喋ります。

すると、まず Google Assitant が「125,400円 店舗売上 を入金として登録しました!」と反応します。

Image(43)

そして、その内容がスプレッドシートの現金出納帳に入金項目として自動的に入ってくるというものです。

Image(15)

出金であれば、最初の一言を「出金」に変えます。

例えば 540円のボールペンを買った場合

「出金 540円 ボールペン」

と Google Assistant に向かって喋れば今度は出金項目として入ってきます。

Image(16)

このようにして、音声入力を行い入力が楽にすることができる可能性があるツールとして作ってみました。

ただ、完ぺきなものではありません。

後で若干手作業で編集する必要があります。

入出金の項目として、音声入力できる項目の数は数字が1つ、テキストが1つという制約があるので

今回は

・数字として「入出金額」

・テキストとして「摘要」

を当てることにしました。

「入出金額」については、かなり正確に読み込んでくれるのでありがたいのですが、他でキーボードによる手作業が必要な部分はあります。

摘要・勘定科目

摘要についてですが、先の例で540円のボールペンを買った場合

「出金 540円 ボールペン」

と「ボールペン」を摘要として入力することをお話ししました。

本来であればボールペンをどこから買ったのかも同時に音声入力できればいいのですが、テキスト入力は1つだけなのでこれについては後で付け足す必要があります。

また、勘定科目については Google Apps Script(GAS)を使って摘要から該当するものを探し出して自動的に表示されるようにていますが、これも全てを自動で表示させることは不可能です。

後で別途入力が必要なところもあります。

摘要の追加・訂正、勘定科目の追加はキーボードで手作業する必要があります。

Image(17)

日付欄の編集

本当は日付も音声入力できたらいいのですが、無理なのでそこは諦めて「入力した日の日付」が現金出納帳に表示されるようにしました。

ですので、お金の入出金があった日に入力する前提で使うものということになります。

なお、後で日付を変更したい場合はスプレッドシート上で日付の欄をダブルクリックすればカレンダーから選ぶことができます。

Image(18)

音声入力現金出納帳の仕組み

さて、音声入力現金出納帳の仕組み(どのようにして喋った内容が現金出納帳に入ってくるのか)をお話しします。

まず、Google Assistant で喋った内容を入出金別にスプレッドシートに読み込みます。

Google Assistant とスプレッドシートの連携には IFTTT を使っています。

なぜ、入出金別にスプレッドシートを分けたかと言うと、1つのシートに入出金をごちゃまぜに読み込むと、後で GAS により現金出納帳に取り込む際に入金か出金かの判断がつかないからです。

Image(19)

さて、次にこのようにして入出金別に別々のスプレッドシート(入金は「入金音声入力」、出金は「出金音声入力」)に読み込んだデータを

GAS を使って「音声入力_現金出納帳」シートに取り込みます。

そして、現金出納帳に読み込んだデータは削除されるようになっています。

Image(20)

なお、後でもお話ししますが GAS によるプログラミングは1分間に1回(時間は変更可能)実行するようにしているので、ほぼ音声入力をした直後にデータが現金出納帳に取り込まれることになります。

2、IFTTT を設定して Google アシスタントによる音声入力をスプレッドシートに取り込む

さて、まず IFTTT を使って Google Assistant とスプレッドシートを連携させる方法についてお話しします。

冒頭でお話ししました、こちらの記事を参考にさせて頂きました。

これは同様の設定を入出金別に2回行う必要があります。

出金の場合を例にあげて説明します。

IFTTT は「if this then that」の略で

「この条件(this)に当てはまる時に、あの操作(that)を行う」

という意味になります。

IFTTT を開き「My Apperets」で右上の「+」を押します。

Image(21)

すると「New Appelet」が開くので「+ this」を選択します。

Image(22)

「Google Assistant」と検索すると出てくるので、選択します。

Image(23)

次に一番下を選択します。音声入力する項目が数字とテキスト両方という意味です。

Image(24)

Google Assistant に向かってどのように喋れば登録されるか設定します。

出金の場合

「出金」→「金額」→「摘要」

の順番に間を空けて喋るように設定するのですが、その場合「出金 # 円 $」のように入力します。

# は数字、$ は文字列を意味します。

Image(25)

次に喋って登録が完了した後に、Google Assistant がどのように反応するか入力します。

「円 $ を出金として登録しました!」と入力します。また、言語は日本語を選択します。

Image(26)

次に「+ that」を選択して、上記の条件に当てはまる場合の動作を設定します。

喋った内容をスプレッドシートに登録するわけですね。

Image(27)

「google sheet」と検索してスプレッドシートを選択します。

Image(28)

「Add row to spreadsheet」を選択します。Google Assistant に喋った内容をスプレッドシートの新しい行に登録するという意味になります。

Image(29)

スプレッドシートのファイル名を決めて入力します。

「出金音声入力」としました。

Image(30)

これで最後に「Finish」を押せば設定完了です。

Image(31)

これで Google Drive の「Google」という名前のフォルダの中にシートができるようになりました。

3、GAS による現金出納帳への入力

さて、次に GAS による現金出納帳への入力についてお話しします。

スプレッドシート現金出納帳

スプレッドシートで現金出納帳を作っておきます。

Image(32)

なお、Excel で作った現金出納帳をスプレッドシートにインポートする方法についてはこちら↓ の記事に書かせて頂きました。

差引残高の行にのみ数式を入れてあります。

Image(33)

これにデータが入るとこんな感じになります↓

Image(34)

なお、現金出納帳の右側に「摘要」と「勘定科目」のリストを作っておきます。

GAS を実行したときに音声入力した摘要に該当する勘定科目を検索して、現金出納帳に書き出します。

Image(44)

すべての摘要を検索することは無理ですが、頻繁に出てくるものをリストアップしておきます。その分の科目がすぐに埋まるだけでも、手作業による科目入力の手間が多少は省けます。

GAS による仕組み

GAS で音声入力したデータを現金出納帳に書き出します。

Image(20)[1]

音声入力した入金データが最初に入るのは Google フォルダの中にある「入金音声入力」ファイルです↓

シート名も「入金音声入力」にしておきます。

Image(35)

また、音声入力した入金データが最初に入るのは「出金音声入力」ファイルです↓

シート名も「出金音声入力」にしておきます。

Image(36)

全GAS コード

GAS コードは「音声入力_現金出納帳」ファイルの中に記述しています。

全コードを以下に示します。

関数名は「Genkin_Suitou」としています。

GAS コードの説明

GAS コードの説明をします。

変数

最初にまとめて変数を記述しています。

「入金音声入力」ファイルを指定して変数に入れる際には

と URL で指定します。

IFTTT で設定して作成したスプレッドシートの URL(https からはじまる) をコピペして置き換えましょう。

また、ファイルの中のシート名を「入金音声入力」としてあり、以下のように指定します。

Image(45)

同様に「出金音声入力」ファイル、「現金出出納帳」ファイルも指定しています。

現金出納帳内で記入のある最後の行数を取得

現金出納帳にデータを追加していくために、入力がある最後の行数を把握する必要があります。

日付の行が5行連続で空白になったら、その直前の行を最後の行数として把握します。

Image(46)

入金データを現金出納帳に書き出し

「入金音声入力」ファイルに入力されたデータを現金出納帳に書き出す過程です。

レシートなどを入手した当日に入力する前提で、日付は今日の日付にしています。

先に書いたように後で変更することもできます。

入金額と摘要はそのまま現金出納帳の「収入金額」欄と「摘要」欄に入ります。

また、摘要から勘定科目を検索してします。

データを現金出納帳に書き出したら、最後「入金音声入力」ファイルの中身を空にしています(データが入っていた行を削除)。

出金データを現金出納帳に書き出し

「出金音声入力」ファイルに入力されたデータを現金出納帳に書き出す過程です。

入金の場合と内容はほとんど同じです。

トリガーの設定

次にトリガーの設定についてお話しします。

1分間に1回 GAS を実行するように設定しています。

なお、スパンは変更することができます。

スクリプトエディタ(GAS が書き込んであるところ)の「編集」から「現在のプロジェクトのトリガー」を選択します。

Image(37)

次に「トリガーが設定されていません。今すぐ追加するには・・・」の部分を選択します。

Image(38)

そして、時間主導型、分タイマー、1分ごとを選択します。

Image(39)

これでトリガーの設定が完了しました。

音声入力をするとほぼすぐ後に現金出納帳にデータが入ります。

4、まとめ

音声入力の現金出納帳を作成してみました。

完全なる音声入力というのは現時点では実現が難しいように思えます。

今回作ったものは、手作業による修正がどうしても必要になりますし。

ただ、最初にざっと音声で登録した後に細かい修正をするようにした方が、量が多い場合には効率が良いでしょう。

編集後記

昨日(10/16)は午後、下町ロケットに登場する神谷弁護士のモデルとなった方の講演を聞いてきました。

弁護士でありながら、知財戦略、経営戦略的な助言までできるスタンスに感銘を受けました。

夜は商工会議所青年部の委員会の打合せ。終了後は久しぶりに飲み会に出席し遅くまで飲んでました。