thảo luận Hỗ trợ miễn phí viết macro VBA trong Outlook cho anh em

NguyenDang95

Senior Member
Với tinh thần cho đi là để nhận lại.

Với vốn hiểu biết chút ít về Outlook + buổi tối rảnh rỗi không biết làm gì, em nhận hỗ trợ cho những anh em có nhu cầu thường xuyên làm việc với Outlook với nhiều thao tác lặp đi lặp lại mà nếu làm thủ công thì thường tỏ ra đơn điệu và mất nhiều thời gian. Mặc dù phổ kiến thức trong Outlook rất rộng và bản thân không phải cái gì cũng biết, nhưng em sẽ cố gắng hỗ trợ mọi người trong khả năng hiểu biết của mình. :D

Một số mẹo:
https://voz.vn/t/outlook-vba-tu-don...-thu-thu-da-doc-chua-doc-chi-tiet-thu.455010/
https://voz.vn/t/outlook-vba-tu-don...-tu-dia-chi-email-nguoi-gui-nhat-dinh.496645/
 
Chào bác, em muốn viết email outlook kiểu như sau.
Em có ví dụ chục file excel có tên khác nhau, hoặc file .pdf tên khác nhau.
Em muốn nó gửi tự động cho ông A file A, ông B file B trong 1 lần duy nhất bấm gửi đi.
Do email cùng tiêu đề ( lưu ý; không phải mail Spam đâu nhé).
Mail nội bộ.
Thanks
 
Chào bác, em muốn viết email outlook kiểu như sau.
Em có ví dụ chục file excel có tên khác nhau, hoặc file .pdf tên khác nhau.
Em muốn nó gửi tự động cho ông A file A, ông B file B trong 1 lần duy nhất bấm gửi đi.
Do email cùng tiêu đề ( lưu ý; không phải mail Spam đâu nhé).
Mail nội bộ.
Thanks
Theo em thì nên tạo một tệp Excel để quản lý như trong hình, tên tệp đính kèm vào email sẽ tương ứng với tên người nhận email viết không dấu. Không biết ý bác thế nào.
1658390475888.png
 
Mình muốn viết một add on cho outlook tự động up attachment > 25mb lên drive và get link được không bạn
Cam ơn bạn nhiều
 
Mình muốn viết một add on cho outlook tự động up attachment > 25mb lên drive và get link được không bạn
Cam ơn bạn nhiều
Không biết ý thím đang nói đến drive trong Google Drive hay OneDrive nhỉ? Mình đoán là Google Drive.
Qua tìm hiểu, mình nhận thấy vấn đề này VBA không giải quyết được cho nên mình có tìm hiểu và quyết định viết add-in VSTO bằng C#.
Trình tự của add-in như sau:
1. Add-in chỉ chạy khi người dùng tạo email mới (sự kiện NewInspector).
2. Khi người dùng chọn tệp đính kèm (sự kiện BeforeAttachmentAdd), nếu dung lượng của tệp đính kèm vượt quá 25MB thì add-in sẽ hỏi người dùng có muốn tải tệp đính kèm lên Google Drive và lấy link đưa vào email thay vì đính kèm trực tiếp vào email, nếu đồng ý thì add-in sẽ tiến hành tải tệp đính kèm lên Google Drive và trả về đường link dẫn đến tệp tin đính kèm đó. (Lưu ý: Khi chạy lần đầu, người dùng phải cho phép add-in truy cập vào Drive của người dùng, lần sau add-in sẽ không hỏi nữa).
Lưu ý: Thím cần tắt cảnh báo của Outlook khi thêm đính kèm dung lượng lớn vào email mới bằng cách chỉnh sửa giá trị registry thì add-in mới phát huy tác dụng: https://www.slipstick.com/outlook/email/outlook-default-attachment-size/
Mặc định, add-in chỉ tải tập tin đính kèm lên thư mục gốc Google Drive của người dùng.
Nhược điểm: Không thể sử dụng Outlook khi quá trình tải lên đang diễn ra (cái này do mình không đủ kiến thức để viết add-in xử lý đa luồng).
Video demo:
 

Attachments

  • GoogleDriveFilesAsEmailAttachments.zip
    772.2 KB · Views: 42
phòng em dùng trên file trên sever chung đăng ký file excel để đăng ký điểm danh, họp chẳng hạn. để chế độ share để đăng ký cùng lúc, thì suốt ngày file bị rơi vào tình trạng lock. Thao tác trực tiếp trên file sever cũng khó và mất nhiều thời gian lưu. Có cách nào để lấy dữ liệu từ file trên sever về file trên máy tính cá nhân, rồi file cá nhân ấn lênh gửi cái là nó tự gửi tự lưu lên file excel không bác?
 
