Lập trình Microsoft Outlook 2007 Sách “vỡ lòng” dành cho quản trị viên và người dùng thành thạo

918 1 0
Lập trình Microsoft Outlook 2007  Sách “vỡ lòng” dành cho quản trị viên và người dùng thành thạo

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Lập trình Microsoft Outlook 2007 Sách “vỡ lòng” dành cho quản trị viên và người dùng thành thạo (Bản dịch tiếng Việt) Tác giả: Sue Mosher Dịch giả: Nguyễn Văn Đăng Cuốn sách này đề cập đến cách khía cạnh lập trình Outlook bằng VBA và VBScript dùng cho biểu mẫu tùy biến.

LẬP TRÌNH MICROSOFT® OUTLOOK 2007 Sách “vỡ lịng” dành cho quản trị viên người dùng thành thạo Lập trình Microsoft® Outlook 2007: Sách “vỡ lịng” dành cho quản trị viên người dùng thành thạo Lập trình Microsoft® Outlook 2007: Sách “vỡ lòng” dành cho quản trị viên người dùng thành thạo Tác giả: Sue Mosher Mục lục Lời đầu ix Lời cảm ơn xii Bạn làm với Outlook 2007 .1 1.1 Tại bạn nên lập trình Outlook 1.2 Những công cụ lập trình Outlook 1.2 Nên bắt đầu lập trình Outlook từ đâu 11 1.3 Những thành phần lập trình Outlook quan trọng 13 1.4 Hiển thị câu lệnh dành cho lập trình viên 14 1.5 Tóm tắt 15 Môi trường thiết kế VBA .17 2.1 VBA: Kiến thức 17 2.2 Cửa sổ VBA 21 2.3 Tìm trợ giúp VBA 28 2.4 Làm việc với dự án VBA 29 2.5 Tổng kết 33 Xây dựng biểu mẫu VBA .35 3.1 Tìm hiểu ngày sinh ngày kỷ niệm Outlook 35 3.2 Bước 1: Bạn cần control nào? 36 3.3 Bước 2: Tạo biểu mẫu 38 3.4 Bước 3: Thêm control người dùng nhập 41 3.5 Bước 4: Thêm nút lệnh 43 3.6 Bước 5: Lập kế hoạch cho bước phát triển 50 3.7 Tìm hiểu thêm control biểu mẫu VBA 51 3.8 Tổng kết 62 Giới thiệu Biểu mẫu Outlook .63 4.1 Tìm hiểu hai loại biểu mẫu tùy biến 64 4.4 Khi nên sử dụng biểu mẫu sử dụng biểu mẫu 81 4.5 Làm việc với trình thiết kế biểu mẫu 84 4.7 Tạo biểu mẫu liên hệ tùy biến 88 4.8 Tổng kết 103 Giới thiệu Vùng biểu mẫu (Form Region) 104 5.1 Tìm hiểu vùng biểu mẫu 104 5.2 Những control dùng cho vùng biểu mẫu 106 5.3 Tạo vùng biểu mẫu 109 5.4 Đăng ký triển khai vùng biểu mẫu 113 5.5 Những hạn chế vùng biểu mẫu 120 5.6 Những ý tưởng khác cho vùng biểu mẫu 121 5.7 Tổng kết 121 Mở rộng thiết kế biểu mẫu với trường control .123 6.1 Tìm hiểu trường control 124 6.2 Tạo trường người dùng tự định nghĩa 125 6.3 Thêm, xóa bỏ trường biểu mẫu Outlook 134 6.4 Sử dụng control biểu mẫu 141 6.5 Trình bày bố cục trang tạo email trang đọc email 152 6.6 Tổng kết 154 Kiến thức code Outlook 156 7.1 Tìm hiểu thời điểm chạy code VBA 156 7.2 Viết mã VBA 168 7.3 Viết mã VBScript dùng cho biểu mẫu Outlook 175 7.4 Tham chiếu đến thuộc tính item Outlook 186 7.5 Viết macro khác để tự động hóa Outlook 189 7.6 Tổng kết 194 Kiến thức ngữ pháp lập trình 196 8.1 Option Explicit 196 8.2 Khai báo biến số 199 8.3 Viết thủ tục 208 8.4 Làm việc với biểu thức hàm 220 8.5 Làm việc với chuỗi 223 8.6 Làm việc với ngày thời gian 229 8.7 Mảng, từ điển, hàm Split hàm Join 240 8.8 Kiểm sốt dịng chương trình 248 8.9 Cung cấp thông tin phản hồi 263 8.10 Lấy liệu đầu vào người dùng 271 8.11 Làm việc với tập tin nhiều đối tượng khác 281 8.12 Tổng kết 291 Xử lý, chạy thử gỡ lỗi 293 9.1 Tìm hiểu lỗi 293 9.2 Chạy thử gỡ lỗi VBA 303 9.3 Gỡ lỗi VBScript biểu mẫu Outlook 311 9.4 Tổng kết 323 Kiến thức lập trình Outlook .324 10.1 Giới thiệu mô hình đối tượng Outlook 324 10.2 Kỹ thuật viết code cho đối tượng tập hợp Outlook 331 10.3 Tìm hiểu bảo mật Outlook 340 10.4 Tổng kết 351 Phản hồi kiện Outlook VBA .353 11.1 Sự kiện đối tượng Application 354 11.2 Lập trình cho kiện khác đối tượng 373 11.4 Những kiện đối tượng Inspectors Inspector 384 11.5 Những kiện tập hợp Folders, đối tượng Folder tập hợp Items 389 11.7 Sự kiện Application.Reminder kiện tập hợp Reminders 405 11.8 Tổng kết 422 Lập trình kịch quan trọng cho biểu mẫu tùy biến 423 12.1 Làm việc với kiện item Outlook 424 12.2 Phản hồi liệu đầu vào người dùng biểu mẫu 431 12.3 Xử lý vấn đề liên quan đến trạng thái biểu mẫu control 449 12.4 Tổng kết 461 Làm việc với Store, Explorer Thư mục 462 13.1 Khái niệm store thông tin 462 13.2 Những kỹ thuật xử lý store thông tin 464 13.3 Làm việc với tập hợp Explorers 473 13.4 Truy cập thư mục 476 13.5 Làm việc với nhiều thư mục 503 13.6 Tổng kết 513 Sử dụng PropertyAccessor StorageItem .514 14.1 Dùng đối tượng PropertyAccessor 515 14.2 Dùng đối tượng StorageItem 530 14.3 Tổng kết 536 Làm việc với Inspector Item 537 15.1 Làm việc với Inspector 538 15.2 Tạo item 540 15.3 Truy cập item 549 15.4 Dùng đối tượng Table 562 15.5 Sử dụng phương thức đối tượng Item 574 15.6 Tổng kết 581 Tìm kiếm item Outlook .583 16.1 Giới thiệu phương pháp tìm kiếm Outlook 584 16.2 Xây dựng chuỗi tìm kiếm 586 16.3 Dùng phương thức Items.Find phương thức Items.Restrict 607 16.4 Sử dụng kỹ thuật tìm kiếm đối tượng Table 613 16.5 Dùng phương thức Explorer.Search 615 16.6 Dùng phương thức Application.AdvancedSearch 620 16.7 Tổng kết 634 Làm việc với phần thân item .636 17.1 Những kỹ thuật làm việc với phần thân item 636 17.2 Phân tách văn từ phần thân email 638 17.3 Thêm văn vào item 641 17.4 Tạo email có định dạng 645 17.5 Sử dụng WordEditor 650 17.6 Làm việc với chữ ký Outlook 661 17.7 Tổng kết 667 Làm việc với Người nhận Danh sách địa .668 18.1 Những đối tượng quan trọng liên quan đến người nhận danh sách địa 669 18.2 Tìm hiểu danh sách địa 670 18.4 Đọc thông tin từ đối tượng Recipient đối tượng AddressEntry 687 18.5 Đọc thơng tin tình trạng rảnh/bận 691 18.6 Hiển thị hộp thoại Select Names 699 18.7 Tổng kết 707 Làm việc với tập tin đính kèm 709 19.1 Tìm hiểu tập tin đính kèm Outlook 709 19.2 Thêm tập tin đính kèm vào item Outlook 712 19.3 Làm việc với tập tin đính kèm item có 715 19.4 Tổng kết 728 Những kỹ thuật thông dụng xử lý item .730 20.1 Sử dụng biểu mẫu email tùy biến 731 20.2 Làm việc với nút bình chọn nhiều hành động tùy biến khác 740 20.3 Gửi email tài khoản định 751 20.4 Tạo yêu cầu dự họp 754 20.5 Giao tác vụ 756 20.6 Liên kết nhiều item với Outlook 757 20.7 Tạo kiện thường niên từ trường ngày/giờ tùy biến 766 20.8 Tổng kết 777 Triển khai, quản lý biểu mẫu Outlook .779 21.1 Tìm hiểu cấu trúc biểu mẫu Outlook 780 21.2 Quản lý biểu mẫu Outlook 791 21.3 Quản lý trường tùy biến 804 21.4 Triển khai biểu mẫu Outlook 809 21.5 Khắc phục cố liên quan đến biểu mẫu Outlook 818 21.6 Tổng kết 822 Quy tắc, chế độ xem tác vụ viết script quản trị viên 823 22.1 Tạo việc triển khai script Outlook lại thách thức 824 22.2 Triển khai script nội biểu mẫu email tùy biến 826 22.3 Làm việc với quy tắc Outlook 838 22.4 Quản lý chế độ xem thư mục 848 22.5 Triển khai script nội với trang chủ thư mục 864 22.6 Tổng kết 864 Menu, Thanh công cụ Bảng điều hướng .866 23.1 Lập trình menu cơng cụ Outlook 867 23.2 Làm việc với menu ngữ cảnh 880 23.3 Làm việc với bảng điều hướng nhiều bảng khác cửa sổ Explorer 896 23.4 Tổng kết 904 Tạo báo cáo từ liệu Outlook 905 Lời đầu Microsoft Office Outlook 2007, phiên thứ sáu ứng dụng quản lý email hàng đầu Microsoft, thức mắt Có hai đối tượng người dùng Outlook là: Một bên lập trình viên chuyên nghiệp sử dụng tảng Microsoft Studio NET để lập trình add-in tích hợp chặt chẽ với Outlook, bên lại người dùng cuối thông thái quản trị viên bận rộn người mong muốn tận dụng Outlook cho mục đích cơng việc thân (hoặc “vọc vạch”) cho đạt hiệu Với việc beta Office 2007 mắt, K D Hallman, Tổng Giám đốc phụ trách mảng Visual Studio Tools for Office ước tính có khoảng 3-4 triệu lập trình viên Office chun nghiệp 16 triệu lập trình viên khơng chun Tôi viết sách hướng đến đối tượng bạn đọc nhóm sau—tức người khơng phải lập trình viên Outlook tồn thời gian Bạn đọc người thú nhận newsgroup thân có hiểu biết lập trình, lại muốn thử sức Bạn người mỉm cười quay lại tuần sau lên “Tuyệt cú mèo! Tôi làm rồi!” Trong sách này, bạn đọc có thơng tin mà cần để bắt đầu tìm hiểu lập trình VBA biểu mẫu tuỳ biến Outlook, hình thành kỹ từ kiến thức mà bạn sẵn có để từ bạn tận dụng tính lập trình mẻ mà Outlook 2007 mang lại Cịn nữa, tơi khơng qn nhắc đến nhiều lập trình viên chuyên nghiệp Nhiều sách chuyên ngành viết chủ đề lập trình Outlook cần phải diễn giải vấn đề mang tính kiến trúc add-in nhấn mạnh tính lập trình vừa mẻ vừa thiết yếu Outlook 2007, ví dụ vùng biểu mẫu đối tượng PropertyAccessor Giữa tư liệu tuyệt vời vậy, tất nhiên sách lại khơng trình bày kiến thức làm để trả đối tượng thư mục cụ thể, hay phương pháp sử dụng đối tượng WordEditor để điều khiển văn định dạng phần thân đối tượng Outlook Những mảnh ghép thiết thực lập trình Outlook cốt lõi sách tơi xin mời lập trình viên chuyên nghiệp bỏ qua chương VBA (sẽ hữu ích cho bắt đầu học) thẳng vào phần IV, “Những kỹ thuật lập trình Outlook bản” Trong sách bạn đọc cịn tìm thấy yếu tố cần thiết cho cơng việc tạo ra, quản lý biểu mẫu tuỳ biến kiểu cũ Outlook trường hợp tổ chức bạn đọc chưa thật sẵn sàng cho việc chuyển đổi ứng dụng biểu mẫu sang vùng biểu mẫu (form region) Trong suốt bốn năm qua kể từ viết sách Microsoft Outlook Programming: Jumpstart for Administrator, Power Users, and Developers, lĩnh ngộ nhiều kiến thức từ bạn đọc, thật biết ơn đóng góp bạn Các bạn cho tơi thấy dịng code chạy muốn biết thêm thơng tin điều Các bạn đề xuất cho tơi nhiều cách tổ chức giúp trình bày sách hiệu Tơi hi vọng lắng nghe thật kỹ lưỡng bạn đọc tìm thấy thơng tin cập nhật hữu ích (Nếu bạn đọc cịn sử dụng phiên Outlook 2003 phiên sách trước cung cấp thông tin liên quan nhiều so với sách này, mà kiến thức sách áp dụng cho phiên Outlook 2007) Tôi cho điều quan trọng nói sách khơng phải là: tài liệu tham khảo mơ hình đối tượng Outlook hồn chỉnh, khơng phải tài liệu hướng dẫn lập trình add-in nhằm mục đích cài đặt mơi trường doanh nghiệp nhằm mục đích phân phối đến tay khách hàng thương mại (Bạn đọc tìm đọc nguồn tư liệu xuất sắc hai chủ đề này; vui lịng truy cập trang web tơi địa http://www.outlookcode.com để tìm đường dẫn tải xuống toàn mẫu code sách này) Cuốn sách tài liệu hướng dẫn lập trình NET Tồn mẫu code có sách viết VBA VBScript, ngơn ngữ lập trình người dùng thành thạo quản trị viên sử dụng Bởi nhiều lập trình viên Outlook chun nghiệp sử dụng VBA cho cơng việc tạo mẫu ứng dụng nhẹ, cho VBA lựa chọn đắn để giới thiệu kiến thức Outlook đến đại đa số bạn đọc Những quy ước sử dụng sách Cuốn sách sử dụng nhiều kiểu chữ khác để phân biệt code ký tự thông thường nhằm giúp người đọc nhận khái niệm quan trọng: Phần khai báo biến tên thành phần chương trình trình bày dạng phông chữ phông chữ đơn cách: Item.BodyFormat = olFormatRichText Ký hiệu số hạng dùng cho nhiều biểu thức khác xuất dạng phông chữ nghiêng đơn cách Bạn đọc nên thay ký hiệu số hạng với giá trị cụ thể phù hợp với ứng dụng cụ thể code bạn đọc yêu cầu Ký tự mà bạn đọc phân loại trình bày phạm vi dấu ngoặc kép Số hạng xuất dạng chữ nghiêng Case Else If Store.IsDataFileStore Then Set objFolder = Store.GetRootFolder intCount = objFolder.Folders.Count Set objFolder = objFolder.Folders(intCount) If objFolder.IsSharePointFolder = True Then objCBB.Caption = “SharePoint store: “ & _ GetStorePath(Store) Else objCBB.Caption = _ “Store location: “ & Store.FilePath End If Else Set objIMAP = CommandBar.FindControl(, 5595) If Not objIMAP Is Nothing Then objCBB.Caption = _ “Store for IMAP account: “ & _ GetStorePath(Store) Else objCBB.Caption = “Store for account: “ & _ GetStorePath(Store) End If End If End Select Set objCBB = Nothing Set objIMAP = Nothing End Sub Function GetStorePath(str As Outlook.Store) Dim intStart As Integer Dim intEnd As Integer Dim strProvider As String Dim strPathRaw As String Dim strStoreID As String strStoreID = str.StoreID intStart = InStrRev(9, strStoreID, “0000”) + intEnd = InStr(intStart, strStoreID, “00”) strProvider = Mid(strStoreID, intStart, intEnd – intStart) 891 strProvider = Hex2ToString(strProvider) Select Case LCase(strProvider) Case “mspst.dll”, “pstprx.dll” intStart = InStrRev(strStoreID, “00000000”) + strPathRaw = Mid(strStoreID, intStart) GetStorePath = Trim(Hex4ToString(strPathRaw) Case “msncon.dll” intStart = InStrRev(strStoreID, _ “00”, Len(strStoreID) – 2) + strPathRaw = Mid(strStoreID, intStart) GetStorePath = Trim(Hex2ToString(strPathRaw)) Case Else GetStorePath = “Unknown store path” End Select End Function Function Hex4ToString(Data As String) As String Dim strTemp As String Dim strAll As String Dim i As Integer For i = To Len(Data) Step strTemp = Mid(Data, i, 4) strTemp = “&H” & Right(strTemp, 2) & Left(strTemp, 2) strAll = strAll & ChrW(CDec(strTemp)) Next Hex4ToString = strAll End Function Function Hex2ToString(Data As String) As String Dim strTemp As String Dim strAll As String Dim i As Integer For i = To Len(Data) Step strTemp = “&H” & Mid(Data, i, 2) strAll = strAll & ChrW(CDec(strTemp)) Next Hex2ToString = strAll End Function 892 23.2.2 Ví dụ: Tìm item liên quan Khi người dùng nhấp chuột phải vào item đơn lẻ, menu ngữ cảnh hiển thị lệnh Find All | Messages from Sender, nhiên lại khơng có lệnh “Messages to Sender” Với người dùng có địa Internet (SMTP), thêm lệnh thứ ba vào cuối menu phụ Find All để tìm kiếm tất email gửi đến người gửi hiển thị chúng cửa sổ Explorer riêng biệt Quy trình có sử dụng hàm DoSearch() hàm GetDefaultFolderModule() Liệt kê 16.5 Bạn đưa code trình xử lý kiện Liệt 23.8 vào mô-đun ThisOutlookSession Đưa macro Liệt kê 23.9, kèm theo hai hàm nói Liệt kê 16.5 vào mô-đun thông thường, hai hàm khơng chưa có dự án VBA bạn Sau cách thức mà trình xử lý kiện ItemContextMenuDisplay xác định menu phụ Find All thêm nút bấm vào để chạy macro Liệt kê 23.9: Set objCBPopup = CommandBar.Controls(“Find All”) Set objCB = objCBPopup.CommandBar Set objCBB = objCB.Controls.Add( _ Type:=msoControlButton, Temporary:=True) objCBB.OnAction = “FindRelatedItems” Bởi hoạt động tìm kiếm cần thơng tin địa email người gửi, trình xử lý kiện lưu trữ thơng tin thuộc tính Parameter đối tượng CommandBarButton: Set objMsg = Selection(1) strSender = objMsg.SenderEmailAddress objCBB.Parameter = strSender Liệt kê 23.8 Trình xử lý kiện dùng cho menu ngữ cảnh item Private Sub Application_ItemContextMenuDisplay( _ ByVal CommandBar As Office.CommandBar, _ ByVal Selection As Selection) Dim objCBB As Office.CommandBarButton Dim objCBPopup As Office.CommandBarPopup Dim objCB As Office.CommandBar 893 Dim objMsg As Outlook.MailItem Dim strSender As String If Selection.Count = Then If TypeOf Selection(1) Is Outlook.MailItem Then If objMsg.SenderEmailType = “SMTP” Then Set objCBPopup = CommandBar.Controls(“Find All”) Set objCB = objCBPopup.Controls.Add( _ Type:=msoControlButton, _ Temporary:=True) strSender = objMsg.SenderEmailAddress objCBB.Caption = _ “Messages to “ & strSender objCBB.Parameter = strSender objCBB.OnAction = “FindRelatedItems” End If End If End If Set objCBB = Nothing Set objMsg = Nothing End Sub Liệt kê 23.9 Tìm kiếm email gửi đến/từ người nhận email nhấp chuột phải Sub FindRelatedItems() Dim objOL As Outlook.Application Dim objExpl As Outlook.Explorer Dim colCB As Office.CommandBars Dim objCBB As Office.CommandBarButton Dim strFind As String On Error Resume Next Set objOL = Application Set objExpl = objOL.ActiveExplorer Set colCB = objExpl.CommandBars Set objCBB = colCB.ActionControl strFind = “to:” & objCBB.Parameter ‘ uses DoSearch from Listing 16.5 Set objExpl = DoSearch(searchText:=strFind, _ searchModule:=olModuleMail, _ searchScope:=olSearchScopeAllFolders, _ 894 useNewWindow:=True) objExpl.Activate Set objOL = Nothing Set objExpl = Nothing Set colCB = Nothing Set objCBB = Nothing End Sub Tên người gửi dùng cho phần phụ đề nút bấm: objCBB.Caption = “Messages to “ & strSender Khi người dùng nhấp chuột vào nút “Messages to”, macro FindRelatedItems dùng thuộc tính CommandBars.ActionControl nhằm xác định control mà người dùng nhấp chuột vào: Set colCB = objExpl.CommandBars Set objCBB = colCB.ActionControl Tham số Parameter control chứa địa cần dùng cho hoạt động tìm kiếm địa thông qua thủ tục DoSearch() Liệt kê 16.5 Thủ tục dựa vào phương thức Explorer.Search, dùng cú pháp cho phương thức đó, thêm từ khóa “to” trước địa chỉ, thao tác giống với mà bạn thấy hộp tìm kiếm giao diện người dùng Outlook: strFind = “to:” & objCBB.Parameter Hàm DoSearch() trả kết hiển thị cửa sổ Explorer riêng: Set objExpl = DoSearch(searchText:=strFind, _ searchModule:=olModuleMail, _ searchScope:=olSearchScopeAllFolders, useNewWindow:=True) Trong ví dụ này, bạn thấy phương pháp làm việc với menu phụ nằm menu ngữ cảnh Còn kỹ thuật trình bày ví dụ phương pháp truyền thơng tin cho macro có liên hệ với lệnh menu cách dùng tham số (thuộc tính Parameter) cho control menu, thay sử dụng biến tồn cục Liệt kê 23.5 23.6 895 23.3 Làm việc với bảng điều hướng nhiều bảng khác cửa sổ Explorer Bên cạnh menu công cụ, bảng điều hướng nhiều bảng khác cửa sổ Explorer cung cấp cho người dùng Outlook bối cảnh—tức biết công việc làm xong vào thời điểm cho trước Bạn trình bày nhiều bảng khác thêm nhiều nhóm, liên kết thư mục vào mô-đun điều hướng, nhiên nhiều trường hợp bạn khơng thể tạo mơ-đun hồn tồn mới, khơng thể xóa bỏ liên kết thư mục Hình 23.2 trình bày sơ đồ phân cấp đối tượng, đối tượng cha Explorer Tập hợp Panes nằm phía bên phải sơ đồ có đơi chút kỳ lạ, đối tượng OutlookBarPane bảng có tập hợp Bảng này, nhiều phiên cũ gọi Outlook Bar, xuất Outlook 2007 dạng mô-đun Shortcuts bảng điều hướng Do mơ-đun sử dụng so với mơ-đun cịn lại bảng điều hướng, khơng bàn luận chương Hình 23.2 Những đối tượng góp phần hình thành nên phân cấp bảng cửa sổ Explorer 896 23.3.1 Hiển thị, ẩn bảng Hai phương thức—ShowPane IsPaneVisible—của đối tượng Explorer hữu dụng làm việc với bảng Để hiển thị ẩn bảng, bạn dùng phương thức ShowPane đối tượng Explorer với cú pháp sau: objExplorer.ShowPane(Pane, Visible) Pane lấy giá trị số kiểu liệt kê OlPane (Bảng 23.5) Dùng giá trị True cho thuộc tính Visible bạn muốn hiển thị bảng giá trị False để ẩn bảng Để xác định bảng có hiển thị hay không, bạn gọi phương thức IsPaneVisible với cú pháp sau: blnICanSeeIt = objExplorer.IsPaneVisible(Pane) lần Pane lấy giá trị số Bảng 23.5 Phương thức IsPaneVisible trả giá trị True False Hằng số olNavigationPane Bảng 23.5 đề cập đến bảng điều hướng nằm phía bên phải hình có chứa nhiều mô-đun dùng riêng cho item—Mail, Calendar, Contacts, Tasks, Notes Journal Ngồi phần khơng gian bị chiếm dụng bên trái cịn có xuất Folder List Outlook Bar Trong thời điểm, hiển thị ba bảng Thanh To Do Bar chiếm dụng phần khơng gian bên phải hình, cịn bảng đọc (reading pane) (bảng xem trước) xuất giữa, bên cạnh danh sách item thư mục Để che lại bảng điều hướng, bạn thiết lập giá trị True cho thuộc tính IsCollapsed: Set objOL = Application objOL.ActiveExplorer.NavigationPane.IsCollapsed = True Mơ hình đối tượng Outlook khơng có phương thức giúp kiểm sốt vị trí bảng đọc thu nhỏ To Do Bar Mặc dù sử dụng tùy chọn cách gián tiếp thông qua nhiều lệnh tương ứng nằm menu Outlook cách áp dụng kỹ thuật liên quan đến đối tượng CommandBars mà mổ xẻ phần trước Ví dụ, đoạn code chuyển vị trí bảng đọc xuống hình thơng qua tập hợp Controls menu cha 897 (menu phụ), thay phương pháp trực tiếp dùng phương thức CommandBars.FindControl: Set objOL = Application Set objCB = objOL.ActiveExplorer.CommandBars Set objCBPopup = objCB.FindControl(, 31134) If Not objCBPopup Is Nothing Then Set objCBB = objCBPopup.CommandBar.Controls(“Bottom”) objCBB.Execute End If Bảng 23.5 Những số kiểu liệt kê OlPane dùng cho phương thức ShowPane Hằng số Giá trị olFolderList olNavigationPane olOutlookBar olPreview olToDoBar Điều bất ngờ là, cần phải truy cập vào hai lệnh Bottom Right dùng cho bảng đọc thông qua menu cha (menu phụ) Reading Pane, tức dùng tập hợp Controls menu phụ thay cho phương pháp trực tiếp dùng phương thức CommandBars.FindControl Đối với lệnh lại (vd: lệnh thu nhỏ To Do, phương thức FindControl trả lệnh cách trực tiếp thông qua đối tượng cha CommandBars (objCB) giống ví dụ đây: Set objCBB = objCB.FindControl(, 14859) objCBB.Execute Có thể bạn muốn thử nghiệm số lệnh khác nhiều danh sách thủ tục EnumCommandBars Liệt kê 23.1 tạo nhằm kiểm soát cách thức hiển thị giao diện người dùng nhiều tình khác 23.3.2 Làm việc với mơ-đun bảng điều hướng Như Hình 23.2 trình bày, đối tượng NavigationPane có thuộc tính Modules giúp trả tập hợp NavigationModules Dùng phương thức GetNavigationModule để trả 898 mô-đun đơn lẻ tức mô-đun đơn lẻ Mail, Calendar, Contacts, Tasks, Notes Journal hiển thị bảng điều hướng, hai mô-đun Folder List Shortcuts Để hiển thị nút bấm mô-đun với số lượng nhiều nằm bảng điều hướng, bạn thay đổi giá trị thuộc tính DisplayedModuleCount Đoạn code cài dặt cho bảng điều hướng hiển thị hai mô-đun danh sách mô-đun dạng nút bấm: Set objOL = Application Set objNavPane = objOL.ActiveExplorer.NavigationPane objNavPane.DisplayedModuleCount = Thứ tự xếp chồng nút bấm mô-đun phụ thuộc vào giá trị thuộc tính Position áp dụng cho mơ-đun Đối tượng NavigationModule item tập hợp NavigationModules Dùng thuộc tính NavigationPane.CurentModule để trả mô- đun chuyển sang mô-đun khác Để trả mô-đun khác, dùng phương thức GetNavigationModule với OlNavigationModuleType tham số số kiểu liệt kê (Bảng 23.6) Bảng 23.6 Những số kiểu liệt kê OlNavigationModuleType dùng cho phương thức GetNavigationModule Hằng số Giá trị olModuleCalendar olModuleContacts olModuleFolderList olModuleJournal olModuleMail olModuleNotes olModuleShortcuts olModuleTasks Mẹo: Hàm DoSearch() Liệt kê 16.5 sử dụng thuộc tính CurrentModule nhằm chuyển sang mơ-đun khác để thực hoạt động tìm kiếm tất thư mục với loại thư mục cho trước 899 Để lấy thông tin liên kết thư mục mô-đun dùng riêng cho item (có tất sáu mơ-đun), macro bạn phải xác định loại mơ-đun khởi tạo đối tượng có class xác Ví dụ, đoạn code lấy mô-đun Calendar: Set objOL = Application Set objNavPane = objOL.ActiveExplorer.NavigationPane Set colNavMods = objNavPane.Modules Set objNavMod = _ colNavMod.GetNavigationModule(olModuleCalendar) Set objCalPane = objNavMod Một có đối tượng mơ-đun cụ thể, bạn “đào sâu” vào tập hợp NavigationGroups (gồm nhiều đối tượng NavigationGroup) mơ-đun Để xác định nhóm điều hướng cụ thể, bạn dùng phương thức GetDefaultNavigationGroup, truyền tham số số kiểu liệt kê OlGroupType trình bày Bảng 23.7 Mỗi đối tượng NavigationGroup có tập hợp NavigationFolders (gồm nhiều đối tượng NavigationFolder) Tiếp tục với biến objCalPane từ đoạn code trên, đoạn code “đào sâu” xuống thư mục điều hướng nhóm My Folders chuyển tất lịch chọn sang chế độ phủ (layout): Set colNavGroups = objCalPane.NavigationGroups Set objNavGroup = _ colNavGroups.GetDefaultNavigationGroup _ (olMyFoldersGroup) Set colNavFold = objNavGroup.NavigationFolders For Each objNavFold In colNavFold If objNavFold.IsSelected Then objNavFold.IsSideBySide = False End If Next Bảng 23.7 Những số kiểu liệt kê OlGroupType dùng cho phương thức GetDefaultNavigationGroup Hằng số Giá trị Mô tả olCustomFoldersGroup Nhóm tùy chỉnh tạo giao diện người dùng olFavoriteFoldersGroup Nhóm điều hướng Favorite Folders mơ-đun Mail olMyFoldersGroup Nhóm My Folders chứa item store mặc định code tập tin pst 900 olPeopleFoldersGroup Gồm nhiều thư mục chia sẻ từ người khác olOtherFoldersGroup Gồm nhiều thư mục chia sẻ khác Cả hai thuộc tính IsSelected IsSideBySide áp dụng cho thư mục điều hướng mô-đun Calendar Tập hợp NavigationGroups tập hợp NavigationFolders hỗ trợ ba thuộc tính Add, Item Remove tương tự đa số tập hợp khác Outlook Để xem ví dụ phương thức NavigationFolders.Add, bạn xem lại Liệt kê 11.15, thủ tục AddToMailFav có nhiệm vụ thêm thư mục email vào nhóm Favorite Folders mơ-đun Mail Mặc dù vậy, bạn khơng thể xóa bỏ nhóm điều hướng dựng sẵn Ngồi bạn khơng thể xóa thư mục nằm trong tập hợp NavigationFolders, ngoại trừ thư mục chia sẻ Web calendar hay thư mục nằm mailbox NavigationFolder.IsRemovable người dùng Exchange khác Thuộc tính cho bạn biết thư mục xóa Trình Outlook Help có nhiều mẫu code hữu ích liên quan đến việc sử dụng đối tượng điều hướng Bạn tham khảo viết đây: ▪ How to: Show or Hide the Navigation Pane (HV10038583) ▪ How to: Display Specific Modules in the Navigation Pane (HV10038587) ▪ How to: Set a Module as the Currently Selected Module in the Navigation Pane (HV10038584) ▪ How to: Enumerate, Show, Hide, and Position Modules in the Navigation Pane (HV10045312) ▪ How to: Add a Custom Folder to a Group and Display It in Overlay Mode by Default (HV10038592) ▪ How to: Enumerate Active Folders in the Calendar View (HV10045329) ▪ How to: Add a New Navigation Group and Move a Folder into That Group (HV10045291) Số nằm cặp dấu ngoặc trịn mã ID viết mà bạn dùng trình Help để tìm viết nhanh Phần trình bày ví dụ cuối phương pháp thiết lập thư mục mặc định bạn cho mô-đun Contacts để Outlook hiển thị thư mục trước, thay hiển thị thư mục Contacts mặc định 901 23.3.3 Ví dụ: Hiển thị thư mục Contacts ưa thích từ đầu Một số người dùng khơng thích cách mà Outlook ln hiển thị thư mục mặc định người dùng chuyển sang mô-đun điều hướng Contacts từ lần đầu thời gian diễn phiên làm việc Outlook Họ muốn xem thư mục mặc định thư mục khác, tìm xem có cách để Outlook hiển thị thư mục từ đầu khơng Macro mẫu Liệt kê 23.10 giúp giải nguyện vọng này: Khi người dùng lần đầu hiển thị mô-đun Contacts, macro hiển thị thư mục liên hệ nằm nhóm My Contacts Để thử áp dụng kỹ thuật này, bạn thực bước sau đây: Đưa tất nội dung macro Liệt kê 23.10 vào mô-đun ThisOutlookSession Hiển thị mơ-đun Contacts, trình bày thư mục Contacts mặc định kéo thư mục mà bạn muốn dùng làm mặc định lên danh sách My Contacts Hiển thị mô-đun điều hướng khác Quay lại cửa sổ soạn thảo VBA chạy thủ tục Application_Startup Bây hiển thị mơ-đun Contacts thêm lần Bạn thấy thư mục mặc định từ Bước Macro dựa vào kiện ModuleSwitch đối tượng NavigationPane để xác định thời điểm người dùng chuyển sang bảng điều hướng Contacts Với đối tượng CurrentModule tham số trình xử lý kiện, thủ tục m_objNavPane_ModuleSwitch tiến hành khởi chạy đối tượng ContactsModule, sau “đào sâu” xuống nhóm My Contacts nhằm xác định thư mục NavigationFolder nhóm Từ đối tượng objNavFolder, macro xác định đối tượng Folder hiển thị thư mục cửa sổ Explorer Liệt kê 23.10 Hiển thị thư mục mặc định người dùng tự định nghĩa mô-đun liên hệ Dim WithEvents m_objNavPane As Outlook.NavigationPane Private Sub Application_Startup() Set m_objNavPane = _ Application.ActiveExplorer.NavigationPane 902 End Sub Private Sub m_objNavPane_ModuleSwitch _ (ByVal CurrentModule As NavigationModule) Dim objContMod As Outlook.ContactsModule Dim objNavGroup As Outlook.NavigationGroup Dim colNavFolders As Outlook.NavigationFolders Dim objNavFolder As Outlook.NavigationFolder Dim objFolder As Outlook.Folder If CurrentModule.NavigationModuleType = _ olModuleContacts Then Set objContMod = CurrentModule Set colNavGroups = objContMod.NavigationGroups Set objNavGroup = colNavGroup.GetDefaultNavigationGroup( _ olMyFoldersGroup) Set colNavFolders = objNavGroup.NavigationFolders Set objNavFolder = colNavFolders(1) Set objFolder = objNavFolder.Folder Set Application.ActiveExplorer.CurrentFolder = objFolder Set objNavPane = Nothing End If Set objContMod = Nothing Set colNavGroups = Nothing Set objNavGroup = Nothing Set colNavFolders = Nothing Set objNavFolder = Nothing Set objFolder = Nothing End Sub Bởi mục đích macro nhằm hiển thị thư mục thư mục liên hệ “mặc định” lần mà người dùng truy cập vào nhóm, để kiện ModuleSwitch khơng kích hoạt nữa, macro giải phóng biến m_objNavPane khỏi nhớ 903 Tất nhiên, bạn áp dụng kỹ thuật cho mô-đun bảng điều hướng Khi mở rộng trình xử lý kiện ModuleSwitch để áp dụng nhiều thư mục mặc định cho nhiều mô-đun nữa, bạn thay câu đây: If CurrentModule.NavigationModuleType = _ olModuleContacts Then câu lệnh này: Select Case CurrentModule.NavigationModuleType sau xây dựng nhiều khối lệnh Case để xử lý mơ-đun mong muốn Bạn loại bỏ câu lệnh giải phóng biến m_objNavPane khỏi nhớ để đối tượng hoạt động kích hoạt kiện ModuleSwitch cho mô-đun mà người dùng chưa xem phiên làm việc Nếu muốn hiển thị thư mục “mặc định” mơ-đun xem lần đầu cho mơ-đun đó, bạn sử dụng biến Boolean phạm vi mô-đun cho kiểu mơ-đun để theo dõi xem mơ-đun cài đặt thư mục mặc định hay chưa 23.4 Tổng kết Thanh công cụ tùy biến, menu bảng điều hướng giúp người dùng dễ dàng chạy macro VBA điều hướng sang thư mục ưa thích người dùng Outlook Bạn thiết lập nhiều nút bấm công cụ để điều hướng đến trang Web định Nhiều tính quan trọng Outlook 2007 liên quan đến giao diện người dùng có menu ngữ cảnh lập trình được, cộng với hệ thống phân cấp gồm nhiều đối tượng giúp truy cập vào mơ-đun, nhóm liên kết thư mục bảng điều hướng Nhiều ứng dụng thực tế kỹ thuật gồm ví dụ như: Hiển thị trang Web trình duyệt dựng sẵn Outlook, xem thư mục lưu trữ tập tin liệu store thông tin bất kỳ, tìm kiếm email gửi đến người gửi email cuối hiển thi thư mục “liên hệ” mặc định mô-đun Contacts 904 24 Tạo báo cáo từ liệu Outlook 905 .. .Lập trình Microsoft? ? Outlook 2007: Sách “vỡ lịng” dành cho quản trị viên người dùng thành thạo Lập trình Microsoft? ? Outlook 2007: Sách “vỡ lịng” dành cho quản trị viên người dùng thành thạo. .. mơi trường lập trình NET với tên gọi Visual Studio Tools for Application vốn mắt phiên InfoPath 2007, nhiên Outlook 2007, ngơn ngữ lập trình phù hợp với quản trị viên người dùng thành thạo (những... cịn tích hợp cài đặt Outlook, có sẵn dạng tải xuống riêng biệt cho vấn đề tương thích ngược 1.4 Hiển thị câu lệnh dành cho lập trình viên Một số tính dành cho lập trình viên Outlook khơng hiển

Ngày đăng: 24/09/2022, 12:36

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan