Hãy cho end user được quyền sử dụng MsgBox!

  • Thread starter Đào Việt Cường
  • Ngày gửi
Đào Việt Cường

Đào Việt Cường

Moderator
22/11/05
400
4
18
Khánh Hòa
Dear all,
-------
Để Exc&Acc ấm lên trong tiết trời giá lạnh của Hà Nội (hì, hơi vòng vèo một tí), hôm nay tôi muốn gợi ý cho các cao thủ VBA một ứng dụng nhỏ nhưng theo tôi hết sức thiết thực cho những ai làm việc với Excel.
Trong VBA, ai cũng biết hàm MsgBox đưa ra thông điệp theo một ngữ cảnh nào đó nhằm xử lý tương tác giữa người dùng và máy. Hàm này chỉ phục vụ cho những người sử dụng VBA, chứ trong bộ hàm tiêu chuẩn của MS Excel không có. Điều đó có nghĩa là những người dùng bình thường (không sử dụng VBA for Excel - hay còn gọi là người dùng cuối cùng - End User) không biết được đằng sau các Cell, Sheet, Name... còn có hàm này.
Đến đây xin được đi vào vấn đề chính.
Kế toán là quá trình thường xuyên liên tục ghi chép - kiểm tra - đối chiếu: Kiểm tra - đối chíêu tình hình giao hàng so với đơn đặt hàng, kiểm tra - đối chiếu lượng hàng tồn kho so với khối lượng xuất, kiểm tra - đối chiếu tính cân đối hợp lý của bảng cân đối kế toán... Đôi khi End User ước ao giá như có một cảnh báo mỗi khi xuất một lượng hàng vượt quá đơn đặt hàng, khối lượng tồn kho dự trữ thấp hơn mức cho phép, bảng cân đối mất cân đối...
Đến đây chúng ta liên tưởng đến MsgBox. Ứng dụng thật đơn giản nhưng trên diễn đàn thiếu vắng hẳn công cụ này. Excel và VBA mà không tận dụng ứng hàm này thì quả là lãng phí.
Nào chúng ta cùng thảo luận!:dzo:
 
Khóa học Quản trị dòng tiền
Đào Việt Cường

Đào Việt Cường

Moderator
22/11/05
400
4
18
Khánh Hòa
Sau đây là một minh hoạ ví dụ khai thác MsgBox:
Public Function MessageBox(Optional ByVal strPrompt As String, _
Optional ByVal vbButtons As VbMsgBoxStyle = vbMsgBoxHelpButton, _
Optional ByVal strTitle As String, _
Optional ByVal HelpFile As String, _
Optional ByVal varContext, _
Optional ByVal lngKey As Long) As VbMsgBoxResult
Dim strHelpFile As String
lngKey = Err.Number
If lngKey = 0 Then lngKey = CLng(vbButtons)
If HelpFile = "" Then HelpFile = IIf(strHelpFile = "", ThisWorkbook.Path & "\Help.chm", strHelpFile)
If blnMessageBox Then blnMessageBox = GetSetting("AccGroup", "OPTIONS", "Batcanhbao", True)
If IsMissing(varContext) Then varContext = 0
If Err.Number <> 0 Then
If strTitle = "" Then strTitle = "Lỗi hệ thống: " & Err.Number
strPrompt = "Không thực hiện được vì:" & vbNewLine & strPrompt
If vbButtons = vbMsgBoxHelpButton Then
vbButtons = vbCritical + vbMsgBoxHelpButton
Else
vbButtons = vbButtons + vbMsgBoxHelpButton
End If
Else
If strTitle = "" Then strTitle = "Thông báo!"
End If
Select Case vbButtons
Case vbMsgBoxHelpButton
vbButtons = vbInformation
Case vbYesNo, vbYesNoCancel, vbRetryCancel, vbAbortRetryIgnore
vbButtons = vbButtons + vbQuestion
Case vbOK
vbButtons = vbButtons + vbInformation
End Select
vbButtons = vbButtons + vbMsgBoxHelpButton
MessageBox = MsgBox(strPrompt, vbButtons, strTitle, HelpFile, varContext)
End Function
 
Sửa lần cuối:
T

Tuanktcdcn

Lão già ham vui
18/6/04
549
52
28
47
Hà Nội
www.bluesofts.net
A-Tools v2.0 Công cụ làm Kế toán - Thống kê

Cái này có lâu rồi mà.
Đây là Add-Ins free. Các bạn có thể Upload lên Thư viện của WKT.
 

Đính kèm

  • A-Tools.rar
    220.7 KB · Lượt xem: 146

Xem nhiều

Webketoan Zalo OA