会計ソフトの伝票入力をスプレッドシートでおこなってしまおうという話【GAS】【Googleスプレッドシート】【freee】【経理】
会計freeeは入力しやすいような設計ではない。
弥生会計や勘定奉行などから乗り換えを検討されていて、伝票入力の使いにくさに心が折れている事業会社さんや、顧問先がfreeeに変更になってお困りの税理士さん。
freeeはシステム連携を中心に設計されたERPなので、人間が正しく早くデータ入力するという思想がまるっきり感じられませんよね。ならば伝票自体をスプレッドシートで作ってしまえというお話です。
会計freeeは伝票とりこみのために「排他モード」にする必要がない
複数人が同時にえっちらおっちら伝票アップロードが可能です。
会計freeeは、あ!間違えた!そのアップロードなやっぱりやめた!が可能。
間違えても、アップロード単位での伝票取り消しが可能です。
前回の記事では、CSVをアップロードするだけの記事でした。
でもそれだと、アップロードができない形式でCSVしてしまうこともあるかもしれません。
経理は正しい仕訳を切る=システムは様式があっているか確認する
このあたりが弥生会計・勘定奉行などは安心感があります。
簡易ですけど、スプレッドシートでデータベースを組んでしまいましょう。
シート「list」で科目設定
勘定科目マスター
品目マスター
部門マスター
課税区分マスター
こちらを整えたほうが、間違いが起こりにくくなります。
伝票画面の説明①
クリーム色のセルが入力項目です。
勘定科目などは入力規制を使って、登録されてないのが入力されるとエラーを表示されます。
ファイルネーム1・ファイルネーム2
この内容ががつながったものがCSVをファイル名として出力されます。
日付・伝票番号・反映する行数
伝票形式では、必須事項になるので同じものを展開します。
名前付き関数でご案内した技術的をつかっています。
伝票画面の説明②
税額の計算
入力した総額を課税区分で割戻ます。
「名前付き関数」で作った、TAX関数を使っています。
勘定科目ー品目の対応確認
freeeの場合、弥生会計の勘定科目-補助科目の設計と違い、紐づけがありません。(勘定科目設定で紐づけることは可能です)。まったくばらばらだと困りますので、リストシートで作成した項目と一致してなければアラートがでる程度のチェックはできるようにしてみました。
スプレッドシートでは、二重の入力規制の対応がむつかしい
エクセルだったらできるのですけどね。バージョンアップでも実装されないのであまりニーズはないのでしょうか?
伝票画面の説明③
貸方金額の初期設定は、借方金額と同じ
初期設定では「=」をいれています。崩してももちろん結構です。
伝票画面の説明④
貸借一致の確認
「貸借一致」簿記の基本ですね。「要チェック」であれば確認しましょう
CSV範囲の設定(基本は規定)
「規定」では、「7行目」=ヘッダーから
「B列の一番下の行」までCSV化するという規定です。
=if(F4="", MAX(ArrayFormula(IF(B:B="","",ROW(B:B)))),F4)
特殊な用件で行の範囲を広げたい場合は行数を指定ください。
スクリプト
function onOpen() {
SpreadsheetApp.getUi()
.createMenu('freeecsv')
.addItem('freeecsv', 'makecsv3')
.addToUi();
}
function makecsv3(){
var SS = SpreadsheetApp.getActiveSpreadsheet();
var csv_sheet = SS.getSheetByName("data");
//var fileName = csv_sheet.getRange(2,3,1,1).getValue();
var fileName = csv_sheet.getRange(2,3).getValue()+"_"+ csv_sheet.getRange(3,3).getValue();
var startrow = csv_sheet.getRange(3,7).getValue();
var endrow = csv_sheet.getRange(4,7).getValue();
var data= csv_sheet.getRange(startrow,2,endrow-startrow+1,16).getValues();
Logger.log(data);
var csv = data.join('\n');
Logger.log(csv);
var folderId = '1KLBrAd9DDgxYrBXgxxdXcS5Zu1Vcvi3-';
var contentType = 'text/csv';
var charset = 'UTF-8';
var folder = DriveApp.getFolderById(folderId);
var blob = Utilities.newBlob('', contentType, fileName).setDataFromString(csv, charset);
folder.createFile(blob);
}
前回の記事からそんなに変わっていません。範囲指定ぐらいです。
メニューからのスクリプトの起動も以前のご紹介です。
まとめ
GASのスキルとしては基本的なところの積み上げです。
結構大部分が関数で設計してますね。
伝票がスプレッドシートで実際に入力できましたので、次は会計ソフトを作ってみましょうか。
簿記の勉強にも使えるかもしれません。
今回のシートです。
https://drive.google.com/drive/u/0/folders/1KLBrAd9DDgxYrBXgxxdXcS5Zu1Vcvi3-
どんな記事ならサポートしてみようと思えるか、ご要望ありましたら教えてくださいね。