Bài viết này sẽ hướng dẫn bạn cách sử dụng Outlook VBA để tự động lấy số lượng người tham dự trước khi gửi lời mời họp.
Tương tự như việc đếm số người nhận trước khi gửi email, một số người dùng cũng muốn đếm số người tham dự trước khi gửi lời mời họp. Như thường lệ, điều này nhằm mục đích ước tính tổng cost của cuộc họp được đề xuất và sau đó quyết định xem có gửi lời mời họp như vậy tới những người tham dự hay không. Hơn nữa, vì Outlook cho phép người dùng đặt người tham dự theo yêu cầu hoặc tùy chọn, một số người muốn tính người tham dự theo các loại khác nhau. Và không thể tuyệt vời hơn nếu có thể đưa vào tài nguyên và thời lượng cuộc họp. Mặc dù Outlook không có tính năng trực tiếp như vậy nhưng bạn vẫn có thể sử dụng mã VBA để nhận ra tính năng đó.

Tự động đếm số người tham dự trước khi gửi lời mời họp
- Để start bằng, khởi chạy chương trình Outlook của bạn.
- Sau đó, trong cửa sổ chính của Outlook, nhấn phím tắt “Alt + F11”.
- Tiếp theo bạn sẽ vào trình soạn thảo Outlook VBA thành công. Bây giờ bạn cần tìm và mở dự án “ThisOutlookSession”.
- Sau đó, sao chép và dán các mã VBA sau vào dự án này.
Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)
Dim objMeetingInvitation As Outlook.MeetingItem
Dim objMeeting As Outlook.AppointmentItem
Dim objAttendees As Outlook.Recipients
Dim objAttendee As Outlook.recipient
Dim lRequiredAttendeeCount, lOptionalAttendeeCount, lResourceCount As Long
Dim strMsg As String
Dim nPrompt As Integer
If TypeOf Item Is MeetingItem Then
Set objMeetingInvitation = Item
Set objMeeting = objMeetingInvitation.GetAssociatedAppointment(True)
Set objAttendees = objMeetingInvitation.Recipients
End If
lRequiredAttendeeCount = 0
lOptionalAttendeeCount = 0
lResourceCount = 0
'Count the required & optional attendees and resources, etc.
For Each objAttendee In objAttendees
If objAttendee.Type = olRequired Then
lRequiredAttendeeCount = lRequiredAttendeeCount + 1
ElseIf objAttendee.Type = olOptional Then
lOptionalAttendeeCount = lOptionalAttendeeCount + 1
ElseIf objAttendee.Type = olResource Then
lResourceCount = lResourceCount + 1
End If
Next
'Double check the meeting invitation details
strMsg = "Meeting Details:" & vbCrLf & vbCrLf & _
"Required Attendees: " & lRequiredAttendeeCount & vbCrLf & _
"Optional Attendees: " & lOptionalAttendeeCount & vbCrLf & _
"Resources: " & lResourceCount & vbCrLf & _
"Duration: " & GetDuration(objMeeting) & vbCrLf & vbCrLf & _
"Are you sure to send this meeting invitation?"
nPrompt = MsgBox(strMsg, vbExclamation + vbYesNo, "Double Check Meeting Invitation")
If nPrompt = vbYes Then
Cancel = False
Else
Cancel = True
End If
End Sub
Function GetDuration(objCurMeeting As AppointmentItem) As String
'Convert minute to hour
If objCurMeeting.Duration > 60 Then
GetDuration = Round(objCurMeeting.Duration / 60, 1) & " hours"
ElseIf objCurMeeting.Duration = 60 Then
GetDuration = Round(objCurMeeting.Duration / 60, 1) & " hour"
ElseIf objCurMeeting.Duration < 60 Then
GetDuration = objCurMeeting.Duration & " mins"
End If
End Function
- Sau đó, bạn cần ký mã này.
- Sau đó, hãy đảm bảo Outlook của bạn cho phép các macro được ký điện tử.
- Từ giờ trở đi, mỗi khi bạn nhấp vào nút “Gửi” trong thư mời họp, bạn sẽ nhận được thông báo hiển thị số lượng người tham dự, tài nguyên và thời lượng, như hình ảnh sau:
Đối phó với sự tham nhũng đáng thất vọng của Outlook một cách linh hoạt
Có lẽ trước đây bạn đã từng gặp phải các sự cố về Outlook, chẳng hạn như bị treo, nhiều thông báo lỗi khác nhau, v.v. May mắn thay, Outlook được cài đặt sẵn một công cụ sửa chữa hộp thư đến, được gọi là scanpst, có khả năng giải quyết các vấn đề nhỏ. Nhưng nếu sự cố nghiêm trọng, bạn sẽ phải sử dụng lại một công cụ chuyên dụng hơn, chẳng hạn như DataNumen Outlook Repair.
Giới thiệu tác giả:
Shirley Zhang là một chuyên gia phục hồi dữ liệu trong DataNumen, Inc., công ty hàng đầu thế giới về công nghệ khôi phục dữ liệu, bao gồm mdf bị hỏng và các sản phẩm phần mềm sửa chữa triển vọng. Để biết thêm thông tin, hãy truy cập www.datanumennăm

