• ベストアンサー

Excelマクロのファイルサイズ

現在、Excelにて帳票を出すマクロを開発しています。 具体的にはCSVファイルを読み込み、ヘッダーから帳票の種別を確認し、その帳票にあった形で出す、といったマクロです。 で、本題なのですが、このマクロ自体が数年前からの改修、機能追加の嵐で、ファイルサイズが膨れあがっています。(現在4MByte強) たしかにFormも8枚、Basも16個、classが1つと結構な規模ではあるのですが、あまりにも大きくてセーブするだけでも一苦労です。 そこで質問です。 (1)ExcelマクロでもAccessの様にゴミ(?)がたまってファイルサイズが大きくなる事はあるのでしょうか? (2)上記、Yesの場合、小さくするようなメニューはありますか?ない場合、簡単に小さくする方法はありますか? 一つ一つインポート→エキスポートしかないですか? (3)1がNoの場合、何がファイルが大きくなる原因でしょうか?純粋に書いたコード(+Formの場合コントロールのプロパティ等) に比例するのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.2

こんにちは。 ここにこんなツールがあるようです。 http://homepage2.nifty.com/kmado/ksoft10.htm このツールは、昔から紹介をされているもので、それなりに定評あるそうですが、結局、オブジェクト自体の更新をしていけば、それは膨らんでいくでしょうね。純粋にデフォルトでない限りは、オブジェクト自体の更新というのは、何かを残して積み上げしていきますから、一旦、全てを消さない限りは、本当の意味の更新はされないようです。 ただし、最近、ようやく分かったのですが、「電子のゴミ」がたまるほうの話は、ちょっと別問題なのです。ワークブック全体のエラーの問題に発展しかねないのです。

teiou68k
質問者

お礼

情報、ありがとうございました。 そういったツールが存在するのですね。 私も手作業でやりながら面倒だなぁとは思っていたので。 このツールの購入も検討してみます。

teiou68k
質問者

補足

締めますので便宜上No2の方のところへ書きます。 No1の方の実験の結果をふまえ、手動にて1つ1つエクスポート→インポートを繰り返してみましたが、OCX?の関係でかエラーが出てうまく行きませんでした(T_T) そこでNo2の方の紹介して下さったツールを使ってみたところ、問題なく成功し、約3/4のファイルサイズになりました(^^) 他にもいろいろ使えそうな機能があるようなので、Project的には購入の方向で検討する事になりました。情報ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

回答No.1

以下のテストをしてみました。 13,824 バイト ファイル(Book1)を新規作成(初期状態) 19,968 バイト Book1に新規フォームを作成 20,480 バイト フォームにボタンを4個作成 19,968 バイト フォームからボタンを4個抹消 16,896 バイト フォームを開放した(初期状態) なぜか、フォームを開放しても、初期状態とファイルサイズが異なっています。 VB同様に、モジュール事態はアスキーだけど、EXCELのバイナリのファイルに含まれて保存されているモジュールなので、管理しているEXCELが膨らむようですね。 だから(1)の通りで、(2)の方法がベストだと思います。 (3)については推測です。 モジュールはアスキーで、それをEXCELファイルの中に埋め込んでいると思うので、記述やオブジェクトの数は影響すると思います。 プロパティについては、デフォルトプロパティ以外を設定すると、領域に保存されると思いますので、膨らむと思います(EXCELがVBと同じ管理方法ならですが) 一番無駄な領域を取っているのは、これらのモジュールを管理するEXCEL本体のファイルだと思うので、ファイルの追加/開放は慎重に行った方がいいかもしれません。

teiou68k
質問者

お礼

