【Excel2013】マイクロソフト様お願いです。Excel2003の頃のシンプルに戻って下さい。

f:id:kisokoji:20170125185048j:plain

Excel2013と格闘している

ミッション

仕事で与えられたミッションは

「Excel2003をExcel2013で動かせるかを調査すること」

です。

私はExcel2013は初体験でしたでしょうか?

ま、年々、気持ち悪くなるアニメーション系の動きがまぁ重い重い。

内容も凄まじい感じで1シート中にリンクが10万セルあったりして。全部書き出すマクロで最初にintegerのオーバーフローエラーに引っかかり、次にExcel Row のMAXエラーに引っかかり・・・

Excelじゃなきゃって言うのはわかるけど、すごいねぇ〜。仕様書もないんだけど。

まず互換モードで保存からだわね。

互換モードで保存

まず、Excel2013を起動してExcel2003のファイルを開く。

が!

リンク先がないと「リンク先の更新しますか?」ってしつこい。

リンク先みつからないから、「更新しない」で一度開く。その後、「名前の定義」でリンク切れの箇所を見つける。

ブックの保護とかシートの保護とかを外す。

でも、Excel2013に上げる前のExcel2003ではなんでエラーになってないの?という疑問。ブックに対しての名前定義でリンク先にファイルないから、元のファイルから削除しちゃってから再度、読み込み。名前の定義以外にリンク管理からも削除しておかないと同じこと。

Excel2003とExcel2013だと場所が違うからまぁ大変。

名前の管理

Excel2003 : メニューバーの[挿入]→[名前]→[定義]

Excel2013 : 数式タブの[名前の管理]

それぞれで削除が出来る。

リンク管理

Excel2003 : [編集]→[リンクの設定]

Excel2013 : [データ]タブの[リンクの編集]

最終的にはここでリンクが切れてるのは削除できるし、リンク先を変更することが出来る。

互換モードで保存

普通に.xlsmで保存しても、.xlsmをオープンし直しても「互換モード」のままだったりする。

なので保存の方法も大切。

[ファイル]-[互換モード]で保存する。形式はマクロがついてるなら.xlsmにしないとダメだと思う。その前に、VBA側の設定を変更しておくといいかも。

普通に.xlsmで保存すると同じ場所に.xlamが出来ちゃう。

ブックの保護はしてるし、非表示シートがあるかららしいんだけど、その後が大変なんだよね。結局.xlamはアドイン形式ってことで、本来なら隠しフォルダ内にいればいいものなのに、そのまま保存して.xlsmを開いて保存すると、なぜか「.xlamを置き換えますか?」ってなる。

しかも

保存されているのはなんと.xlamの方だったりして、.xlsmを開いても変更がない。Excelのシートの更新なのに?

どういうこと!?

意味がわからないんだけど、いろんな拡張子で保存されても一般ピーポーに説明出来ないから、.xlsmだけにしたい。

ということでVBAのThis Workbookの[IsAddin]をFalseにしてみる。

保存

なんだ。出来るんじゃん。

.xlsmファイルだけになって更新されました。

あ、隠しフォルダ内に.xlamは入れておきましたけどね。

ということで、何がなんだかわかりませんが、検証終了ってことで。

そう、まだ「調査」なのだ。動かせるかどうかってことであれば

動かせる

ってことになるけど、9Mくらいのファイルだけど、起動がまぁ遅い。

2分ちょっとかかる。

こちらの原因はシート名に2バイト文字があるとxml形式にしているからいけないとかって。それは変更出来ないな。日本人だからな。

でもね、よくもまぁExcelで作り込んだわねぇって言いたい。すごいわ。