Excelで会計データを変換し、弥生会計形式CSVで保存するマクロ

  • URLをコピーしました!

Excelでデータを変換して、CSVで保存する工程を繰り返すなら、マクロがおすすめです。

※Excelとマクロの画面 by FUJIFILM X-E4+50mmF2

Excelでデータ変換→CSV保存する流れ

Excelでこういったデータがあるとします。
経理でつくる会計データです。
Excelで入力するならこういったシンプルな形式ですみます。
金額も1箇所でかまいません。

たとえば、これをこういった形式に変換すれば、会計ソフト(今回の事例は弥生会計)に取り込むことができます。
この形式でExcelに入力する必要はありません。

この変換を手作業でやると大変です。
変換後は、Excel形式ではなく、CSVとして保存する必要があります。

それを毎月、毎年しているとそれなりの時間を失うでしょう。
マクロで効率化しましょう。

Excelでデータ変換→CSV保存するマクロ

こういったマクロを書きます。

 

Sub import()


'■データをリセット
    Worksheets("kaikei").Rows("3:" &  Worksheets("kaikei").Rows.Count).Delete
    
'■データ数をカウント
    Dim Max_row
    Max_row = Worksheets("data").Range("a" & Worksheets("data").Rows.Count).End(xlUp).Row

'■変換データの2行目をコピー
    Worksheets("kaikei").Range("a2", "y2").Copy Worksheets("kaikei").Range("a3", "y" & Max_row)
    
'■すべての変換データをコピー
    Worksheets("kaikei").Range("a2", "y" & Max_row).Copy
    
'■新しいブックを開く
    Workbooks.Add
    
'■変換データを値のみ貼り付け
    Range("a1").PasteSpecial Paste:=xlPasteValues

'■D列の書式を「yyyy/mm/dd」に
    Columns("d").NumberFormatLocal = "yyyy/mm/dd"
    
'■import.csvという名称で、ファイルを保存
    Application.DisplayAlerts = False
    
        ActiveWorkbook.SaveAs Filename:=ThisWorkbook.Path & "\import.csv", FileFormat:=xlCSV, local:=True
    
        ActiveWorkbook.Close
    
    Application.DisplayAlerts = True
    
    
End Sub

まず、下ごしらえとして、元のデータ(data)から変換後のデータ(kaikei)をつくります。
一番上の行(2行目)だけでかまいません。
この2行目を全体にコピーして、データをつくっていきます。
数式を入力して連動しましょう。
固定の部分は数値や文字を入れます。

今回の事例は、消費税免税のケースです。
消費税課税の場合は、さらなる処理が必要です。

次に、データをいったんリセットします。
繰り返しこのマクロを使うためです。
前に処理したものが残っているとエラーやミスとなります。
3行目以降を削除する処理を入れましょう。

'■データをリセット
    Worksheets("kaikei").Rows("3:" &  Worksheets("kaikei").Rows.Count).Delete

 

次に、変換前のデータ(data)の数を数えます。
この数だけ、2行目をコピーするのです。
ここでは、10となります。

   
'■データ数をカウント
    Dim Max_row
    Max_row = Worksheets("data").Range("a" & Worksheets("data").Rows.Count).End(xlUp).Row


 

この2行目を変換前のデータ数(10)だけコピーします。

'■変換データの2行目をコピー
    Worksheets("kaikei").Range("a2", "y2").Copy  Worksheets("kaikei").Range("a3", "y" & Max_row)
   

 

 

さらにこの全体をコピーして、

 

    
'■すべての変換データをコピー
    Worksheets("kaikei").Range("a2", "y" & Max_row).Copy
    

新しいブックを開き、値のみ貼り付けます。
そのまま貼り付けると数式のエラーが出るからです。

 

'■新しいブックを開く
    Workbooks.Add
    
'■変換データを値のみ貼り付け
    Range("a1").PasteSpecial Paste:=xlPasteValues

値のみ貼り付けると、日付欄も値になるので(日付はExcel上では、5桁の数値で処理されています)、この書式を会計データに合わせて変更します。

'■D列の書式を「yyyy/mm/dd」に
    Columns("d").NumberFormatLocal = "yyyy/mm/dd"
    

最後にこのデータに名前をつけて、CSVファイルとして保存し、閉じます。
弥生会計の場合は、CSV(カンマ区切り)という形式です。
クラウド会計ソフトだと、CSV UTF-8(カンマ区切り)を使いましょう。

'■import.csvという名称で、ファイルを保存
    Application.DisplayAlerts = False
    
        ActiveWorkbook.SaveAs Filename:=ThisWorkbook.Path & "\import.csv", FileFormat:=xlCSV, local:=True
    
        ActiveWorkbook.Close
    
    Application.DisplayAlerts = True
    
    

 

このマクロがあれば、データがいくら増えてもそのデータを数えて、瞬時に処理できます。
ショートカットキーですばやく操作しても、私はこのマクロにはかないません。

こういった繰り返す仕事は、マクロがおすすめです。

繰り返す仕事は、数式・関数かマクロ

毎日はもちろん、毎月、毎年繰り返す仕事は、ITに任せましょう。
Excelの数式や関数ですむこともあります。
ただ、今回のケースのように、「データを数える」「CSVで保存する」というのはマクロでしか効率化できません。
本気で効率化をするなら、マクロ、プログラミングは欠かせないものです。

このCSVファイルを会計ソフトに取り込む(インポート)なら、マクロではできません。
PythonかRPAが必要となります。

RPA(UiPath)でExcelから弥生会計へ。入力 or CSVインポート。

私はなんだかんだRPAを立ち上げるのがめんどくさくて、サクッと操作して取り込むことが多いです。
Excelマクロは、Excelを使っていれば、新たに立ち上げなくていいのがメリットといえます。

なぜExcelを会計ソフトに取り込むのか。
Excelに入力したほうが速いからです。
(テンキーで速く入力できる方もいらっしゃるかもしれませんが)
会計ソフトに効率化を求めてはいけません。

データをExcelで変換→取り込むという流れをつくっておけば、
・Excelに入力→変換→取り込む
・CSVデータでダウンロードまたはエクスポート→Excelで変換→取り込む
・お客様からExcelで受け取る→変換→取り込む
といったことができます。

その流れをマクロでつくっておきましょう。

 

 



■編集後記
昨日は、ひさしぶりに田町のスタバへ。
書店と一緒になっていて、本も読めます。
その後プール→水族館に。
水族館は撮影も兼ねて。
この時期はやはり多めです。
イルカショーの隙に、いろいろ回りました。

1日1新Kindle『1日1新』Instagram『1日1新』
Nikon 14-24mmF2.8でアクアパーク品川
ブレッドワークス

■娘(5歳)日記→Kindle『娘日記』・ Kindle『娘日記Ⅱ』
保育園後は、ご飯を食べて風呂に入って、ゲーム(カービィをパパと)、ダンス・ピアノの練習、余力があれば、Netflix。
昨日は、魔法使いプリキュアの映画の続きをブルーレイで。
ここまでを21時までに終え、絵本を読んで寝ます。
なかなかハード。
自分のタブレットFire (1時間の制限)は、朝のうちに楽しんでいます。
「朝やっとけば、夜カービィできると思って」とのことです。

パパと同様、全力で遊び、全力で仕事(習い事)。
いいことです。

  • URLをコピーしました!