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時間の制限)は、朝のうちに楽しんでいます。
「朝やっとけば、夜カービィできると思って」とのことです。
パパと同様、全力で遊び、全力で仕事(習い事)。
いいことです。
■著書
『税理士のためのプログラミング -ChatGPTで知識ゼロから始める本-』
『すべてをがんばりすぎなくてもいい!顧問先の満足度を高める税理士業務の見極め方』
ひとり税理士のギモンに答える128問128答
【インボイス対応版】ひとり社長の経理の基本
「繁忙期」でもやりたいことを諦めない! 税理士のための業務効率化マニュアル
ひとり税理士の自宅仕事術
リモート経理完全マニュアル――小さな会社にお金を残す87のノウハウ
ひとり税理士のセーフティネットとリスクマネジメント
税理士のためのRPA入門~一歩踏み出せば変えられる!業務効率化の方法~
やってはいけないExcel――「やってはいけない」がわかると「Excelの正解」がわかる
AI時代のひとり税理士
新版 そのまま使える 経理&会計のためのExcel入門
フリーランスとひとり社長のための 経理をエクセルでトコトン楽にする本
新版 ひとり社長の経理の基本
『ひとり税理士の仕事術』
『フリーランスのための一生仕事に困らない本』
【監修】十人十色の「ひとり税理士」という生き方