見えないシェイプ(図形)で肥大化したファイルをなんとかするMS修正を依頼されたExcelファイルが10MB近くあったので、画像が大量にはりつけられているのかと思ったら、そうでもない。みても、1MBにもならないような内容。不要な名前定義*1も疑いましたが、これが多少あったところでせいぜい1MB。9MBも肥大したりしないはずです。残るは、「見えない」シェイプ(図形)が大量に埋め込まれているという可能性。見えないシェイプは、次のように埋め込まれます。行削除したとき、その行に「サイズも変更する」プロパティになっているシェイプが含まれていると、高さゼロのシェイプが消えずに残る。高さゼロのシェイプは、通常は見えない。矢印で選択したりすると見える。普通の人は気づかない。気づかないまま、行のコピーで複製され、気づかぬうちにファイルサイズが大きくなる。見えなくても大量にシェイプがあるシートは重いので、それで気づく人は気づきます。99.99%不要と思われる高さゼロのテキストボックスが10,000超見つかりました。それも、1シートに付き10,000。数えてませんが、全部で40,000くらいあったかも知れません。消したら、300KBくらいになりました。今回はパターンが単純だったので、手動で済みました。見えないシェイプが何処にあるかがはっきりしないような場合は、マクロでやってしまうと良いでしょう。いうわけで、事後でしたが、VBAマクロを書いてみました。幅か高さの閾(しきい)値より小さいもの、を「見えない」シェイプとして検出します。最初に数を数えて、見つかった場合は「パターンを赤くしてサイズを大きくする」かどうかを確認して、OKすると、見つかった見えないシェイプを、見えるように「パターンを赤くしてサイズを大きく」します。MsgBox("見えない図形を数えます。"見えない図形はありませんでした。"(数によっては処理時間がかかります。Function*1:メニュー:挿入-名前-定義とたどると「名前の定義」が見られます。名前の定義が大量に含まれたファイルをコピーして流用したりすると、不要な名前の定義が「感染」していきます。これを削除するマクロもあるのですが、私が作ったものではないのでここでは公表できません。見えないシェイプ(図形)で肥大化したファイルをなんとかするTweet広告を非表示にする関連記事2017-08-21ExcelVBAで同じ名前のシートを1つのファイルにまとめるマクロまただいぶ間が空いてしまいました。文字列switchのからくり遅れ馳せ乍ら、Java7について自分なりにまとめてみます。久々にどう書く?orgに挑戦。(2)プロフィールid:argiusはてなブログをはじめよう!argiusさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。