注册 登录
Office中国论坛/Access中国论坛 返回首页

tanhong的个人空间 http://www.office-cn.net/?49992 [收藏] [复制] [分享] [RSS]

日志

汉化MsgBox消息函数(关于VBA练习)

热度 2已有 3835 次阅读2009-8-24 23:38 |个人分类:ACCESS作品|

  • 1.0了解MsgBox 函数

    1.1 MsgBox 函数
      在对话框中显示消息,用户单击按钮,并返回一个 Integer 告诉用户单击哪一个按钮。
      语法:
      MsgBox(prompt[, buttons] [, title] [, helpfile, context])
      MsgBox 函数的语法具有以下几个命名参数:

    lPrompt必需的。字符串表达式,作为显示在对话框中的消息。prompt 的最大长度大约为 1024 个字符,由所用字符的宽度决定。如果 prompt 的内容超过一行,则可以在每一行之间用回车符 (Chr(13))、换行符 (Chr(10)) 或是回车与换行符的组合 (Chr(13) & Chr(10)) 将各行分隔开来。
    lButtons可选的。数值表达式是值的总和,指定显示按钮的数目及形式,使用的图标样式,缺省按钮是什么以及消息框的强制回应等。如果省略,则 buttons 的缺省值为 0
    lTitle可选的。在对话框标题栏中显示的字符串表达式。如果省略 title,则将应用程序名放在标题栏中。   lHelpfile可选的。字符串表达式,识别用来向对话框提供上下文相关帮助的帮助文件。如果提供了 helpfile,则也必须提供 context
    lContext可选的。数值表达式,由帮助文件的作者指定给适当的帮助主题的帮助上下文编号。如果提供了 context,则也必须提供 helpfile

    1.2 MsgBox 常数
      可在代码中的任何地方使用下列常数代替实际值:

      MsgBox 参数
常数

描述
vbOKOnly
0
只有 OK 按钮(缺省值)
vbOKCancel
1
OK Cancel 按钮
vbAbortRetryIgnore
2
AbortRetry,和 Ignore 按钮
vbYesNoCancel
3
YesNo,和 Cancel 按钮
vbYesNo
4
Yes No 按钮
vbRetryCancel
5
Retry Cancel 按钮
vbCritical
16
关键消息
vbQuestion
32
警告询问
vbExclamation
48
警告消息
vbInformation
64
通知消息
vbDefaultButton1
0
第一个按钮是缺省的(缺省值)
vbDefaultButton2
256
第二个按钮是缺省的
vbDefaultButton3
512
第三个按钮是缺省的
vbDefaultButton4
768
第四个按钮是缺省的
vbApplicationModal
0
应用程序形态的消息框(缺省值)
vbSystemModal
4096
系统强制返回的消息框
vbMsgBoxHelpButton
16384
添加Help按钮到消息框
VbMsgBoxSetForeground
65536
指定消息框窗口作为前景窗口
vbMsgBoxRight
524288
文本是右对齐的
vbMsgBoxRtlReading
1048576
指定在希伯来语和阿拉伯语系统中,文本应当显示为从右到左读


  MsgBox 返回值
常数

描述
vbOK
1
按下 OK 按钮
vbCancel
2
按下 Cancel 按钮
vbAbort
3
按下 Abort 按钮
vbRetry
4
按下 Retry 按钮
vbIgnore
5
按下 Ignore 按钮
vbYes
6
按下 Yes 按钮
vbNo
7
按下 No 按钮

2.0 MsgBox 函数实例

2.1 MsgBox 函数常规使用实例
  MsgBox "这是一个消息框函数演示实例! ", vbOKOnly + vbInformation, "江羽实例:"

2.2 MsgBox 函数返回值实例
  If MsgBox("提供返回值实例!", vbYesNo, "江羽实例:") = vbYes Then
     Debug.Print "你点的是按钮!"
  Else
     Debug.Print "你点了否按钮!"
  End If


2.3 MsgBox 函数所有参数完整实例

  Dim Msg, Title, Help, Ctxt
  Dim Style As VbMsgBoxStyle
  Dim Response As VbMsgBoxResult
   
  Msg = "消息框函数完整实例演示!" ' 定义消息信息内容。
  Style = vbYesNo + vbCritical + _
  vbDefaultButton2 + _
  vbMsgBoxHelpButton  ' 定义消息图标及相关按钮。

  Title = "江羽实例:"    ' 定义标题。
   
  ' 定义帮助文件需指定帮助文件路径。
  Help = CurrentProject.Path & "\help.chm"
  Ctxt = 1001      '此ID由定义帮助文件时自定义上下文。
  
  '显示信息并将函数返回值赋值给Response
  Response = MsgBox(Msg, Style, Title, Help, Ctxt)
  If Response = vbYes Then          ' 用户按下“是”。
     Debug.Print "你按了是按钮! "  ' 完成某操作。
  Else                              ' 用户按下“否”。
     Debug.Print "你按了否按钮!"    ' 完成某操作。
  End If


  注意:如需要消息框中提示帮助信息vbMsgBoxHelpButton 按钮常数是必须的

3.0 汉化 MsgBox 函数实现

3.1枚举常数

Enum 样式
   '枚举图标
   出错 = vbCritical
   提问 = vbQuestion
   警示 = vbExclamation
   提示 = vbInformation
   
   '枚举按钮
   仅确定 = vbOKOnly
   确定取消 = vbOKCancel
   终止重试忽略 = vbAbortRetryIgnore
   是否取消 = vbYesNoCancel
   是否 = vbYesNo
   重试取消 = vbRetryCancel
   
   '枚举默认按钮
   默认按钮1 = vbDefaultButton1
   默认按钮2 = vbDefaultButton2
   默认按钮3 = vbDefaultButton3
   默认按钮4 = vbDefaultButton4
   
   '帮助按钮常数
   帮助按钮 = vbMsgBoxHelpButton
End Enum

'枚举按钮常数
Enum 按钮
   确定 = vbOK
   取消 = vbCancel
   关于 = vbAbort
   重试 = vbRetry
   忽略 = vbIgnore
   是 = vbYes
   否 = vbNo
End Enum

  说明:所谓枚举变量,就是指用 Enum 类型定义的变量。变量和参数都可以定义为 Enum 类型。Enum 类型中的元素被初始化为 Enum 语句中指定的常数值。所赋给的值可以包括正数和负数,且在运行时不能改变。(具体参看帮助)

3.2自定义汉化消息函数

  Public Function 消息框(ByVal 内容 As String, _
    Optional 样式 As 样式 = 仅确定, _
    Optional 标题 As String = "江羽实例:", _
    Optional 帮助文件, _
    Optional 上下文) As 按钮

          消息框 = MsgBox(内容, 样式, 标题, 帮助文件, 上下文)
  End Function

  说明:Optional关键字实现可选参数,参数可以缺省,并可以指定一个缺省值。

3.3 汉化消息函数实例演示
  If 消息框("这是汉化的消息框函数!", _
                确定取消 + 出错 + 帮助按钮, , _
                "C:\Help.chm", 1001) = 确定 Then
     消息框 "你点了【确定】按钮!", 提示
  Else
     消息框 "你点了【取消】按钮!", 提示
  End If

  说明:C:\Help.chm 应为你指定帮助文件的完整路径。

刚表态过的朋友 (0 人)

评论 (0 个评论)

facelist doodle 涂鸦板

您需要登录后才可以评论 登录 | 注册

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-4-19 17:28 , Processed in 0.069159 second(s), 17 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

返回顶部