Excelブック(*.xls)の全シートをカンマ区切りファイル(*.csv)に変換する & この機能をコンテキストメニューに追加する ツール

これは何をするものか

xlsファイル(Excelブックファイル)の右クリックメニューに「CSVファイルに変換」を追加します。 このメニュー項目を実行すると、xlsファイルと同じ場所に出力用のフォルダが自動作成され、 その下へブック中のシートをすべてcsvファイルに変換して出力します。いわゆる、一発変換ツールです。 メニューからの実行以外にも、D&Dでの変換やコマンドラインからの使用などもできます。

ファイルリスト

xls2csv.js変換スクリプト
readme.htmlこのファイル

xls2csv.js がこのツールのすべてです。

簡単な使い方

ドラッグ & ドロップ

xlsファイル(Excelブックファイル)を xls2csv.js の上にドロップすると確認のダイアログが表示され、 OKを押すと変換が実行されます。 xlsファイルと同じ場所に "xlsファイル名.xls2csv" という名前のフォルダが自動作成され、 その中に変換後のCSVファイルが入ります。

コンテキストメニューへの追加

xls2csv.js をダブルクリックすると セットアップ プログラム の ダイアログ が表示されます。 そこで [ はい ] をクリックするとメニュー追加プログラムが進行します。 このときいくつかのオプションを選択できますが、毎回Enterを押していればデフォルト設定でセットアップできます。 最後の確認 (Step 5 / 5) に [ はい ] と答えると、xlsファイルのコンテキストメニューに「CSVファイルに変換」が追加されます。 以後は、xlsファイルを右クリックして「CSVファイルに変換」を選択するだけでCSVファイルが作れます。

セットアップ後は xls2csv.js の移動や xls2csv.js の入っているフォルダの名前変更などはできません(そんなことをすると動作に問題が生じます)。 よって、メニューへの追加を実行する前に xls2csv.js の置き場所を熟慮してください。

コンテキストメニューからの削除

xls2csv.js をダブルクリックすると セットアップ プログラム の ダイアログ が表示されます。 そこで [ いいえ ] をクリックして削除プログラムを実行してください。

補足

xls2csv.js の置き場所にとくに制限はありません。どこにあってもすべての機能が動作します。 (ただしスクリプトの実行権限がない場合はこの限りではありません。)

動作条件

このツールはMicrosoft Excelがインストールされた日本語版Windows用です。 Excelがインストールされていないマシンでは動きません。 (加えて、Windows Script Host が動作する必要があります。これについては備考をお読みください。) とりあえず、Windows 2000 以降 + Excel 2000以降をお使いであれば問題ないと思われます。

ライセンス

このツールのこのバージョンは Public Domain Software です。


以降のドキュメントは中級者以上向けです。

機能の詳細

ログ出力

このツールはCSVファイルの出力先と同じフォルダに xls2csv.log というログファイルを作成します。 これには変換のログが書き込まれます(シートとCSVファイルの対応など)。 ログファイルはオプション指定で出力しないようにもできます。

オプション

xls2csv.js はいくつかコマンドラインオプションが実装されています。

/Browse
CSVファイルの出力先フォルダを選択するダイアログが表示されます。 このオプションを使用した場合、選択したフォルダにCSVファイルが書き出され、 フォルダの自動生成はされません。このオプションを使用しなければ、 xlsファイルと同じフォルダに出力用フォルダが自動生成されます。
/NoLog
CSVファイル出力フォルダにログファイルを書き出さないようにします。
/NoConfirm
変換実行前の確認をしないようにします。
/NoReport
変換終了後のレポートを表示しないようにします。
/Help
簡易なオプションの用法一覧が表示されます。/H または /? でも表示されます。
/Version
変換スクリプトのバージョンが表示されます。
/Setup
xlsファイルのコンテキストメニューへ変換項目の追加を行います。/Install も同様です。
/Unsetup
xlsファイルのコンテキストメニューから変換項目の削除を行います。/Uninstall も同様です。

WScript と CScript

xls2csv.js は WScript と CScript のどちらでも動作します。 セットアップも両方で可能です。 CScript の場合、各種確認はコマンドライン入力になります。 CScript では /Browse は使えません。

コンテキストメニューへの追加では WScript を使用するようにセットアップされます。 気に入らない方は自分でレジストリを書き換えてください(CScript にしても動くはずです)。

バッチモード

xls2csv.js の変換機能はバッチモードでも動作します。バッチモードでは /Browse は使えません。 確認やレポートも表示されません。

バッチモードでのセットアップ(メニューへの追加・削除)はできないようになっています。

ショートカット、SendTo

xls2csv.js へのショートカットを作れば、ショートカットへのD&Dでも動きます。 また、ショートカットや本体をSendToに入れても動作します。 しかし、これらの方法ではオプションは指定できません。

複数ファイルの一括変換

複数ファイルの一括変換には現バージョンでは対応していません。 複数を選択してドロップした場合やSendToへ送った場合などは最初のファイルだけが変換されます。

xls 以外のファイル形式

実は、xls以外のファイル形式であっても、インストールされているExcelが読み込めるものであれば すべてCSVファイルへ変換可能です。どのようなCSVファイルが作られるかはExcel次第です。

備考

ファイルの操作について

このツールは既存のファイルやフォルダの上書き、削除、移動、名前の変更などは一切行わないように配慮されています。 したがって、変換出力の過程でファイルがすでに存在する場合はすべてエラーになって操作が中断されます。 ファイルやフォルダの存在確認はScripting.FileSystemObjectのFileExists、FolderExistsメソッドで行っています。

動作確認とバージョン

正常動作の確認は、Microsoft Excel 2000, Microsoft Excel XP 2003 それぞれがインストールされた Microsoft Windows XP SP2 にて行ったのみです。 よって、このツールはWSHを利用するスクリプトですが、WSHはバージョン5.6でしか確認を行っていません。 バージョン1.0などでは正常に動かないように思います(試してはいません)。 XP以外のOSをお使いで上手くいかないという方はWSHをバージョンアップしてください、無料ですから。
MSDN > Windows Script

変換のしくみ

このツールはExcelのActiveXオブジェクトを利用してxlsファイルを変換します。 つまり他力本願です。Excelブックのフォーマットを解析しているわけではありません。 そういうことですので、Excelがインストールされていない環境ではこのツールは無意味です。 Excelを持っていないのにxlsファイルを送りつけられて困っている人の助けにはなりません。

編集するレジストリキー

コンテキストメニューへの追加機能にて、HKCR \ [.xlsに関連づけられているExcel.Sheetタイプ] \ shell の下に xls2csv というキーを追加します。メニューへの追加機能以外ではレジストリの編集はしません。


readme.html for xls2csv.js
version 2.00d