見出し画像

会計ソフトの伝票入力をスプレッドシートでおこなってしまおうという話【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-




どんな記事ならサポートしてみようと思えるか、ご要望ありましたら教えてくださいね。