![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
画像を貼り付けたexcel ブックが何百個あります、印刷した時に画像が重くて、貼った画像が印刷できなかったりしますので、ブックに貼った画像を圧縮してブック保存することにしました。
excelブックを一つずつ開いて図を圧縮し保存するのが手間なので、マクロでできないかと、探してみたんですが、なかなか見つかれない。
ファイル開いて保存し閉じるマクロ見つけたんですが、画像の圧縮部分をどのように書けばいいのか
わからなくて、皆さんに助けを求め質問させていただきました。
excelに貼った画像枠の大きさはばらばらです、サイズを指定せずに、図形だけ圧縮、トリムしたいです。
マクロで圧縮トリムできるなら、画像の圧縮部分をどのように書けばいいのか教えてください。
よろしくお願いします。
下のマクロがファイル開いて保存し閉じるマクロです。
Private Sub CommandButton1_Click()
' フォルダ参照ダイアログを利用して、フォルダを特定する。
Dim folderName As Variant
Set folderName = CreateObject("Shell.Application") _
.BrowseForFolder( _
&O0 _
, "フォルダ選択" _
, &H1 + &H10 _
, "デスクトップ")
' フォルダが選択されたか否か判別する。
If folderName Is Nothing Then
MsgBox "中止します"
Exit Sub
End If
' 単純なループカウンタ
Dim lp1 As Long, lp2 As Long
' FileSystemObjectを作成する。
Dim Obj As Object
Set Obj = CreateObject("Scripting.FilesystemObject")
' 選択されたフォルダ配下に存在するファイル名を取出す為の変数
Dim fileName As String
Dim fileNames() As String
ReDim fileNames(0) As String
' 選択されたフォルダ配下に存在するファイル名を取出す
fileName = Dir(folderName.Self.Path & "\*.xls")
Do While fileName <> vbNullString
' ファイル名を配列に取込む。
ReDim Preserve fileNames(UBound(fileNames) + 1) As String
fileNames(UBound(fileNames)) = _
folderName.Self.Path & "\" & fileName
fileName = Dir()
Loop
' 全てのExcelファイルを順次開いて閉じる。
For lp1 = 1 To UBound(fileNames)
' 開いたファイルのブック名を取得する。
Dim bookName As String
bookName = Obj.GetFileName(fileNames(lp1))
' 開いたファイルの全シートを全て参照する。
For lp2 = 1 To Workbooks(bookName).Sheets.Count
' ***************
' 集計処理を行う
' ***************
Next
' 開いていたExcelファイルを保存して閉じる。
Workbooks(bookName).Close SaveChanges:=False
Next
' メモリを解放する。
Erase fileNames
' オブジェクトを破棄する。
Set Obj = Nothing
Set folderName = Nothing
End Sub
A 回答 (1件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
VBAが趣味ならもうちょっと頑張ってみればいいだけですが
お仕事のようですから、手作業でさっさとやってしまったほうがいいでしょう。
1時間に100ファイル処理すれば何時間かで終わります。
1日に1時間ほどやれば3日で300ファイル終わります。
<方法>
ファイルを10個ほど開いておき、以下を10回分繰り返します
ファイル⇒ オプション ⇒ 詳細設定
→ 解像度(150、96 などを選択) → 項目確認 → 上書き保存
回答ありがとうございました。確かに、手作業でやっても終わる仕事ですが、vbaでやりたくてがんばってみました。
理由はよくわかりませんが、”FileFormat:=xlExcel8 ”この文追加することで圧縮保存できました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) フォルダ内のワードファイルをPDFに一括変換するVBA 3 2023/06/09 16:51
- Visual Basic(VBA) 集めたシートのシート名を変更したい。 下記のコードでサブフォルダにあるファイルのSheet3を集めて 6 2022/08/23 10:38
- Excel(エクセル) Excelにて、フォルダ内のTextファイルをマクロで統合すると文字化けしてしまう時の解消コード 4 2023/01/01 07:32
- Visual Basic(VBA) 複数のcsvファイルをExcelに一括変換したい 2 2023/03/03 12:44
- Visual Basic(VBA) 貼り付けた値が消えていく 以下はソースファイルの2番目のシートのB6から最終行を取得 ターゲットファ 2 2023/07/27 12:23
- Visual Basic(VBA) VBAが止まります。 2 2022/09/02 14:02
- Visual Basic(VBA) 【前回の続き続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/24 20:49
- Visual Basic(VBA) サブフォルダ(データ)にある複数の.xlsxファイルのSheet3のA2セルの値で01から左側をB2 2 2022/08/14 15:46
- Visual Basic(VBA) 【ご教示ください】VBAの記述方法がわかりません。 2 2022/08/12 21:28
- Visual Basic(VBA) VBAのユーザーフォームのテキストボックスに入力制限をしたい 6 2022/11/15 08:28
このQ&Aを見た人はこんなQ&Aも見ています
-
プロが教える店舗&オフィスのセキュリティ対策術
中・小規模の店舗やオフィスのセキュリティセキュリティ対策について、プロにどう対策すべきか 何を注意すべきかを教えていただきました!
-
VBAで画像圧縮はできますか?
Visual Basic(VBA)
-
Excel マクロ 画像をリンクせずかつ圧縮して貼りつける方法を教えてください
Excel(エクセル)
-
エクセルマクロで図の圧縮を行うには
PowerPoint(パワーポイント)
-
-
4
エクセルに画像を貼付け縮小する作業をマクロにしたいのですが、
Excel(エクセル)
-
5
エクセルのシートに貼りつけたbmpをjpegに
その他(Microsoft Office)
-
6
VBAでエクセルのシート上の画像のリサイズと配置を行いたい
Excel(エクセル)
-
7
エクセルVBAで縦向きの画像の挿入・回転
Excel(エクセル)
-
8
VBA内でのGetPixelを使用した時のRGB値取得の方法
その他(プログラミング・Web制作)
-
9
VBAでJPGサイズ変更
Visual Basic(VBA)
-
10
【ExcelVBA】図の縮小貼付時のトラブル
その他(Microsoft Office)
-
11
VBAで、JPG写真の撮影日時を読み出す関数?
Excel(エクセル)
-
12
VBA 変数名に変数を使用したい。
Visual Basic(VBA)
-
13
エクセルのVBAでクリップボードにコピーした画像をpng(or jpg or bmp)保存したい
Visual Basic(VBA)
-
14
【VBA】写真の縦横比を変えずに貼り付ける
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
CSVファイルの特定行の削除
-
OneDrive必要なものでしょうか
-
彼女の過去の恋愛に嫉妬してし...
-
Googleドライブについて
-
[Unity]シーンファイルの中が消...
-
iTunesに再生回数が復活しない...
-
Excel: ファイル名になぜ、[...
-
EXCELVBAにて文字列にして「01...
-
HPビルダー未使用ファイルの...
-
シェルでテキストファイルを半...
-
スパイウェア?wbemtest.exe
-
添付ファイるが開けません
-
DVDの音楽のみをMP3形式で保存...
-
iTunesでの音楽ファイルの移動...
-
vbsからのExcelマクロ呼び出し...
-
パソコンのExcelファイルを、今...
-
エクセルの固定範囲にCSVを貼り...
-
VBでbasファイルのインポート、...
-
VBA ファイル一覧を取得して全...
-
ユーザーフォームをコピーする...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excelのマクロについて教えてく...
-
彼女の過去の恋愛に嫉妬してし...
-
CSVファイルの特定行の削除
-
vbsからのExcelマクロ呼び出し...
-
OneDrive必要なものでしょうか
-
Excel: ファイル名になぜ、[...
-
EXCELVBAにて文字列にして「01...
-
ファイルが移動してもリンクの...
-
docxをmht形式で保存したファイ...
-
複数のExcelファイルにある同名...
-
FTPのgetとputの使いわけ。
-
WINDOWS CMDからゴミ箱のファ...
-
iCloud for Windowsをアンイン...
-
エクセルのファイル:「自分」が...
-
[Unity]シーンファイルの中が消...
-
5000個のtiffファイルをpdfへ変...
-
VBAにおいて、ファイルの移...
-
Excelに貼り付けた画像を圧縮す...
-
自動で.xlsを閉じて指定フォル...
-
このファイルは外部のエディタ...
おすすめ情報