thảo luận Ebook VBA cho Outlook bản gốc + bản dịch cho những anh em quan tâm

NguyenDang95

Senior Member
Xin chào mọi người. Không biết anh em nào trong đây có thường xuyên sử dụng Outlook để quản lý email công việc và quan tâm đến VBA để có thể viết được macro xử lý những công việc mang tính lặp đi lặp lại như tự động gửi email hàng loạt, tự động gửi email chúc mừng sinh nhật đến người khác dựa vào Calendar,... không nhỉ. Mình cũng là người thường xuyên sử dụng Outlook cho công việc, cũng quan tâm đến VBA, mày mò học hỏi thông qua những tài liệu ít ỏi trên mạng internet và trên trang trợ giúp của Microsoft. Cũng tiếc là ở Việt Nam lại rất ít người quan tâm đến chủ đề này, đa số đều xoay quanh Excel VBA. Thật may là trong quá trình tìm kiếm trên internet mình tìm được ebook "Microsoft Outlook 2007 Programming - Jumpstart for Administrators and Power Users" của tác giả Sue Mosher mà mình thấy rất hay. Mặc dù cuốn sách này đã ra mắt cách đây cũng hơn 15 năm và một số kiến thức trong sách không còn phù hợp với những phiên bản Outlook sau này, tuy nhiên kiến thức mà cuốn sách này truyền tải thì rất có giá trị.
Ngoài việc chia sẻ cuốn sách nói trên đến những anh em quan tâm, dựa vào vốn kiến thức ít ỏi của bản thân về VBA + tiếng Anh, mình còn dịch cuốn sách đó sang tiếng Việt với mong muốn tiếp cận được đến nhiều anh em hơn. Tuy nhiên với đặc điểm là ban ngày đi làm, ban đêm mới có thời gian dịch sách nên bản dịch thực ra vẫn chưa hoàn thành và vẫn còn khá nhiều thiếu sót về mặt câu cú, ngữ nghĩa. Mong nhận được sự góp ý của các anh em.
Link sách: https://1drv.ms/b/s!AmwM8BaWQzt0m-ALrY5Wnm0O69JF2g?e=Bj7M8Q

1656250789185.png


Bản dịch tiếng Việt: https://1drv.ms/b/s!AmwM8BaWQzt0nLgcCCkzTTpkClVcwQ?e=QaedRz

1663374796197.png


Cập nhật: Cuối cùng sau ba tháng miệt mài, cuối cùng mình đã dịch xong cuốn sách này. Tuy nhiên có một số điều cần lưu ý như sau:
Bản dịch này không dịch:
1. Mục 22.5 Internal scripting with folder home pages:
Thời điểm hiện tại, tính năng Home Page của thư mục đã lỗi thời. Microsoft đã vô hiệu hóa tính năng này kể từ phiên bản Outlook 2016 vì lý do bảo mật.
2. Chương 24 Generating reports on Outlook Data:
Chương này thực hành là chủ yếu, bên cạnh đó còn bổ sung một số kiến thức VBA cơ bản về Excel và Word để làm báo cáo từ dữ liệu trong Outlook
(vd: Đối tượng Range, Workbook, Worksheet của Excel, các đối tượng Content Control như Text Box Content Control, Combo Box Content Control của Word, v.v...)
 
Last edited:
Với m đang tìm cách
Mỗi lần mở oulook , có cách nào sổ hết folder ra không nhỉ?
Hiện vẫn làm thủ công, nhiều khi Mail tới
Do rule mà nó nhảy vào folder
Lỡ quên là bị bỏ lỡ mail liền
 
Với m đang tìm cách
Mỗi lần mở oulook , có cách nào sổ hết folder ra không nhỉ?
Hiện vẫn làm thủ công, nhiều khi Mail tới
Do rule mà nó nhảy vào folder
Lỡ quên là bị bỏ lỡ mail liền
Cụ thể là thím muốn mở những thư mục nào khi khởi động Outlook?
 
Cụ thể là thím muốn mở những thư mục nào khi khởi động Outlook?
M mún nó xổ hết là mừng lắm rồi
Nhiều khi mở lên nó thu gọn lại
Phải bấm dấu tam giác nó mới hiện mới folder con ở trong folder cha
Kiểu kiểu vậy
 
