none
EXCEL 2016以降の圧縮方法について RRS feed

  • 質問

  • EXCEL 2007以降は保存時に圧縮されるように変わりました。この圧縮方法は2013までは同一であったことが分かっていますが、2016以降で変わっています。どこがどのように変わったのか、御存じの方がいたらお教え下さい。

    現在VBAプロジェクトを外部から参照できないようにするプロテクトツールを利用していますが、2013まで動作していたものが2016以降処理の途中で、エラーとなってしまいます。

    このツールは、EXCELの従来のプロテクト方法と異なり、旧来の解除方法では解除できないものです。

    EXCLではパスワードによるプロテクトしか開示されておらず、この解除方法も古くから開示されていて、社内のシステムなどであっても折角作成したEXCELのツールが、悪意のある改竄をされてしまい、当初の目的を達成できなくなるなどの問題がありました。

    この問題を解決したのが、このプロテクトツールなので、2016以降にも利用可能にさせてあげたいと考えています。

    圧縮・解凍の手順や範囲が変わったと思われますので、そのあたりの詳細が分かれば、VBAのプロテクトツールも改修できると思いか確認させて頂きました。

    宜しくお願い致します。

    2020年4月8日 8:38

すべての返信

  • 仕様としてはZIP圧縮するとしかないはずですので、2016がどうこうではないように思います。

    改竄対策や暗号化であれば、旧来のパスワードだけでなく、IRM; Information Rights Managementとか用意されていますね。

    2020年4月8日 10:59
  • 圧縮といているのは Excel ワークブックファイル (*.xls?) のことでしょうか。
    これらのファイルは OpenXML という規格に沿った仕様で作られており、中身は
    XML ファイルなどを特定の構造に配置して ZIP 形式で圧縮したものになっています。
    (ブック自体をパスワード保護したものを除く)

    仕様のバージョンアップ等はあっても基本的な部分は 2013 でも 2016 でも変わっていません。

    また、VBA プロジェクトはその中でも vbaProject.bin というバイナリファイルに
    含まれているので簡単に外部から書き換えることはできないと思います。

    また、VBA から直接、 VBA プロジェクトにアクセスしたりするためのオブジェクトである
    VBE オブジェクトは環境ごとにオプションで許可しないと使えないのですが、どのような方法での
    改ざんを想定しているのでしょうか。
    また、どうやってプロテクト (?) していたのですか。

    2020年4月10日 5:32