レビュー

ExcelのCSVインポート・エクスポート機能を強化する「Excel CSV I/O」

数値を文字列として扱い、文字コードや区切り文字の指定も可能

「Excel CSV I/O」v1.1

 「Excel CSV I/O」は、CSVファイルのインポート・エクスポート機能を強化するExcel用アドイン。標準のインポート・エクスポート機能で気になる数値の扱いや、文字コードの問題などを改善した処理が可能になる。Excel 2007/2010/2013に対応するフリーソフトで、作者のWebサイトからダウンロード可能だ。

 そもそもMS-DOS時代から存在するCSV形式は、『,(カンマ)』区切りでデータを管理するシンプルな仕組みのため、多様な場面で使われてきた。古いデータをインポートする場面や、古い実装で組まれたアプリケーションにデータをエクスポートする場面など、現在でもCSV形式を使う場面は少なくない。だが、ExcelでCSVファイルを開く際、数値のみのレコードは『"(ダブルクォート)』で囲んでいても、数値として扱われるのがネックとなる場合がある。

 例えば『001』というレコードは『1』と扱われてしまい、後からセルの分類を“文字列”に変更しても内容は『1』に変更されたままとなり、期待通りにCSVファイルを読み込むことができない。また、Excelが出力するCSV形式の文字コードはShift-JISに固定されているため、そのままJavaScriptなどサーバーサイドスクリプトから参照させる場合、文字コードの変換処理が必要となってしまう。

Excel 2013からCSVファイルを出力し、テキストエディターで開いた状態。カンマをもつレコードはダブルクォートで囲まれ、文字コードはShift-JISに固定される

 ExcelでCSV形式を扱う場合にはいずれも大きな問題となるが、これらを改善し、CSV形式の扱いを簡単にするのが「Excel CSV I/O」だ。インストールすることでリボンに[CSV I/O]タブが追加され、ここから作業を行える。

エクスポートダイアログからは、出力範囲や区切り文字、文字コードなど各種設定が変更できる

 まずはエクスポート機能から確認しよう。リボンの[エクスポート]ボタンをクリックすると、専用のダイアログが現れる。あとは区切り文字や文字コードなどの設定を選択して、エクスポートを実行するだけだ。興味深いのは出力するセルの範囲を設定できる点。“選択したセル領域”を選ぶことで、選択したセル領域のみをCSV形式として出力することが可能だ。そのほかオプションとして、項目をダブルクォーテーションで囲むかどうかを指定できる。

 また、区切り文字としてカンマやタブ以外の文字も指定できるため、区切り文字としてスペースや『;(セミコロン)』を扱う形式などにも対応できる。文字コードや改行コードもダイアログにあるものから選択可能。文字コードは少ない印象も覚えるが、通常の利用範囲であれば、Shift-JISのほかにEUC-JPやUTF-8があれば十分だろう。

こちらは“項目をダブルクォーテーションで囲む”チェックを外し、文字コードを“UTF-8”として指定したCSV形式ファイルをテキストエディターで開いたもの
インポートダイアログも基本的な構成は同じだが、数値を文字列として扱うオプションが用意されている
文字列として扱うことで『001』といった先頭にゼロを含む数値も正しく認識される

 インポート機能も同じようにダイアログから設定を行う方式だ。こちらは区切り文字や改行コード、文字コードの指定のほかに、“新規シートにインポートする”および“数値も全て文字列として扱う”という2つのオプションが用意されている。

 前者は文字どおりシートの処理だが、注目は後者。数字だけのレコードをダブルクォートで囲っても、Excel標準の機能では正しく読み込まれないのは前述した通りだが、「Excel CSV I/O」はセルを文字列として扱うことでこの問題を解決している。

 Excelの設定によってはエラーの警告が表示されてしまうが、こちらはExcelのオプションから“エラーチェックルール”を開き、“文字列形式の数値、またはアポストロフィで始まる数値”のチェックを外せば表示されない。

 アドインとしては極めてシンプルな「Excel CSV I/O」だが、他の環境とデータ連係を行うためにCSV形式を利用している方には欠かせないアドインとなるのではないだろうか。

ソフトウェア情報

「Excel CSV I/O」
【著作権者】
fnya 氏
【対応OS】
(編集部にてWindows 8.1で動作確認)
【ソフト種別】
フリーソフト
【バージョン】
1.1(12/03/05)