2013年4月10日水曜日

Office 互換機能パックでxlsxファイルが開けない。

Office 互換機能パックで xlsx ファイルを開こうとすると「表示形式を追加できません。」や「セルの書式が多すぎるため、書式を追加できません」が表示される。




Excel 2000 や 2003 で xlsx 形式のファイルを開く場合は 「Word/Excel/PowerPoint 用 Microsoft Office 互換機能パック 」を使用することが多いと思います。このとき「スタイル数が 4,000 を超えた xlsx ファイル」を開こうとするとこのようなエラーが発生します。

Excel スタイルの上限数は、Excel 97-2003 では 4,000 個までですが、Excel 2007 以降では上限数が 64,000 個までとなっています。したがってスタイル数が 4,000 を超えた xlsx ファイルは、Excel 2007 以降で開くことができますが、それ以前の Excel 2000 や 2003 では開くことができないので、このようなエラーが発生します。



気付かないうちに増加するスタイル

Excelのスタイルとは「表示形式」、「配置」、「フォント」、「罫線」、「パターン」、「保護」等の、一連の書式設定をひとまとめにして名前を付けたものです。また、2 つ以上のセルが全く同じ書式を共有する場合は 1 つのスタイルが使用され、それぞれの書式設定に相違がある場合は各セルが異なるスタイルを使用します。

スタイルは、ブック内のシートコピーや、ブック間のコピーを行うときに一緒にコピーされます。そのため、シートを繰り返しコピーしながら使用している場合などは、気づかないうちにスタイルがかなりの数に増えてしまうことがあります。

例えばこんな使い方の場合です。現在使用中のシートをコピーして、次に使用するための新しいシートを作り、そのブックを次に使用する名前で保存する。このような操作を毎回繰り返す使い方です。例を挙げると、日報、週報、月報、集計表などです。このような例では、同じ体裁のシートを繰り返しコピーしながら使用していることがよくあると思います。ところがその結果、気付かないうちにスタイルが増加してしまうことになります。(このような場合はテンプレートを利用するのが得策かもしれません。)



スタイルを削除して xlsx ファイルを開けるようにする

通常の使い方で 4,000 以上のスタイルを使い分けることは先ず無いでしょう。増加したスタイルのほとんどは Excel が勝手にコピーしたもので、ユーザー自身は未使用のものだと思われます。

そこで、増加したスタイルをマクロで一括削除といきたいところですが。そもそも xlsx ファイルを開くために「Office互換機能パック」を使っているユーザーは、問題が起きている xlsx ファイルを開くことができません。したがって、マクロを使ってスタイルの削除を行うことができません。このような場合の便利なツールが XLStylesTool です。



XLStylesTool

このツールは「Office Open XML ファイル形式」のワークブック(xlsx 形式ファイル)から、すべての未使用のスタイルを取り除いてくれます。未使用のスタイルとは、ワークブックに定義されているが、どのセルにも使用されていないスタイルです。

ダウンロードは配布元のサイトから

.NET4.0 version of the XLStylesTool is now available | XLGeek's space:
https://sergeig888.wordpress.com/2011/03/21/net4-0-version-of-the-xlstylestool-is-now-available/

追記: March 4, 2016

Windows 8 以降は Windows App Store 版を使用します。

XLStylesTool – Microsoft ストアの Windows アプリ:
https://www.microsoft.com/ja-jp/store/apps/xlstylestool/9wzdncrfjptg


実行環境

インストールの必要はありません。ダウンロードしたファイルを展開後に実行するだけです。

実行環境ごとにいくつかのバージョンが用意されています。

  • XLCleanerDotNET4.0

    XLCleanerDotNET4.0 の実行には、Microsoft .NET Framework 4 Client Profile が必要です。(Microsoft .NET Framework 4 が入っていれば OK です。)

  • XLCleaner

    XLCleaner の実行には、Microsoft .NET Framework 3.5 Client Profile が必要です。(Microsoft .NET Framework 3.5 が入っていればOKです。)

他にもいくつかのバージョンがありますが、どちらも実行環境の違いだけのようです。今回 XLCleaner と XLCleanerDotNET4.0 をそれぞれ WindowsXP SP3 で試してみましたが、どれも同じように動作しました。



オプションの説明