Không biết ý thím đang nói đến drive trong Google Drive hay OneDrive nhỉ? Mình đoán là Google Drive.
Qua tìm hiểu, mình nhận thấy vấn đề này VBA không giải quyết được cho nên mình có tìm hiểu và quyết định viết add-in VSTO bằng C#.
Trình tự của add-in như sau:
1. Add-in chỉ chạy khi người dùng tạo email mới (sự kiện NewInspector).
2. Khi người dùng chọn tệp đính kèm (sự kiện BeforeAttachmentAdd), nếu dung lượng của tệp đính kèm vượt quá 25MB thì add-in sẽ hỏi người dùng có muốn tải tệp đính kèm lên Google Drive và lấy link đưa vào email thay vì đính kèm trực tiếp vào email, nếu đồng ý thì add-in sẽ tiến hành tải tệp đính kèm lên Google Drive và trả về đường link dẫn đến tệp tin đính kèm đó. (Lưu ý: Khi chạy lần đầu, người dùng phải cho phép add-in truy cập vào Drive của người dùng, lần sau add-in sẽ không hỏi nữa).
Lưu ý: Thím cần tắt cảnh báo của Outlook khi thêm đính kèm dung lượng lớn vào email mới bằng cách chỉnh sửa giá trị registry thì add-in mới phát huy tác dụng: https://www.slipstick.com/outlook/email/outlook-default-attachment-size/
Mặc định, add-in chỉ tải tập tin đính kèm lên thư mục gốc Google Drive của người dùng.
Nhược điểm: Không thể sử dụng Outlook khi quá trình tải lên đang diễn ra (cái này do mình không đủ kiến thức để viết add-in xử lý đa luồng).
Video demo:
Hay quá bạn ơi, bạn có thể inb cho mình xin code để mình nghiên cứu và tùy biến chút nữa được không ạ
 
phòng em dùng trên file trên sever chung đăng ký file excel để đăng ký điểm danh, họp chẳng hạn. để chế độ share để đăng ký cùng lúc, thì suốt ngày file bị rơi vào tình trạng lock. Thao tác trực tiếp trên file sever cũng khó và mất nhiều thời gian lưu. Có cách nào để lấy dữ liệu từ file trên sever về file trên máy tính cá nhân, rồi file cá nhân ấn lênh gửi cái là nó tự gửi tự lưu lên file excel không bác?
Vấn đề này em thấy khó giải quyết, vì cơ bản thằng Excel vốn dĩ không thích hợp cho cho nhiều người chỉnh sửa cùng một lúc. Bản thân em cũng hay bị lỗi, không chỉ file Excel mà thậm chí là file Word, bị lock khi mở trên OneDrive, mà khi bị lock bởi người dùng khác thì việc thêm dữ liệu vào file đó là điều không thể rồi.
 
Bạn có viết VBA cho excel ko nhỉ. Mình có bài toán mà tìm hoài ko ra cách.
Mình không rành về viết macro VBA tính toán trong Excel cho lắm, nhưng mà thím cứ trình bày lên đây xem mình có giúp được gì không, nhỡ đâu có nhiều thím trong VOZ ghé xem bài viết này có thể giúp thím được thì sao.
 
