質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Q&A

解決済

2回答

640閲覧

エクセルVBAのワークシートコピーについて

Tetsuya3456

総合スコア22

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

0グッド

1クリップ

投稿2018/07/02 04:46

編集2018/07/03 04:40

こんにちは。

800KBあるエクセルファイルのサイズを減らそうと思い、新しいブックを作り、そこに800KBのエクセルシートをコピーすると、200KB以下になりました。

同様の操作をVBAの「WorkSheets.copy」で行ったのですが、コピー先のファイルのサイズはコピー元と同じく、800KBのままです。
「WorkSheets.copy」は、手動で行うワークシートのコピーとは違って、別の余分なものもコピーしているのでしょうか?
大量にデータをサイズダウンしたいので、困っています。

追記
バージョンはエクセル2013で、元データのファイル形式は、.xlsxです。

名前の定義は確認しておりませんでした。
会社にて確認出来次第、ご報告いたします。
ありがとうございます!

追記
先ほど確認しましたら、元データに大量の非表示のシートがありました。

手動の場合は表示されているシートのみ移動、マクロの場合は
「Worksheets.Copy」で非表示のシートまで全てコピーしていたため、容量に差が出てしまったということでした。

大変失礼いたしましたm(_ _)m

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

sysjojo

2018/07/02 05:03

Excelのバージョンやファイルの形式を書かれるとよいかと。もしかして、ですが手作業コピーのブックとマクロコピーのブックって、名前の定義(Ctrl+F3)が違ってませんかね?(後者は覚えのない定義がたくさん入ってる)
guest

回答2

0

マクロコピーしたブックに不要な名前定義がたくさん残っているようであれば、シートコピーした後、名前定義もマクロで消しちゃえばよいかと。
ツールもあるっぽいですし。

投稿2018/07/02 23:34

編集2018/07/02 23:37
sysjojo

総合スコア325

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

例えば、シート上に図形がいっぱいあったりしますか?

その状態で行削除とかすると図形が見えなくなると思いますが、
単につぶれて線みたいになって残ってますので、
こういうのが残ってたら、シート毎コピーしたのと、
セルをコピーしたのとでファイルの大きさが変わってきます。
あと、セルの書式設定とかも、個々のセルで個々に設定すると、
ファイルが大きくなります。
こういうのは、まとめて出来るところはまとめて設定してやると、
容量が抑えられます。(列とか行とか)
なので、新しいブックに値だけコピペしたら軽くはなると思いますが、
それだと不便だと思うので、ネット上でフリーのツールを探して、
みたらいいと思います。
あと、そういうものの導入が難しいなら、コツとかがネットにたくさん
情報が転がっていると思いますので、探してみてはいかがでしょうか?

投稿2018/07/02 05:30

mattuwan

総合スコア2136

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Tetsuya3456

2018/07/02 22:18 編集

ご回答頂きありがとうございます。 シート上には図は特になく、文字入力のみです。 他の方が作った約50個程度のエクセルファイルをサイズダウンする必要がありました。 新規ブックに容量の大きなエクセルデータのシートを手動でコピーしサイズダウンできたので、マクロでも「Worksheets.copy」を使って、同様のことを行いました。 マクロで行ったワークシートコピーだと、元データのシートがコピーされた新規ブックのサイズは、元データと同様のサイズだったので、手動のシートコピーとマクロのシートコピーでは何が違うのかと思った次第です。 他にもサイズダウンの方法はありますが、まずは手動で行った新規ブックに元データのワークシートをコピーしてサイズダウンする方法をマクロでもできたらと思います。
mattuwan

2018/07/02 23:25

手動でやっても、マクロでやっても同じ操作は同じ操作です。 何かを勘違いしているのでしょう。 マクロの記録をして、今一度確かめてみてください。 あぁ、名前の定義やスタイルとかが大量にたまってる場合もありますね。 自作してもいいですけど、フリーのツールを使う方が気が楽でいいですけどね。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問