実行ウィンドウにはいくつかのオプションがあります。通常はすべてチェックをつけて使用するとうまくいきます。

  • Force all cell styles to "Nomal"

    すべてのセルスタイルを強制的に「標準」にする。このオプションは、セルスタイルのプロパティを'標準'にリセットするだけで、既に適用済みのスタイル設定は変更しません。

  • Remove named ranges that contain references to external sources

    外部ソースへの参照を含む名前付きセル範囲を削除する。このオプションは、不正な名前付きセル範囲(#REF を参照する名前付きセル範囲)を全て取り除きます。

  • Unhide hidden named ranges (valid system generated names will remain hidden)

    非表示の名前付きセル範囲を再表示する。 (有効なシステム生成名は非表示のままです。)



使い方

注意!処理対象のファイルは上書きされます。大事なファイルはあらかじめバックアップを取るなどしておきましょう。

  1. XLCleaner を実行。
  2. Get Excel Fileボタンを押して処理対象の xlsx ファイルを指定。
  3. オプションの、全てのチェックボックスを選択。
  4. Process Fileボタンを押して処理を実行。(処理は数秒で完了します)
  5. xlsx ファイルに関連付けされている Microsoft Open XML Converter が起動して変換されたブックが Excel で表示されます。

オプションの Commit changes and open in Excel.(変更をコミットしてExcelで開く)を選択しないと処理が反映されませんので注意してください。

処理済みの xlsx ファイルは Microsoft Open XML Converter で今までどおりに開くことができます。



実行中のウィンドウ



処理前のスタイル数

スタイル設定を調べるマクロを使ってカウントしてみました。このファイルでは 40,962 個のスタイルが登録されていました。



処理後のスタイル数

未使用スタイルの削除処理後は、組み込みスタイルだけが残りました。このスタイルは Excel にはじめから登録されているものです。今回のケースでは 40,962 - 48 = 40,914 個の未使用スタイルが増加していたことになります。

このように、スタイルが増加して開けなくなった xlsx 形式のファイルを XLStylesTool ツールで処理することで、Excel 2000 や Excel 2003 で開くことができるようになります。



スタイルの多い xlsx ファイルを LibreOffice で開いてみる

LibreOffice calc は xlsx 形式のファイルを開くことが可能です。現在の最新版 LibreOffice 4.0.2.2 calc を使って上記の同じファイル bia13.xlsx を開いてみました。

ThinkPad T40 PentiumM 1.3MHz でファイルを開くまでの所要時間を計測しました。処理前の xlsx ファイルは開くまでの時間は 590 秒 でしたが、処理後の xlsx ファイルでは 64 秒で開くことができました。

処理前の xlsx ファイルの場合では PC がフリーズしたのかと思うくらい時間がかかりました。LibreOffice calc もスタイルの多いファイルは苦手のようです。

xlsx ファイルの関連付けを LibreOffice calc に変更すると、XLCleaner の処理完了後に LibreOffice calc で開くことができました。



参考:マイクロソフト・サポート技術情報
Excel で "別のセルの書式が多すぎます。" エラー メッセージが表示される

XLGeek, Thank you for the awesome tool.

2013年4月4日木曜日

Firefox20.0 がリリースされました。

ダウンロード
http://www.mozilla.jp/firefox/download/
リリースノート
http://www.mozilla.jp/firefox/20.0/releasenotes/

リリースノートによると、今回の更新では

  • プライベートブラウジング機能が改良され、ウィンドウ毎にプライベートブラウジングが可能になりました。

    プライベートウィンドウを開く場合、次の2通りの方法があります。

    新しい空白のプライベートウィンドウを開く場合。
    ファイル・メニューから新しいプライベートウィンドウを選択します。

    リンクを新しいプライベートウィンドウで開く場合。
    右クリックメニューからリンクを新しいプライベートウィンドウで開くを選択します。

    プライベートブラウジング中のウインドウには、紫色のプライベートブラウジングマスクが表示されます。



  • ダウンロードマネージャが刷新されて、ツールバーにダウンロードパネルが組み込まれました



  • Web開発メニューに「開発ツールを表示」メニューが追加されました。

    新しい開発ツールはウィンドウ表示が可能になりました。



  • リリースノートには「新しい JavaScript プロファイラツールを搭載しました。」と書かれていますが、実際のところまだ搭載されていないようです。(このブログの書き込みによると。)開発段階で問題があったようです。