Mình không rành về viết macro VBA tính toán trong Excel cho lắm, nhưng mà thím cứ trình bày lên đây xem mình có giúp được gì không, nhỡ đâu có nhiều thím trong VOZ ghé xem bài viết này có thể giúp thím được thì sao.
Thực ra mình hay chèn hình ảnh vào file excel. Thường thì mỗi đợt chèn khoảng 15 tấm. Mình đang nghĩ có cách nào hay đoạn code nào mà khi mình crop hình, chỉnh hình sau đó bấm vào hình đó rồi bấm lệnh và bấm vào hình thứ 2 thì hình thứ 2 sẽ crop theo tỉ lệ hình 1.
Hay em tóm tắt thế này: tấm 1 (chỉnh hình, crop hình) bấm lệnh -> bấm vào tấm thứ 2 -> tấm thứ 2 sẽ có tỉ lệ crop và cách chỉnh như hình 1. Thao tác tương tự cho tấm, 3, 4, 5,.. cái này giống format painter đó nhưng mà format painter nó ko cho crop hình như tấm hình làm mẫu =((
 
Bác cho em hỏi tiếp chút, mục đường dẫn theo tệp đính kèm, tên file cũng sẽ đặt tên theo thứ tự như mục Code NPP à.
Để em giải thích với bác rõ một chút:
1658797664770.png

  1. Đầu tiên, thím nhấp chuột vào nút "Chọn đường dẫn chứa tệp đính kèm", ở cột "Tên tệp đính kèm" thím sẽ đề tên tệp đính kèm (tên bất kỳ do thím tự đặt, miễn sao giúp thím dễ dàng quản lý là được) và thím có thể chỉ định nhiều tệp đính kèm cho email bằng cách viết nhiều tên tệp đính kèm phân cách nhau bằng dấu phẩy như trong hình.
  2. Sau đó, thím nhấp chuột vào nút "Gửi thư hàng loạt" để Outlook tự động tạo thư mới (bước này thím nhớ mở Outlook trước khi chạy macro này).
Thím có thể kiểm tra tình trạng tệp đính kèm tồn tại hay không bằng cách kiểm tra thông tin trong cột "Tìm thấy/Không tìm thấy tập tin đính kèm" để xem tệp tin nào bị sai tên và đính kèm lại tập tin đó bằng tay khi cần.
Thím chạy thử xem, nếu có lỗi nào thì báo cho em biết nhé.
 

Attachments

  • GuiMailTheoDS.zip
    22.1 KB · Views: 54
Thực ra mình hay chèn hình ảnh vào file excel. Thường thì mỗi đợt chèn khoảng 15 tấm. Mình đang nghĩ có cách nào hay đoạn code nào mà khi mình crop hình, chỉnh hình sau đó bấm vào hình đó rồi bấm lệnh và bấm vào hình thứ 2 thì hình thứ 2 sẽ crop theo tỉ lệ hình 1.
Hay em tóm tắt thế này: tấm 1 (chỉnh hình, crop hình) bấm lệnh -> bấm vào tấm thứ 2 -> tấm thứ 2 sẽ có tỉ lệ crop và cách chỉnh như hình 1. Thao tác tương tự cho tấm, 3, 4, 5,.. cái này giống format painter đó nhưng mà format painter nó ko cho crop hình như tấm hình làm mẫu =((
Theo ý mình hiểu thì, có phải thím muốn áp dụng kích thước dài rộng (Size: Width * Height), tỷ lệ crop như crop top, crop bottom, crop left và crop right của hình làm mẫu cho toàn bộ hình còn lại đúng không.
 
Không biết ý thím đang nói đến drive trong Google Drive hay OneDrive nhỉ? Mình đoán là Google Drive.
Qua tìm hiểu, mình nhận thấy vấn đề này VBA không giải quyết được cho nên mình có tìm hiểu và quyết định viết add-in VSTO bằng C#.
Trình tự của add-in như sau:
1. Add-in chỉ chạy khi người dùng tạo email mới (sự kiện NewInspector).
2. Khi người dùng chọn tệp đính kèm (sự kiện BeforeAttachmentAdd), nếu dung lượng của tệp đính kèm vượt quá 25MB thì add-in sẽ hỏi người dùng có muốn tải tệp đính kèm lên Google Drive và lấy link đưa vào email thay vì đính kèm trực tiếp vào email, nếu đồng ý thì add-in sẽ tiến hành tải tệp đính kèm lên Google Drive và trả về đường link dẫn đến tệp tin đính kèm đó. (Lưu ý: Khi chạy lần đầu, người dùng phải cho phép add-in truy cập vào Drive của người dùng, lần sau add-in sẽ không hỏi nữa).
Lưu ý: Thím cần tắt cảnh báo của Outlook khi thêm đính kèm dung lượng lớn vào email mới bằng cách chỉnh sửa giá trị registry thì add-in mới phát huy tác dụng: https://www.slipstick.com/outlook/email/outlook-default-attachment-size/
Mặc định, add-in chỉ tải tập tin đính kèm lên thư mục gốc Google Drive của người dùng.
Nhược điểm: Không thể sử dụng Outlook khi quá trình tải lên đang diễn ra (cái này do mình không đủ kiến thức để viết add-in xử lý đa luồng).
Video demo:
Mình không tắt được chức năng cảnh báo, nhờ bạn hd giúp nhé, mình dùng outlook exchange 2019
 
Mình không tắt được chức năng cảnh báo, nhờ bạn hd giúp nhé, mình dùng outlook exchange 2019
Thím mở regedit, tìm khóa HKEY_CURRENT_USER\Software\Microsoft\Office\16.0\Outlook\Preferences và tạo giá trị DWORD (32bit) MaximumAttachmentSize = 0 (đơn vị tính: kilobyte) (không giới hạn dung lượng tập tin đính kèm) là được.
1658839576288.png
 
Back
Top