
画像を貼り付けた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も見ています
-
好きな人を振り向かせるためにしたこと
大好きな人と会話のきっかけを少しでも作りたい、意識してもらいたい…! 振り向かせるためにどんなことをしたことがありますか?
-
人生最悪の忘れ物
今までの人生での「最悪の忘れ物」を教えてください。 私の「最悪の忘れ物」は「財布」です。
-
最強の防寒、あったか術を教えてください!
とっても寒がりなのですが、冬に皆さんがされている最強の防寒、あったか術が知りたいです!
-
コーピングについて教えてください
皆さんはストレスを感じたとき、どのような方法や手段、テクニックで対処していますか?
-
14歳の自分に衝撃の事実を告げてください
タイムマシンで14歳の自分のところに現れた未来のあなた。 衝撃的な事実を告げて自分に驚かせるとしたら何を告げますか?
-
Excel マクロ 画像をリンクせずかつ圧縮して貼りつける方法を教えてください
Excel(エクセル)
-
VBAで画像圧縮はできますか?
Visual Basic(VBA)
-
エクセルマクロで図の圧縮を行うには
PowerPoint(パワーポイント)
-
-
4
エクセルのVBAでクリップボードにコピーした画像をpng(or jpg or bmp)保存したい
Visual Basic(VBA)
-
5
VBAでセルを指定した画像のコピー&ペーストを繰り返したい
Excel(エクセル)
-
6
【VBA】写真の縦横比を変えずに貼り付ける
Visual Basic(VBA)
-
7
VBAでJPGサイズ変更
Visual Basic(VBA)
-
8
エクセルに画像を貼付け縮小する作業をマクロにしたいのですが、
Excel(エクセル)
-
9
エクセルマクロでシート内にある画像のみを選択する
Excel(エクセル)
-
10
エクセルのシートに貼りつけたbmpをjpegに
その他(Microsoft Office)
-
11
エクセル(2013)VBA-図の縦横比を変えずにセルにおさまる最大限の大きさにする
Excel(エクセル)
-
12
エクセルvbaでの図形のカット(コピー)ペーストについて
Excel(エクセル)
-
13
エクセルVBAで、条件に一致するセルへ移動
Excel(エクセル)
-
14
2-メチルプロパン
化学
-
15
画像を削除したい(VBA)
Word(ワード)
-
16
【ExcelVBA】図の縮小貼付時のトラブル
その他(Microsoft Office)
-
17
インテリア関係のお仕事について
家具・インテリア
-
18
VBAエクセルに貼り付けた画像をセルにあった大きさにしたい(等倍)
Excel(エクセル)
-
19
無線LAN、接続がすぐ切れる
Wi-Fi・無線LAN
-
20
EXCELのVBAで画像を選んだ順に貼り付ける方法
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・一番好きなみそ汁の具材は?
- ・泣きながら食べたご飯の思い出
- ・「これはヤバかったな」という遅刻エピソード
- ・初めて自分の家と他人の家が違う、と意識した時
- ・いちばん失敗した人決定戦
- ・思い出すきっかけは 音楽?におい?景色?
- ・あなたなりのストレス発散方法を教えてください!
- ・もし10億円当たったら何に使いますか?
- ・何回やってもうまくいかないことは?
- ・今年はじめたいことは?
- ・あなたの人生で一番ピンチに陥った瞬間は?
- ・初めて見た映画を教えてください!
- ・今の日本に期待することはなんですか?
- ・集中するためにやっていること
- ・テレビやラジオに出たことがある人、いますか?
- ・【お題】斜め上を行くスキー場にありがちなこと
- ・人生でいちばんスベッた瞬間
- ・コーピングについて教えてください
- ・あなたの「プチ贅沢」はなんですか?
- ・コンビニでおにぎりを買うときのスタメンはどの具?
- ・おすすめの美術館・博物館、教えてください!
- ・【お題】大変な警告
- ・洋服何着持ってますか?
- ・みんなの【マイ・ベスト積読2024】を教えてください。
- ・「これいらなくない?」という慣習、教えてください
- ・今から楽しみな予定はありますか?
- ・AIツールの活用方法を教えて
- ・最強の防寒、あったか術を教えてください!
- ・歳とったな〜〜と思ったことは?
- ・モテ期を経験した方いらっしゃいますか?
- ・好きな人を振り向かせるためにしたこと
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
CSVファイルの特定行の削除
-
エクセルのファイル:「自分」が...
-
彼女の過去の恋愛に嫉妬してし...
-
vbsからのExcelマクロ呼び出し...
-
EXCELVBAにて文字列にして「01...
-
エクセルの拡張子XLSのファイル...
-
ユーザーフォームをコピーする...
-
iCloud for Windowsをアンイン...
-
エクセルの固定範囲にCSVを貼り...
-
batでファイル名を変更したい(...
-
シェルでテキストファイルを半...
-
5000個のtiffファイルをpdfへ変...
-
【Excel VBA】ファイルにヘッダ...
-
フォルダ内の複数のファイルの...
-
Excel: ファイル名になぜ、[...
-
CSVファイルの暗号化
-
WINDOWS CMDからゴミ箱のファ...
-
[Unity]シーンファイルの中が消...
-
docxをmht形式で保存したファイ...
-
エクセルの一時ファイルが保存...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
彼女の過去の恋愛に嫉妬してし...
-
エクセルのファイル:「自分」が...
-
iCloud for Windowsをアンイン...
-
CSVファイルの特定行の削除
-
ファイルが移動してもリンクの...
-
[Unity]シーンファイルの中が消...
-
Excel: ファイル名になぜ、[...
-
複数のExcelファイルにある同名...
-
vbsからのExcelマクロ呼び出し...
-
EXCELVBAにて文字列にして「01...
-
FTPのgetとputの使いわけ。
-
WINDOWS CMDからゴミ箱のファ...
-
docxをmht形式で保存したファイ...
-
自動で.xlsを閉じて指定フォル...
-
5000個のtiffファイルをpdfへ変...
-
Excelに貼り付けた画像を圧縮す...
-
エクセル保存終了で一時ファイ...
-
テキストファイル操作 実行時...
-
C# リッチテキスト形式のファイ...
-
batでファイル名を変更したい(...
おすすめ情報