
年間の経理データを1つのブックで処理しています。
ブックには複数のファイルがあり、なおかつ1シート内にも12ケ月分のデータをいれています。毎月入力時に該当月のシートか該当範囲だけを表示させるようにマクロを使っています。業務上どうしてもファイルを分割することはできません。(1ヶ月過ぎると入力不可で表示のみ選択できるなどもしています。)
シートの表示、非表示やセルの保護、非保護、またリンクなどいろいろしていますが、このファイルを軽量化する方法はないでしょうか?
今は3MGくらいですが、容量が大きくなってしまう主な原因はなんでしょうか?
マクロの工夫例があれば教えてください!
No.1ベストアンサー
- 回答日時:
>業務上どうしてもファイルを分割することはできません
という前提がどうにも理解できないのですが。
直接リンクを張ってもいいですし、VBAが使えるならファイルネームさえ変更されなかったら、どうにでも参照はできますよ(名前が変更されたとしても何とかできないことはないですし)。
>シートの表示、非表示やセルの保護、非保護
この辺の部分はファイルのサイズとは全く関係がない部分です。表示上見えなくしているのと実データが無いというのは大きな違いがあります。
2LDKの部屋だけど扉にカーテンをかけて完全に隠しているので家に来る人はみんな1DKと勘違いするんですよっていう例があったとしても、その部屋の坪面積や家賃の評価が下がるわけでもなく、最初から1DKの部屋とは大きな違いがあります。
データ容量を小さくしたいのなら、入力したり、データの確認をするインターフェース部分と実データが入っている部分をブック単位で完全に切り分けてしまうことです。さらにその実データも例えば月単位で分けるとか。
マクロの工夫はあくまでも処理速度などが上がるとかそういう意味で使われます。こういう仕様上の問題は設計レベルの問題です。
早速ありがとうございます。マクロで工夫ということではないのですね。
約40社関連会社にそのファイル送付し、毎月入力して送り返してもらっています。数値情報なので前月データを一部使用して当月分を入力したるチェックしたりもしています。マクロでのエラーチェックもしています。
エラーチェックをするためのファイルや、データ保存のファイル、メールのやりとりをするファイルなどを分けるほうがよいのでしょうかねぇ。
ファイルの圧縮では、何か「保護」されてると圧縮があまりできないとか聞いたこともあったんですが。これは質問とは関係ないですが。
No.4
- 回答日時:
>今は3MGくらいですが、容量が大きくなってしまう主な原因はなんでしょうか?
3MG-->3M?これは、あなたの感覚から言って、
「このデータ量なら、これぐらいのファイルサイズは妥当だ」
と言える大きさなのでしょうか?
感覚と大きく異なるのでしたら、EXCELがデータの最終セルを誤認識している可能性があります。次をお試し下さい。
1. [Ctrl]+[G]で[ジャンプ]ウインドウが開きます
2. [セル選択]クリック
3. [最後のセル]-[OK]クリック
これで、ちゃんとデータの最終行にジャンプしたらOKです。しかし、全然思いがけないセルにジャンプした場合、EXCELがデータの最終セルを誤認識しています。
不要な空データを保持しているわけですから、ファイルサイズが無駄に肥大する結果となります。この件については、MSのWEBサイトに技術情報があります。
これに該当する場合には、データの最終行からジャンプで飛んだ「最終セル」まで削除します。
情報ありがとうございます。
ファイルを確認してみます。
今回のケースではないのですが、データ量が少ないのにやたらサイズが大きいファイルがあって、再作成したことがあるのですが、きっと教えていただいたことが原因のようですね。参考になりました。ありがとうございます。
(お礼が遅くなり失礼いたしました。)
No.3
- 回答日時:
お礼文見ました。
そういう事情ならやはり設計レベルで仕様を変えないことにはそのうち破綻するんじゃないんですかね(単純にファイルサイズがメールサーバーの容量を越えてしまう)。まぁメールではなくてFTPサーバーでも立ち上げてそこでやり取りすれば問題ないでしょうが。
あとファイルの圧縮は別に関係ないですよ。例え暗号化されているファイルだろうが圧縮しても問題ありません。だから圧縮することにより20%ぐらいまでのサイズにはなるでしょうから、破綻は当分先だとは思いますが。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルVBA 2千万行のCSVファ...
-
VBA バイナリ―から文字列にす...
-
EXCEL VBAでテキストファイルの...
-
FTPを使わないファイルアップロ...
-
Microsoft VBAで2GBを超えるフ...
-
ページ読み込み時に自動的にsub...
-
バッファとは何ですか
-
デバイスファイルに書き込むこと
-
BMP画像の画像データ本体をテキ...
-
ADボードプログラムC++
-
DXFファイル用クラスライブラリ...
-
EOF
-
どんなプログラムを書いても指...
-
C言語初心者の質問失礼します。
-
Access クエリ実行が急に非常に...
-
ファイル名の先頭にアンダース...
-
vba ActiveSheet.pasteを使った...
-
VB.NETで他のプロジェクトで作...
-
他の.CPPファイルに定義した関...
-
フルパスから最後のディレクト...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
バッファとは何ですか
-
Microsoft VBAで2GBを超えるフ...
-
エラー:ストリームの終わりを...
-
ページ読み込み時に自動的にsub...
-
VBA バイナリ―から文字列にす...
-
EOF
-
入力ファイルをバイナリにする利点
-
EXCEL VBAでテキストファイルの...
-
【python】Excelファイルを読み...
-
MacからWinにファイルを添付す...
-
関数の容量を知るには?
-
= (イコール)で始まるセルの値...
-
EXCEL VBAで、バイナリデータの...
-
BMP画像の画像データ本体をテキ...
-
VC++2010でmecabを使いたい
-
C言語とシリアル通信の送受信...
-
ファイルをダウンロードして展...
-
バイナリーデータの一部データ...
-
wave形式(*.wav)のフォーマット...
-
デバイスファイルに書き込むこと
おすすめ情報