Nên mới bấm xổ ( từ hình như là expand)
Thì trong folder con
Nếu có Mail mới trong folder con, thì m sẽ nhận ra
 
Với m đang tìm cách
Mỗi lần mở oulook , có cách nào sổ hết folder ra không nhỉ?
Hiện vẫn làm thủ công, nhiều khi Mail tới
Do rule mà nó nhảy vào folder
Lỡ quên là bị bỏ lỡ mail liền
Thế thì thím thử dùng macro này xem sao.
Cái này mình thấy trên trang https://www.datanumen.com/blogs/how-to-auto-expand-all-folders-via-vba-when-starting-your-outlook/#:~:text=Auto Expand All Folders when,Outlook to access VBA editor.

Code:
'Auto expand all folders on startup
Private Sub Application_Startup()
    Call ExpandAllFolders
End Sub

Private Sub ExpandAllFolders()
    Dim objCurrentFolder As Outlook.Folder
    Dim objStore As Outlook.Store
    Dim objFileFolders As Outlook.Folders
    Dim objFolder As Outlook.Folder
 
    Set objCurrentFolder = Application.ActiveExplorer.CurrentFolder
 
    'Process all email accounts in your Outlook
    For Each objStore In Outlook.Application.Session.Stores
        Set objFileFolders = objStore.GetRootFolder.Folders
 
        For Each objFolder In objFileFolders
            Call LoopFolders(objFolder)
        Next
 
        DoEvents
        Set Application.ActiveExplorer.CurrentFolder = objCurrentFolder
    Next
End Sub

Sub LoopFolders(ByVal objCurFolder As Outlook.Folder)
    Dim objSubfolder As Outlook.Folder
 
    Set Application.ActiveExplorer.CurrentFolder = objCurFolder
    DoEvents
 
    'Process all subfolders recursively
    If objCurFolder.Folders.Count > 0 Then
       For Each objSubfolder In objCurFolder.Folders
           Call LoopFolders(objSubfolder)
       Next
    End If
End Sub

Nhớ đưa macro này vào mục ThisOutlookSession trong cửa sổ VBE nhé.
 
Thế thì thím thử dùng macro này xem sao.
Cái này mình thấy trên trang https://www.datanumen.com/blogs/how-to-auto-expand-all-folders-via-vba-when-starting-your-outlook/#:~:text=Auto Expand All Folders when,Outlook to access VBA editor.

Code:
'Auto expand all folders on startup
Private Sub Application_Startup()
    Call ExpandAllFolders
End Sub

Private Sub ExpandAllFolders()
    Dim objCurrentFolder As Outlook.Folder
    Dim objStore As Outlook.Store
    Dim objFileFolders As Outlook.Folders
    Dim objFolder As Outlook.Folder
 
    Set objCurrentFolder = Application.ActiveExplorer.CurrentFolder
 
    'Process all email accounts in your Outlook
    For Each objStore In Outlook.Application.Session.Stores
        Set objFileFolders = objStore.GetRootFolder.Folders
 
        For Each objFolder In objFileFolders
            Call LoopFolders(objFolder)
        Next
 
        DoEvents
        Set Application.ActiveExplorer.CurrentFolder = objCurrentFolder
    Next
End Sub

Sub LoopFolders(ByVal objCurFolder As Outlook.Folder)
    Dim objSubfolder As Outlook.Folder
 
    Set Application.ActiveExplorer.CurrentFolder = objCurFolder
    DoEvents
 
    'Process all subfolders recursively
    If objCurFolder.Folders.Count > 0 Then
       For Each objSubfolder In objCurFolder.Folders
           Call LoopFolders(objSubfolder)
       Next
    End If
End Sub

Nhớ đưa macro này vào mục ThisOutlookSession trong cửa sổ VBE nhé.
Thank thím nhiều
Sáng mai thử liền
 
