Tắt chức năng "tự động nén ảnh khi lưu file" bằng VBA

Liên hệ QC

ndu96081631

Huyền thoại GPE
Thành viên BQT
Super Moderator
Tham gia
5/6/08
Bài viết
30,703
Được thích
53,924
Excel có một chức năng tự động nén ảnh mỗi khi ta lưu file. Chức năng ấy nằm trong Excel Options

Capture.JPG

có tên là "Do not compress images in file".
Mặc định mục này không được check, có nghĩa là hình ảnh chèn trên bảng tính sẽ tự động bị nén lại khi lưu file. Nếu ta cố tính check vào mục này thì hình ảnh sẽ được giữ nguyên
Xin hỏi các bạn: Viết code VBA như thế nào để có thể check vào mục này
 
Excel có một chức năng tự động nén ảnh mỗi khi ta lưu file. Chức năng ấy nằm trong Excel Options

View attachment 201244

có tên là "Do not compress images in file".
Mặc định mục này không được check, có nghĩa là hình ảnh chèn trên bảng tính sẽ tự động bị nén lại khi lưu file. Nếu ta cố tính check vào mục này thì hình ảnh sẽ được giữ nguyên
Xin hỏi các bạn: Viết code VBA như thế nào để có thể check vào mục này
Em cũng đọc mấy trang nước ngoài thì họ cũng báo không có cách nào dùng được lệnh VBA.
 
Upvote 0
Để ý trong khung chữ nhật của bức ảnh... hình như anh ấy đã có cách. :rolleyes::rolleyes:
 
Upvote 0
Để ý trong khung chữ nhật của bức ảnh... hình như anh ấy đã có cách. :rolleyes::rolleyes:

Bạn cũng tinh mắt lắm! "Khung chữ nhật" ấy chứa nội dung liên quan đến việc đọc và ghi giá trị vào registry.
Nếu tham khảo trên mạng thì sẽ thấy người ta hướng dẫn check mục "Do not compress images in file" bằng cách chỉnh registry. Thật không may việc tinh chỉnh ấy chỉ có tác dụng với những file mới tạo (tính từ thời điểm sau khi tinh chỉnh). Còn lại những file đã tạo trước đó lại không có tác dụng gì
Tôi cũng biết là chuyện khó, vì trước khi hỏi tôi cũng đã mò "nát" google rồi nhưng không tìm được cách. Tuy nhiên vẫn đưa câu hỏi lên đây hy vọng ai đó đã từng thắc mắc giống tôi và có đáp án hoàn chỉnh
 
Upvote 0
Bạn cũng tinh mắt lắm! "Khung chữ nhật" ấy chứa nội dung liên quan đến việc đọc và ghi giá trị vào registry.
Nếu tham khảo trên mạng thì sẽ thấy người ta hướng dẫn check mục "Do not compress images in file" bằng cách chỉnh registry. Thật không may việc tinh chỉnh ấy chỉ có tác dụng với những file mới tạo (tính từ thời điểm sau khi tinh chỉnh). Còn lại những file đã tạo trước đó lại không có tác dụng gì
Tôi cũng biết là chuyện khó, vì trước khi hỏi tôi cũng đã mò "nát" google rồi nhưng không tìm được cách. Tuy nhiên vẫn đưa câu hỏi lên đây hy vọng ai đó đã từng thắc mắc giống tôi và có đáp án hoàn chỉnh
Em không biết phiên bản cũ thì sao chứ riêng tính năng nén ảnh này ở excel và powerpoint chỉ áp dụng cho file đang mở hiện hành. Chỉ word mới có tùy chọn áp dụng cho toàn bộ file.
Registry chỉ có những khóa mà tại đó các tùy chọn mang tính "chung chung", chẳng hạn như check chỉnh tả, thời gian lưu file tự động ...
Với các tinh chỉnh mà có sự lựa chọn để áp dụng cho file đang mở hay toàn bộ file như Image size and quality hay Chart thì khi thay đổi, Word không ghi vào registry mà ghi vào file tạm. Excel thì không rõ file tạm nó lưu ở đâu, cách thức thế nào. Riêng với word, tinh chỉnh nén file mà áp dụng cho All new docs thì sẽ ghi nhận vào template "Normal.dotm".
 

File đính kèm

  • Untitled.png
    Untitled.png
    8.2 KB · Đọc: 8
Upvote 0
Em không biết phiên bản cũ thì sao chứ riêng tính năng nén ảnh này ở excel và powerpoint chỉ áp dụng cho file đang mở hiện hành. Chỉ word mới có tùy chọn áp dụng cho toàn bộ file.
Registry chỉ có những khóa mà tại đó các tùy chọn mang tính "chung chung", chẳng hạn như check chỉnh tả, thời gian lưu file tự động ...
Với các tinh chỉnh mà có sự lựa chọn để áp dụng cho file đang mở hay toàn bộ file như Image size and quality hay Chart thì khi thay đổi, Word không ghi vào registry mà ghi vào file tạm. Excel thì không rõ file tạm nó lưu ở đâu, cách thức thế nào. Riêng với word, tinh chỉnh nén file mà áp dụng cho All new docs thì sẽ ghi nhận vào template "Normal.dotm".
Làm bằng tay thì tôi biết rồi. Ở đây tôi chỉ muốn dùng code VBA bằng cách nào đó nó check vào chỗ đó giúp tôi thôi. Tôi không cần việc tinh chỉnh ấy có tác dụng trên toàn Excel, chỉ cần ngay trong file của tôi là đủ
 
Upvote 0
Làm bằng tay thì tôi biết rồi. Ở đây tôi chỉ muốn dùng code VBA bằng cách nào đó nó check vào chỗ đó giúp tôi thôi. Tôi không cần việc tinh chỉnh ấy có tác dụng trên toàn Excel, chỉ cần ngay trong file của tôi là đủ
Vâng Anh. Ý em đính kèm hình là để minh họa chỉ Word thì có cái gọi là thay đổi cho toàn bộ các file mới và khi đó nó sẽ cập nhật vào file template có tên Normal. Mình có thể sao lưu lại 2 file normal với 2 chế độ: bật/tắt tính năng nén ảnh. Muốn chế độ nào (bật hay tắt) thì copy đè file tương ứng vào đường dẫn của file Normal. (Dĩ nhiên cái này chỉ là phục vụ cho việc test và khám phá chứ còn việc copy dán dù thực hiện bằng câu lệnh cũng không thể nhanh bằng việc vào option và tích cho lẹ :p).
Với excel và powerpoint thì do chỉ áp dụng cho file hiện đang mở nên thay đổi này nó sẽ ghi vào file tạm chứ không có file template nào. Mà hiện tại cũng không rõ file tạm này nằm đâu.
Tổng kết lại thì về cơ bản, nếu 1 option thay đổi mà không ghi khóa reg thì không thể dùng vba để tinh chỉnh được Anh ạ.
 
Upvote 0
Làm bằng tay thì tôi biết rồi. Ở đây tôi chỉ muốn dùng code VBA bằng cách nào đó nó check vào chỗ đó giúp tôi thôi. Tôi không cần việc tinh chỉnh ấy có tác dụng trên toàn Excel, chỉ cần ngay trong file của tôi là đủ
Làm bằng tay thì ở máy em nó sẽ như sau:

1533775554978.png
Như vậy trong VBA mình có thể kiểm tra key đó có tồn tại hay chưa, nếu chưa thì thêm vào, nếu tồn tại rồi thì kiểm tra giá trị nó có phù hợp với mục đích của mình hay không rồi mới đưa giá trị vào.
 
Upvote 0
Làm bằng tay thì ở máy em nó sẽ như sau:

View attachment 201405
Như vậy trong VBA mình có thể kiểm tra key đó có tồn tại hay chưa, nếu chưa thì thêm vào, nếu tồn tại rồi thì kiểm tra giá trị nó có phù hợp với mục đích của mình hay không rồi mới đưa giá trị vào.
Việc thêm, xóa, sửa giá tri trong Registry hoàn toàn không có vấn đề
Ngay khi ta tạo ra name "AutomaticPictureCompressionDefault" thì tính từ lúc này trở đi, mỗi khi tạo mới 1 file, Excel sẽ mặc định không nén ảnh. Đáng tiếc động tác này hoàn toàn không có tác dụng với những file đã tạo trước đó (như mình đã nói ở bài 4)
 
Upvote 0
Web KT
Back
Top Bottom