あるデータベースからエクスポートした4MB位のCSVをエクセルで集計しています。
エクセルにCSVを取り込むと、エクセルBook自体が4MB位になり(当然です)、
取り込んだシートから複数の集計を別シートで作成していくと、
最終的に保存したBookのファイルサイズが20MB越えそうです。
それでこんな事はできないでしょうか?
CSVファイル自体はWindows標準のzip圧縮すると500KB位になりました。
Excelブックを開いた時に、マクロボタンを押すなどして、zip圧縮されたままの
CSVデータを、例えばCSVという名前のシートに取り込むことはできないでしょうか?
そして、紐づいた各シートで集計がされると。(グラフやピボットテーブル等とリンク)
Excelブックを閉じるときにCSVシートを自動的にクリアして終了と。
これができれば、最低限のサイズのExcelブックとzip化したCSVを保管しておけば
良い事になるという机上の空論なのですが、、、
簡単なサンプルマクロでもあると助かります。
A 回答 (4件)
- 最新から表示
- 回答順に表示
No.4
- 回答日時:
圧縮されたまま、という言葉通りに受け取ったらできません。
しかし、zipファイルのまま、という部分だけで考えればできます。
できますが、zipファイルから対象のCSVファイルをTempディレクトリなどで解凍する必要があります。
そのため、都度実行するのに相応の時間もかかることになります。
それを比較してもメリットがあるならそうすればいいかと思います。
しかしそういう問題ではないと思います。
集計にそれが必要なら別に20MBになっても何の問題もないかと思います。
1ファイルで20MBになるのが嫌なら4MBのファイルを5つ用意して、集計用のファイルからブック参照で情報を集計すればいいかと思います。
また、後戻りが利くなら、エクスポートする段階で、集計されたデータをエクスポートすればいいかと思います。
No.3
- 回答日時:
こんにちは
>保管しておけば良い事になるという机上の空論なのですが、、
残念ながら「机上の空論」です。
そのCSVデータが、常に参照する必要があるようなものなら、あきらめて独立のエクセルファイルなどにしておくのが宜しいかと。
ご質問の様に毎回、解凍して読み込むような処理をしていると、No1様がご指摘のように悲しい結末になろうかと。
「ある処理」をするときにだけ参照すれば良いような類のデータであるなら、その処理の時だけシートに読み込んで処理が終わったら、そのシートは削除してから保存するような考え方もあるでしょう。
実行時のメモリ消費も押さえたいというのであれば、CSVを一気に展開せずに、テキストファイルとして1行ずつ(あるいは数行?)読み込みながら処理をしてゆくという方法も考えられます。
シークエンシャルに処理できるような内容でないと難しいかも知れませんが。
結局のところ、処理の内容と頻度などから、方法を判断するのが良いのではないでしょうか。
No.2
- 回答日時:
元がデータベースならそこにExcelを繋げられないの?(エクスポート自体をなくす)
若しくはSQLiteなどの軽量化データベースにCSVデータを放り込んで、それとExcelを接続する。
なんて詳しくない人間の戯言ですけどね。
No.1
- 回答日時:
できないから。
それ。できたとしても、ZIP圧縮してもデータとして取り出す時にはテキストに置き換わるので圧縮は解除される。
むしろ圧縮ファイルを展開する手間がかかるだけと言う悲しい結果になるよ。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) CSVファイルでVBAを動かす方法 3 2023/04/04 10:22
- Excel(エクセル) PowerQueryに詳しい方教えてください(Office365) 1 2022/07/24 21:11
- Excel(エクセル) 【困っています】VBA 追加処理の記述を教えてください。 1 2022/08/25 22:54
- Visual Basic(VBA) VBAで出力したCSVファイルの先頭にカンマを挿入したい 5 2022/10/14 12:20
- Visual Basic(VBA) 複数csvを横に追加していくマクロについて 2 2023/04/25 09:19
- Visual Basic(VBA) vbaマクロについて 【シート2】をもとに【シート1】に有るものを「有り.csv」としてデスクトップ 3 2023/05/07 22:30
- Excel(エクセル) Excel Powerクエリーの質問、行数指定は可能でしょうか? 2 2022/08/22 12:54
- Excel(エクセル) PowerQueryで行数の指定はできますか? 2 2022/08/26 11:13
- Excel(エクセル) 【マクロ】同じフォルダ内にある複数ブックから1つのブック内の1シートにデータを集めたい 6 2022/09/28 18:16
- Visual Basic(VBA) マクロVBA 1シートをまとめる 閉じ方 初心者 SOS! 1 2022/06/17 14:54
このQ&Aを見た人はこんなQ&Aも見ています
-
「環境が人を育てる」って本当?環境によって人格や生き方は本当に変わるのか
環境が人生に与える影響は実際どれほどのものなのか、専門家の田宮由美さんに伺った。
-
[VBA]標準機能のみでパス付zipファイルの解凍
Excel(エクセル)
-
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
VBAのzip解凍についてのご質問です
Visual Basic(VBA)
-
-
4
【Excel VBA】Windowsの標準機能のみでExcelファイルをZIPファイルに圧縮する方法
Excel(エクセル)
-
5
EXCEL VBAで全選択範囲の解除
Excel(エクセル)
-
6
VBA 変数名に変数を使用したい。
Visual Basic(VBA)
-
7
【Excel VBA】CSV取込時、数字の先頭の0を消えないようにするには?
Excel(エクセル)
-
8
vba 時間の引き算 例えば 15:00から16:15の間の時間は1時間15分ですが、vbaのコード
Visual Basic(VBA)
-
9
バックグラウンドのプロセスのエクセルを閉じる方法
Visual Basic(VBA)
-
10
ユーザーフォームを表示中にシートの操作をさせるには
Excel(エクセル)
-
11
特定のシートのみ再計算させない方法は?
Excel(エクセル)
-
12
【Excel VBA】ネットワーク上の共有フォルダにあるExcelを開く
Excel(エクセル)
-
13
ワイルドカードを使ってでフォルダを削除
Windows 10
-
14
Excelでセルをクリックするたびに表示を切り替えるには?
Excel(エクセル)
-
15
VBA:ユーザーフォームのマルチページに色を付けたい。
Word(ワード)
-
16
Excel VBAでCheckboxの名前を変数にとって値を調べたい
Visual Basic(VBA)
-
17
メッセージボックスの選択ボタンのテキストを変更したい
Visual Basic(VBA)
-
18
VBA(エクセル)で自動的にボタンをクリックさせるには
その他(プログラミング・Web制作)
-
19
Zipファイルをエクセルに指定変更の方法
システム
-
20
split関数で区切り文字がない場合
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBA シートをコピーする際に Co...
-
Excelのマクロについて教えてく...
-
VBA 別ブックからコピペしたい...
-
エクセルVBAが途中で止まります
-
ワイルドカード「*」を使うとう...
-
VBS Bookを閉じるコード
-
vbaでvbaProjectのパスワード解...
-
Excelのマクロについて教えてく...
-
別ブックをダイアログボックス...
-
Excelのマクロについて教えてく...
-
vbaで他のブックに転記したい。...
-
VBA コードを実行すると画面が...
-
【ExcelVBA】zip圧縮されたCSV...
-
VBAで複数のブックを開かずに処...
-
VBAで別のブックにシートをコピ...
-
VBA 実行時エラー 2147024893
-
[Excel]ADODBでNull変換されて...
-
Excel2007VBAファイルの表示に...
-
Excelのマクロについて教えてく...
-
【マクロ】アクティブセルにブ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBA シートをコピーする際に Co...
-
エクセルVBAが途中で止まります
-
ワイルドカード「*」を使うとう...
-
別ブックをダイアログボックス...
-
(マクロ)データをAブックからB...
-
VBS Bookを閉じるコード
-
VBA 別ブックからコピペしたい...
-
VBA 複数のエクセルから一つの...
-
VBA シート名が一致した場合の...
-
【ExcelVBA】インデックスが有...
-
エクセルのマクロについて教え...
-
エクセルのマクロについて教え...
-
vbaでvbaProjectのパスワード解...
-
VBAで別ブックのシートを指定し...
-
【ExcelVBA】zip圧縮されたCSV...
-
VBA コードを実行すると画面が...
-
【VBA】全シートの計算式を全て...
-
複数のエクセルブックをひとつ...
-
VBA 実行時エラー 2147024893
-
ExcelのVBAです。フォルダ内の...
おすすめ情報