新品互換用パソコン バッテリー、ACアダプタ、ご安心購入!
ノートpcバッテリーの専門店



人気の検索: ADP-18TB | TPC-BA50| FR463

容量 電圧 製品一覧

スペシャル

ゼロからはじめてみる日本語プログラミング「なでしこ」 第50回 月々のカード明細CSVを一つにまとめるプログラムを作ろう

最近は銀行やクレジットカードの明細がCSV形式で手軽にダウンロードできるようになっています。確定申告や年度末の経理のために、これらのデータを活用している方も多いことでしょう。そこで、月々のCSVファイルを一つに結合するプログラムを作ってみましょう。

○PDFとCSVの違いは?

最近ではクレジットカードの明細は、郵送されることが少なくなっており、Webにログインして確認するものが主流となっています。こうしたWebサービスでは、月々の明細をダウンロードして活用できるようになっています。また、銀行のWebサイトでも同様にダウンロードできるので、経理作業の簡易化に役立ちます。

さて、そうした明細データですが、多くは、PDF形式かCSV形式でダウンロードできるようになっています。多くのサービスでは選べるようになっています。PDFは印刷用、CSVは表計算用と大雑把に把握している方も多いことでしょう。

それで、経理作業に活用できるのは、CSV形式の方です。PDFだとデータを読み取ったり、加工したりするのが難しいからです。しかも、CSV形式は汎用性が高く、自作のプログラムからも容易に処理できるのが良いところです。

○Excelで開けるけどそもそもCSVって何なの?

パソコンの設定にもよりますが、ダウンロードしたCSVファイルは、Excelと関連づけられていて、都城は、ダブルクリックでExcelが起動するようになっていることでしょう。そのため、Excelファイルの一つと思っている人もいるかもしれません。本連載では、何度かCSVファイルについて紹介していますが、ここでは、改めてCSVファイルについて紹介します。

CSVファイルが汎用的なのは、基本的に普通のテキストファイルに、単純な規則でデータが記述されているところによります。つまり、普通にメモ帳などで開いて人間が読むことができます。

実際にCSVファイルをテキストエディタで開いて見てみると分かるのですが、行(横方向)が改行で区切られた一つのデータであり、列(縦方向)はカンマ「,」で区切られたデータとなっています。CSVファイルが汎用的と言われているのは、この簡易さのためです。そのため、一言で表すなら、CSV形式とは「改行とカンマで表現する二次元のデータ」と言えるでしょう。

ただし、CSVファイルの処理では、しばしば問題になるのが、文字エンコーディング(文字コード)の問題です。Excelで正しくCSV形式を開くために、多くの金融系Webサービスでは、Shift_JISでデータを出力します。最近では、Webに関連するデータは、UTF-8であることが増えてきました。そのため、サービスによっては、Shift_JISではなく、UTF-8でファイルが出力されていることもあります。文字化けしたと思ったら、文字エンコーディングの設定を疑ってみましょう。場合によっては、テキストエディタで開いて、出力コードをShift_JISに変更すると問題が解決することもあります。

○PC版のなでしこ3について

ちなみに、なでしこはもともと事務処理を自動化するために作られています。そのため、CSVファイルの処理は得意分野の一つです。本連載では、基本的にWebブラウザで実行できるなでしこ3の使い方を紹介していますが、今回は、PC版を利用してみます。PC版のなでしこ3はこちらからダウンロードできます。

さて、なでしこ3のPC版をインストールしたら、プログラムを動かしてみましょう。

なお、今回のプログラムは、macOS版とWindows版のなでしこの3.0.68で動くことを確認しています。

○複数CSVを一つに結合するプログラムを作ろう

今回作成するプログラムは、月ごとに分割されたCSVファイルを一つのCSVファイルに結合するプログラムです。

最初に、デスクトップに「csv」というフォルダを作り、その中に複数のCSVフィルをコピーしておきましょう。ちなみに、サンプルのCSVデータがこちらからダウンロードできます。

そして、Windowsなら「nakopad.vbs」を起動すると、なでしこエディタが起動するので、下記のプログラムをコピーして、なでしこエディタに貼り付けたら、最初にファイルを保存してください。プログラムを貼り付けて実行ボタンをクリックします。(macOSならTerminalを起動して「npm run nako3edit」とタイプします。するとWebブラウザが起動し、「新規作成」をクリックして表示されるエディタにプログラムを記述します。)