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

Thảo luận trong 'Ứng dụng Excel' bắt đầu bởi Đào Việt Cường, 16 Tháng mười hai 2005.

2,475 lượt xem

  1. Đào Việt Cường

    Đào Việt Cường Moderator

    Bài viết:
    400
    Đã được thích:
    3
    Giới tính:
    Nam
    Nơi ở:
    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:
     
    #1
  2. Đào Việt Cường

    Đào Việt Cường Moderator

    Bài viết:
    400
    Đã được thích:
    3
    Giới tính:
    Nam
    Nơi ở:
    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
     
    Last edited: 16 Tháng mười hai 2005
    #2
  3. Tuanktcdcn

    Tuanktcdcn Lão già ham vui

    Bài viết:
    548
    Đã được thích:
    50
    Nơi ở:
    Hà Nội
    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.
     

    Các file đính kèm:

    #3

Chia sẻ trang này