Cập nhật: Cuối cùng sau ba tháng miệt mài, cuối cùng mình đã dịch xong cuốn sách này. Tuy nhiên có một số điều cần lưu ý như sau:
Bản dịch này không dịch:
1. Mục 22.5 Internal scripting with folder home pages:
Thời điểm hiện tại, tính năng Home Page của thư mục đã lỗi thời. Microsoft đã vô hiệu hóa tính năng này kể từ phiên bản Outlook 2016 vì lý do bảo mật.
2. Chương 24 Generating reports on Outlook Data:
Chương này thực hành là chủ yếu, bên cạnh đó còn bổ sung một số kiến thức VBA cơ bản về Excel và Word để làm báo cáo từ dữ liệu trong Outlook
(vd: Đối tượng Range, Workbook, Worksheet của Excel, các đối tượng Content Control như Text Box Content Control, Combo Box Content Control của Word, v.v...)

1663343054258.png


Trong quá trình đọc tài liệu, nếu phát hiện thấy lỗi sai về mặt ngữ nghĩa, sai bản dịch hay cần giải đáp những nội dung trong tài liệu, các thím vui lòng để lại bình luận trong thread này.
Cảm ơn mọi người đã quan tâm.
 
bác cho em xin script tải Attachment từ Outlook email theo tên định sẵn dc ko ạ. Em search trên GG miết mà ko thấy :((( đội ơn bác
 
Cập nhật: Cuối cùng sau ba tháng miệt mài, cuối cùng mình đã dịch xong cuốn sách này. Tuy nhiên có một số điều cần lưu ý như sau:
Bản dịch này không dịch:
1. Mục 22.5 Internal scripting with folder home pages:
Thời điểm hiện tại, tính năng Home Page của thư mục đã lỗi thời. Microsoft đã vô hiệu hóa tính năng này kể từ phiên bản Outlook 2016 vì lý do bảo mật.
2. Chương 24 Generating reports on Outlook Data:
Chương này thực hành là chủ yếu, bên cạnh đó còn bổ sung một số kiến thức VBA cơ bản về Excel và Word để làm báo cáo từ dữ liệu trong Outlook
(vd: Đối tượng Range, Workbook, Worksheet của Excel, các đối tượng Content Control như Text Box Content Control, Combo Box Content Control của Word, v.v...)

View attachment 1385543

Trong quá trình đọc tài liệu, nếu phát hiện thấy lỗi sai về mặt ngữ nghĩa, sai bản dịch hay cần giải đáp những nội dung trong tài liệu, các thím vui lòng để lại bình luận trong thread này.
Cảm ơn mọi người đã quan tâm.
Bác có tài liệu học PBI tiếng việt không cho mình xin với, mình đang đọc bảng tiếng anh mà có nhiều chổ chưa hiểu lắm.
 
Bác có tài liệu học PBI tiếng việt không cho mình xin với, mình đang đọc bảng tiếng anh mà có nhiều chổ chưa hiểu lắm.
Rất tiếc là mình hiện không có đầu sách tiếng Việt nào. Chủ đề Power BI mình có nhiều đầu sách, nhưng toàn tiếng Anh thôi.
 
Trong quá trình học, lập trình VBA trong Outlook, việc nắm được các thuộc tính MAPI là điều rất quan trọng. Lần này mình xin chia sẻ một tool nhỏ giúp tra cứu thông tin về các thuộc tính MAPI một cách thuận tiện. Công cụ này sử dụng nguồn tài liệu từ trang Microsoft Learn.
1685928129578.png
 

Attachments

  • OutlookSchemaPropertiesLookupTool.zip
    129.9 KB · Views: 31
Trong quá trình học, lập trình VBA trong Outlook, việc nắm được các thuộc tính MAPI là điều rất quan trọng. Lần này mình xin chia sẻ một tool nhỏ giúp tra cứu thông tin về các thuộc tính MAPI một cách thuận tiện. Công cụ này sử dụng nguồn tài liệu từ trang Microsoft Learn.
View attachment 1876114
Cập nhật: Bổ sung thêm một số thông tin giúp tra cứu thông tin trở nên thuận tiện và nhiều thông tin hữu ích hơn.
1686754293679.png
 

Attachments

  • OutlookSchemaPropertiesLookupTool.zip
    140 KB · Views: 24
Last edited:
Back
Top