• ベストアンサー
  • 困ってます

エクセルのファイルサイズ

  • 質問No.1690437
  • 閲覧数271
  • ありがとう数7
  • 回答数6

お礼率 37% (189/500)

エクセルで画像を貼ったファイルを作りました。
貼った画像は10枚ほどで
いずれも10~100kバイトほどの画像で合計で500kもありません。
ところがファイルを保存するとサイズが3Mにもなってしまいました。
会社の規則で3M以上のファイルはメールで送らずサーバに上げることになっているのですが
出来ればメールで送れるサイズにしたいです。

画像ファイル自体をリサイズして合計を200kほどにしても出来上がったエクセルファイルのサイズはわずかに減った程度でした。

また、新規作成したファイルに同じ画像ファイルを貼り付けて保存したところちゃんと500k強のファイルになりました。
しかし、その新規ファイルから画像をコピーしてもとのファイルへ貼り付けて保存するとやはり3Mのファイルになってしまいます。

いったいどうしたらよいのでしょうか?

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

  • 回答No.6
  • ベストアンサー

ベストアンサー率 62% (785/1258)

こんにちは。KenKen_SP です。

下記のようなマクロを走らせて、一度シートのクリーンアップを
してみてはどうですか?

残すオブジェクト(画像とかシェープとかボタン)を選択し、
マクロを実行すると、非選択のオブジェクトを削除します。

編集の過程で何らかの理由で「表示されていない、しかしデータ
としてはブック内に残っている」オブジェクトが発生することが
あります。

これらのゴミデータが、ブックのファイルサイズ肥大化の原因に
なっている場合があります。


【手順】

※注意 VBA による操作はやり直しができませんので、必ずバック
    アップしてから次の操作を行って下さい。

1. 単独で新規ブックを作成し、アクティブにする
2. [Alt]+[F11]キー押下で Visual Basic Editor(以下 VBE )
  を起動
3. VBE メニューから[挿入]-[標準モジュール]をクリック
4. 3. で開いたスペースに下記コードをコピー&ペースト
5. VBE を閉じる
6. 1. のブックを開いたまま、今回の処理対象となるブックを
  開いてアクティブにする
7. マクロを実行

'以下コード

Sub シート内の不要オブジェクト削除()

  Dim Obj     As Object
  Dim i      As Long
  Dim aryObjName() As String
  Dim Flag     As Boolean
  
  If TypeName(Selection) = "Range" Then Exit Sub

  '選択されたオブジェクト名を取得
  i = 0
  ReDim aryObjName(Selection.ShapeRange.Count - 1)
  If Selection.ShapeRange.Count = 1 Then
    aryObjName(0) = Selection.Name
  Else
    For Each Obj In Selection
      aryObjName(i) = Obj.Name
      i = i + 1
    Next Obj
    i = i - 1
  End If
  ReDim Preserve aryObjName(i)

  '不要なオブジェクトを削除
  For Each Obj In ActiveSheet.DrawingObjects
    Flag = False
    For i = 0 To UBound(aryObjName)
      If Obj.Name = aryObjName(i) Then
        Flag = True
      End If
    Next i
    If Flag = False Then
      Obj.Delete
    End If
  Next Obj

  Set Obj = Nothing

End Sub

その他の回答 (全5件)

  • 回答No.5

ベストアンサー率 26% (96/362)

No.2です。
「上書き保存」ではなく時々「別名で保存」をすると
無駄の無いスリムなデータになる、
とパソ雑誌に書いていました
  • 回答No.4

ベストアンサー率 57% (3570/6233)

こんばんは。

>別段ファイルサイズが100Mだろうが200Mだろうが関係ないんです>社内メールなので
>ただ、規則で3M以下との制限があるんです。

私個人の受信の話から。私は、1M以上のメールの受信は、ダウンロードしませんね。リモートサーバーにしてしまいます。ただ、私個人は、あくまでも、1M以上は、どこかのストレージ・サーバーを使ってほしいと思っています。

つまり、こういう話は、送信側の問題ではなくて、受信側のテクニックの問題だと思います。もちろん、相手が了解の上なのですが、ExcelやWordは、ZIPやLha圧縮にすれば、半分以下になってしまうでしょう。

以前は、こういうExcelのファイルなどは、圧縮するのが常識的だったような気がします。Excelファイルは、意外に弱いもので、送信している最中に壊れてしまうことがありました。

受け取り側が、展開の方法が分らない場合は、自己展開にすればよいのですね。CAB圧縮になりますが、インストーラを付けてもよいと思います。アンチウィルスの洗礼は受けますが、ウィルス入りでなければ大丈夫だと思います。

他の方法では、旧式ですが、ファイルをバイナリ分割してしまう方法です。どちらかというと、マニアックな方法ですが、受信側の人がつなげるのです。

後、Excelの、余計なシートは削除することですね。ある程度、ファイルサイズが小さくなることがあります。まあ、他にも思いつくことはありますが、とりあえず、こんなところにします。
  • 回答No.3

ベストアンサー率 25% (46/178)

宅ファイル便を使えばメール(実際にはDL)できますよ。
アドレスを参考にしてください
お礼コメント
erara

お礼率 37% (189/500)

コメントありがとうございます。
メールで送ること自体は可能なんです。
別段ファイルサイズが100Mだろうが200Mだろうが関係ないんです>社内メールなので
ただ、規則で3M以下との制限があるんです。
実際80Mほどのファイルならメールで送ったことあります>怒られましたけど…涙
投稿日時:2005/10/03 23:44
  • 回答No.2

ベストアンサー率 26% (96/362)

多分、、、
インデザインデータは、編集を繰り返すとだんだん大きくなります。
これは、アイテムを編集で削除しても、中の情報が完全には消えないためです。
お礼コメント
erara

お礼率 37% (189/500)

コメントありがとうございます。
解決方法はないということですね?残念です。
投稿日時:2005/10/03 23:41
  • 回答No.1

ベストアンサー率 45% (1388/3066)

挿入-図-ファイルからで、画像を取り込んだらどうなりますか?
お礼コメント
erara

お礼率 37% (189/500)

コメントありがとうございます。
現在、そのように取り込んでいます。
投稿日時:2005/10/03 23:41
関連するQ&A

その他の関連するQ&Aをキーワードで探す

ピックアップ

ページ先頭へ