金曜にお礼を書いたつもりが・・・(消えてる?勘違い) 私の方で実験すれば良かったですね。反省。 1050YENさんのご意見をふまえて面倒ですが、全てのモジュールをエクスポートしました。 今後は新しいファイルを作る事をふまえて検討していきます。ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • エクセルマクロ

    エクセルマクロファイルをインポート、エクスポートする動きをマクロ化することはできますか?ブック保存サイズをマクロファイルの出し入れを使って小さくしたいと考えています。シロート考えですがお願いします。

  • EXCELのマクロでワードファイルを開きたい

    いつもお世話になります。初心者ですのでよろしくお願いします。 WORDで50種類くらいの帳票を作成しました。一つのファイルに50ページあるのではなくて、50のファイルに一つずつ帳票を作成しました。また、EXCELでこれらの帳票の目次を作成しました。これは1枚のシートに50の帳票のタイトルが一覧表となっています。このエクセルの目次シートから必要なタイトルを選択するとそれに該当する帳票のワードファイルが開くようにしたいのですが、マクロでなんとかなりませんでしょうか? EXCEL2000、WORD2000を使用しています。補足、お礼は明日になりますが、よろしくお願いします。 わかりづらい説明で申し訳ありません。

  • エクセルのマクロを使ったファイルが他のPCで動きません。

    マクロ超初心者です。 マクロは自動記録で登録しました。 40個くらいのマクロを自動記録して、 それを連続して実行できるようにしました。 自分のPCでは問題なく作動します。 そのエクセルファイルをメール添付で友人に送りました。 ところが友人のPCではエラーになり実行できません。 「実行時エラー1004 runメソッドは失敗しました。applicationオブジェクト」 と表示されるそうです。 個々のマクロを単独で実行しても出来ません。 そこで送ったファイルと同じファイルのマクロを全てエクスポートして そのファイルを友人に送り、それをインポートしてもらいました。 Visual Basic Editorで確認してもらうとそのファイルはインポートされたようですが、上記のエラーになります。 マクロのファイルは「module1.bas」のような標準モジュールです。 どうすればマクロを実行できるようになりますか? 初心者でも分かるような回答をよろしくお願いいたします。

  • Excel:VBAに関して

    バグがある標準モジュール(.bas)がぶら下がっていて、それをバグ修正したモジュールに切り替えたいのです。バグあるモジュールをエクスポートして、新規に改修したモジュールをインポートすれば良いのでしょうが、本数が多くて困ってます。 複数のExcelファイルを対象に、モジュールの入れ替えを行うのに何か良い案はありますでしょうか? Excel VBAでできれば良いのでしょうが、、マクロでそんなことできませんよね・・・?

  • excelマクロでファイルのサイズ判定して開きたい

    指定したファイルのサイズが50kb以上の場合のみ開くというマクロを作りたいのですが、どうやってファイルのサイズを取得するのかわかりません。どなたか分かる方教えてください。

  • マクロファイルの利用について

    CDつきのエクセルの本を買ってきました。 CDからマクロが書かれたファイルを開きました。 VBEからそのマクロをデスクトップにエクスポートしました。 clsという拡張子がついています。(読むことはできません) このマクロを新規のエクセルファイルに貼り付けCDにあるのと同じファイルを自分で作ってみたいのですが、このようなことはできるのでしょうか。 できるとすれば、マクロファイルをエクセルの新規ファイルへのインポートの仕方とその後の使い方などをご指導いただきたいのですが、よろしくお願いいたします。

  • エクセルで個人用マクロの配布方法

    このたびわたしが作成した業務用の簡単なマクロを社内の他部門(遠隔地)の10名ほどのかたがたにメールで配布して使っていただくことになりました。 自分では個人用マクロブックに登録し、任意のエクセルのシートに対して使用していたものです。 一応そのマクロだけをエクスポートしてModule1.basというファイルは作ったのですが、これまでマクロそのものを配布したことがないので送った先の人にどうインポート方法を説明したらよいのかわかりません。多分マクロはよく知らないひとたちのはずです。 いい説明方法があれば教えてください。

  • 個人用マクロブックにマクロをインポートする方法

    エクセル2010でマクロを作成し、Visual Basicの画面でそれをエクスポートして保存すると、Module1.basというような名前のファイルができます。 それを他のPCの個人用マクロブックに入れたいのですが、デフォルトの状態であれば Visual Basicの画面でプロジェクトエクスプローラを見ても個人用マクロブックの領域が できておりません。 どのようにすれば、他のPCの個人用マクロブックに保存することが可能なのか、ご教授 願います。

  • Excelマクロのエクスポート方法

    Excelマクロをエクスポートする時 数が多いと毎回ファイルのエクスポートを選択するのが大変です。 自動的にエクスポートする方法はありますでしょうか?

  • エクセルのマクロを使って

    エクセルのマクロを使って複数のセルの文字をそれぞれファイル名にし一括エクスポートする手順を教えてください。 ちなみにテキストの中身は空でOKです。 お忙しいところすいません、よろしくお願いします。

このQ&Aのポイント
  • 純正インクのICBK61とICBK50の互換性について調べました。答えは以下の通りです。
  • 純正インクのICBK61とICBK50は互換性がありません。PX-503AにはICBK61を使用する必要があります。
  • ICBK50を誤って購入してしまった場合は、返品してICBK61を購入してください。
回答を見る