CSVファイルをADOで扱う
皆さんこんにちは、HiroCom777です。僕は最近仕事でCSVファイルを使うことが多くなりました。Excelファイルなどと違って機能が少ない分シンプルで取り扱いが楽です。
同時にCSVファイルをめぐっては、色々なトラブルを見ることがあります。代表的なのはExcelで開いたときにデータが意図せず変換されてしまうというもの。対策としてはテキストエディターを使用して開く、またExcelではPower Queryを使って開く等が紹介されていますが、どれもちょっとめんどくさいです。
ADOを使ってみては?
僕は、以下でExcelファイルをデータベースとして使用する方法の連載記事をブログで書いています。 hirocom777.hatenadiary.org データベースというとOffice製品ではAccessが一般的ですが、実はExcelだけでも簡単なデータベースシステムならば構築することができるのです。SQLを使ったデータの絞り込みなどもできます。これは、ADODB.Connectionオブジェクト(以下、ADO。Excelに標準で搭載されている)をExcelに組み込むことでデータベースファイルにアクセスする機能を組み込むことで実現しています。この連載の一番最後に、ExcelファイルCSVファイルに置き換えた例をご紹介しています。 hirocom777.hatenadiary.org そう、ADOはCSVファイルも操作することができるんです。CSVファイルがデータベースになるんですよ。ADO、ちょっととっつきにくいのですが、この方法でCSVファイルを扱うことが出来れば以下のような効果があります。
高速に開くことができる
データベースですので速いです。大きなファイルでもかなり高速に扱うことができます。
文字化けなどのトラブルを避ける方法がある
CSVファイルをExcelで開いた際に、発生する文字化けのトラブルを回避する方法があります。開いた結果をExcelのシートに表示することもできます。
データベースの機能が使える
これが大きいのですが、SQLを使って複雑なデータ処理ができます。
どうですか?確かにADOは最初のとっかかりが難しいのですが、それを越えてしまえば便利この上ないものです。この連載では、ExcelとADOを使って簡単に、正確に、そして便利に使う事を追求していきたいと思います。
簡単なツール
今回は簡単なツール(マクロ入りのExcelファイル)を用意してみました。
01_ADOでCSVを扱う.zip - Google ドライブ
ダウンロードして解凍後に"CSV_ReaderADO***.xlsm"をマクロを有効にした形で開いてみてください。表示画面の”ファイル指定”ボタンを押すとファイル選択のダイアログが表示されますので任意のCSVファイルを選択してみましょう。
どうでしょうか、CSVファイルの内容が表示された新しいExcelファイルが表示されたと思います。意外と簡単に開けましたよね。このツールにはあらかじめADOが組み込まれています。
さて、開いた結果をよく見ていただきたいです。勿論開いたCSVファイルにもよるのですが、一部のデータは表記が変換されてしまっていると思います。実はCSVファイルの作り方次第で、この文字化けも防げるんです。
ツールの解説とポイント
と、言う訳で次回はこのツールの内容を解説しようと思います。お楽しみに!!