学习笔记

5.用户界面设计(VBA)

1.在Excel中自由地设计界面

控件,必不可少的调色盘

Excel里有两种类型的空间:窗体控件(窗体工具栏的控件)和ActiveX控件(控件工具箱中的控件)

窗体控件(表单控件)

有9个表单控件可以添加到工作表中

控件名称控件说明
标签用于输入和显示静态文本
分组框用于组合其他多个控件
按钮用于执行宏命令
复选框选择控件,可以多项选择
选项按钮用于选择的控件,通常会是多个选项按钮用组合框组合在一起,在一组中只能同时选择一个选项按钮
列表框显示多个选项的列表,用户可以选一个选项
组合框提供可选择的多个选项,用户可以选择其中的一个项目
滚动条包括水平滚动条和垂直滚动条
微调控件通过单击控件的箭头来选择数值
ActiveX控件
ActiveX控件描述常见用途
文本框 (TextBox)允许用户输入或显示文本收集用户输入,显示计算结果
命令按钮 (CommandButton)可点击的按钮触发宏或执行特定操作
复选框 (CheckBox)允许用户选择或取消选择选项多项独立选择
选项按钮 (OptionButton)允许用户从多个选项中选择一个互斥选择
列表框 (ListBox)显示可选项目列表从预定义列表中选择一项或多项
组合框 (ComboBox)结合了文本框和下拉列表允许用户输入或从列表中选择
切换按钮 (ToggleButton)有两种状态的按钮(按下/弹起)开关功能
滚动条 (ScrollBar)允许在一定范围内滑动选择值调整数值或滚动内容
旋转按钮 (SpinButton)上下箭头按钮,用于增加或减少值精确调整数值
标签 (Label)显示文本,不可编辑提供说明或显示结果
图像 (Image)显示图片添加图标或图示
框架 (Frame)用于组织和容纳其他控件将相关控件分组
多页 (MultiPage)创建多个标签页组织复杂界面,节省空间
选项卡条 (TabStrip)创建类似文件夹标签的界面在不同视图间切换

2.使用控件

在工作表中使用窗体控件

添加一个组合框控件

点击“组合框”按钮,在工作表中拖动即可插入,(这个控件需要长方形才能显示完整)可以用鼠标再次调整控件的大小与位置,如果是不可编辑状态,可以先用鼠标右键单击,然后再调整

右键单击控件还有个选项是【设置控件格式】,可以设置“组合框”的数据源区域和单元格链接

数据源区域用来指定组合框中显示的选项,

单元格链接则是用来指定,将用户选择的结果存储在哪个单元格(选择第一个选项就会在链接单元格显示1,以此类推)

表单控件无法在VBE界面看到属性窗口

在工作表中使用ActiveX控件

ActiveX控件可以在VBE界面看见属性框,可以设置各种属性、

另外,选中某个Sheet,在属性框的上面也有个下拉菜单,可以选择性修改这个工作表中所有的控件

ActiveX控件与表单控件不同,在使用前,需要用户针对控件编写相应的代码,比如添加了两个单选按钮后,想知道用户选择了哪个选项,得分别给这两个控件编写事件过程

窗体控件和ActiveX控件的区别

窗体控件只能在工作表中通过设置控件的格式来指定宏或使用,ActiveX控件拥有很多属性和事件,可以在工作表和用户窗体中使用。

如果是以编辑数据为目的,一般使用窗体控件就可以了,如果在编辑数据的同时还要进行其他操作,使用ActiveX控件会灵活很多。

3.与用户交互,简单的输入输出对话框

对话框是程序与用户进行交互的工具,用来输入或输出信息

InputBox函数

InputBox函数创建一个接受用户输入的对话框,供用户输入数据

prompt是唯一必须参数,其他参数都是可选参数,省略参数时,需要给参数留位置但内容留空(还是用英文逗号隔开),比如【参数1,,参数3】

编写代码时,所有的参数名称都是可以省略的,以下代码可以简写为

str = InputBox(“提示词”, “标题”, “默认内容”, 1000, 1000)

Sub InBox()
    Dim str As String
    '将输入的值赋给变量str
    str = InputBox(prompt:="提示词", Title:="标题", Default:="默认内容", xpos:=1000, ypos:=1000)
    Range("A1") = str
End Sub

第一个参数prompt是对话框上的提示文字

第二个参数Title是对话框的标题,如果省略,默认为Microsoft Excel

第三个参数Default是输入框中的默认值,如果省略则默认为空

第四个参数xpos是对话框与屏幕左边的距离(单位并不是像素),如果省略则默认为居中

第五个参数ypos是对话框与屏幕顶端的距离(如果省略,对话框将默认位于距离屏幕顶端越屏幕高度三分之一的位置)

Application对象的InputBox方法

使用Application对象的InputBox方法也可以创建接受用户输入的对话框

在语法格式上,必须得通过Application.InputBox来调用,在参数方面,比VBA的InputBox函数多了一个type参数,另外后者的xpos与ypos参数名,在Application.InputBox中可能换了个名字

语法格式:

InputBox(Prompt As String, [Title], [Default], [Left], [Top], [HelpFile], [HelpContextID], [Type])

type参数是1个数值,指定返回值的数据类型:

  • 0 或省略:公式
  • 1:数字
  • 2:字符串
  • 4:逻辑值(True/False)
  • 8:单元格引用,作为 Range 对象
  • 16:错误值,如 #N/A
  • 64:数组

普通的InputBox只能返回1个String类型的字符串,而Application.InputBox方法返回的数据类型不确定,并且多了一个type函数

以下程序让用户选择一个单元格区域,然后在单元格区域输入数值100

Sub RngInput()
    Dim rng As Range
    On Error GoTo cancel    '如果单击取消按钮,出现错误,跳转到cancel处
    '将选中的单元格对象赋值给变量rng
    Set rng = Application.InputBox("请选择需要输入数值的单元格区域", Type:=8)
    rng.Value = 100
cancel:
End Sub

如果返回值是多种类型中的一种,就把Type参数的值设为相应类型的和:

1表示数字,2表示文本,1+2表示返回值可以是文本和数字中的任意一种,以下两条语句是等效的:

Application.InputBox(prompt:=”请输入内容”,type=1+2)

Application.InputBox(prompt:=”请输入内容”,type=3)

MsgBox函数

使用MsgBox函数,可以创建一个对话框,告诉用户某些信息,并等待用户单击其中某个按钮后继续运行

Sub msg()
MsgBox Prompt:="提示内容", Buttons:=vbOKOnly + vbInformation, Title:="这是标题"
End Sub

Prompt是必选参数,它是要显示在消息框中的文本

buttons是可选参数,指定要显示的按钮类型和图表

title是可选参数,消息框的标题

helpfile和context是可选参数,用于指定帮助文件,不常用

buttons参数详细:

MsgBox函数的buttons参数实际上是一组常量值的组合,这些常量可以分为三类:按钮类型、图标类型和默认按钮。让我们详细探讨每一类:

按钮类型常量:

vbOKOnly (0): 只显示”确定”按钮(默认值)

vbOKCancel (1): 显示”确定”和”取消”按钮

vbAbortRetryIgnore (2): 显示”中止”、”重试”和”忽略”按钮

vbYesNoCancel (3): 显示”是”、”否”和”取消”按钮

vbYesNo (4): 显示”是”和”否”按钮

vbRetryCancel (5): 显示”重试”和”取消”按钮

图标类型常量:

vbCritical (16): 显示危险标志图标(红色圆圈内含 X)

vbQuestion (32): 显示警告查询图标(问号)

vbExclamation (48): 显示警告消息图标(感叹号)

vbInformation (64): 显示信息消息图标(圆圈内含字母 i)

默认按钮常量:

vbDefaultButton1 (0): 第一个按钮是默认按钮(默认值)

vbDefaultButton2 (256): 第二个按钮是默认按钮

vbDefaultButton3 (512): 第三个按钮是默认按钮

vbDefaultButton4 (768): 第四个按钮是默认按钮

其他特殊常量:

vbApplicationModal (0): 应用程序模式(默认)

vbSystemModal (4096): 系统模式

现在,让我们通过一些示例来说明如何使用这些参数:

Sub ButtonsDemo()
    ' 基本的"确定"按钮消息框
    MsgBox "This is a simple message", vbOKOnly, "Simple Message"
    
    ' "是/否"按钮带问号图标,"否"为默认按钮
    MsgBox "Do you want to continue?", vbYesNo + vbQuestion + vbDefaultButton2, "Question"
    
    ' "中止/重试/忽略"按钮带感叹号图标
    MsgBox "An error occurred!", vbAbortRetryIgnore + vbExclamation, "Error"
    
    ' "重试/取消"按钮带危险图标,"重试"为默认按钮
    MsgBox "Failed to connect. Retry?", vbRetryCancel + vbCritical + vbDefaultButton1, "Connection Error"
    
    ' 系统模式的消息框(会阻止用户与系统其他部分交互)
    MsgBox "System level message", vbOKOnly + vbSystemModal, "System Message"
End Sub

使用这些参数时的一些提示:

您可以使用 “+” 号来组合多个常量。例如:vbYesNo + vbQuestion

通常,您会选择一个按钮类型,一个图标类型,和一个默认按钮选项(如果需要)。

默认按钮选项只有在有多个按钮时才有意义。

vbSystemModal 应谨慎使用,因为它会阻止用户与系统的其他部分交互。

记住,选择适当的按钮和图标可以提高您的VBA程序的用户体验。例如,对于错误消息使用 vbCritical 图标,对于信息性消息使用 vbInformation 图标等。

设置默认按钮

默认情况下按回车键即可执行的按钮,可以设置第三个参数值,用+号与前两个参数值连接:

vbDefaultButton1 (0): 第一个按钮是默认按钮(默认值)

vbDefaultButton2 (256): 第二个按钮是默认按钮

vbDefaultButton3 (512): 第三个按钮是默认按钮

vbDefaultButton4 (768): 第四个按钮是默认按钮

Sub msg()
Dim result As VbMsgBoxResult
result = MsgBox(Prompt:="提示内容", Buttons:=vbAbortRetryIgnore + vbExclamation + vbDefaultButton3, Title:="这是标题")

If result = vbAbort Then
    MsgBox "你选择了终止"
Else
MsgBox "你选择了重试"
End If
End Sub
指定对话框类型

Buttons参数还有第四组设定值,用来决定对话框的类型:

vbApplicationModal (0):应用程序强制返回:暂停执行应用程序,直到直到用户对消息框作出响应才继续工作,这是默认选项,不需要显示指定(用户仍可以切换到其他应用程序)

vbSystemModal (4096):系统强制返回:暂停执行所有程序,直到用户对消息框作出响应才工作,它会创建一个系统模式的对话框,这种对话框会组织用户与系统中任何其他窗口交互,直到响应该对话框。它会显示在所有其他窗口之上,并且用户无法切换到其他应用程序(谨慎使用)

实测在使用vbSystemModal 时也能切换到其他窗口,区别是后者会让消息框始终保持在最前

Sub DialogTypeDemo()
    ' 应用程序模式对话框(默认)
    MsgBox "This is an application modal dialog.", _
           vbOKOnly + vbInformation, _
           "Application Modal"

    ' 系统模式对话框
    MsgBox "This is a system modal dialog. " & _
           "You can't interact with other windows until you dismiss this.", _
           vbOKOnly + vbExclamation + vbSystemModal, _
           "System Modal"
End Sub
MsgBox的返回值

记得需要先 dim 变量 as VbMsgBoxResult,然后让变量=msgbox

设置Buttons参数可以让对话框显示不同的按钮,单击不同的按钮,将返回不同的值,程序可以根据返回值选择不同的操作:

vbOK (1): 用户点击了”确定”按钮

vbCancel (2): 用户点击了”取消”按钮

vbAbort (3): 用户点击了”中止”按钮

vbRetry (4): 用户点击了”重试”按钮

vbIgnore (5): 用户点击了”忽略”按钮

vbYes (6): 用户点击了”是”按钮

vbNo (7): 用户点击了”否”按钮

Sub MsgBoxReturnDemo()
    Dim result As VbMsgBoxResult
    
    ' 示例1: 是/否对话框
    result = MsgBox("Do you want to continue?", vbYesNo + vbQuestion, "Confirmation")
    
    If result = vbYes Then
        MsgBox "You chose to continue.", vbInformation, "Proceeding"
    Else
        MsgBox "You chose to stop.", vbInformation, "Stopping"
    End If
    
    ' 示例2: 是/否/取消对话框
    result = MsgBox("Save changes before closing?", vbYesNoCancel + vbQuestion, "Save Changes")
    
    Select Case result
        Case vbYes
            MsgBox "Saving changes and closing.", vbInformation, "Saving"
        Case vbNo
            MsgBox "Closing without saving.", vbInformation, "Closing"
        Case vbCancel
            MsgBox "Operation cancelled.", vbInformation, "Cancelled"
    End Select
    
    ' 示例3: 重试/取消对话框
    result = MsgBox("Connection failed. Retry?", vbRetryCancel + vbExclamation, "Connection Error")
    
    If result = vbRetry Then
        MsgBox "Retrying connection...", vbInformation, "Retrying"
    Else
        MsgBox "Connection attempt cancelled.", vbInformation, "Cancelled"
    End If
End Sub

Application帝乡的FindFile方法

使用Application对象的FindFile方法可以显示【打开】对话框,用户可以在对话框中选择并打开文件

Sub OpenFile()
    If Application.FindFile = True Then
    MsgBox "选择的文件已打开"
    Else
    MsgBox "没有打开任何文件"
    End If
End Sub

需要注意的是,FindFile本身并不返回所选文件的路径,我们需要使用GetOpenFilename方法来获取文件路径

Sub AdvancedFindFileDemo()
    ' 声明一个字符串变量用于存储文件路径
    Dim filePath As String
    
    ' 使用Application.FindFile方法显示文件选择对话框
    If Application.FindFile Then
        ' 使用GetOpenFilename方法获取用户选择的文件路径
        ' FileFilter参数限制文件类型为Excel文件(.xlsx)
        ' Title参数设置对话框标题
        filePath = Application.GetOpenFilename(FileFilter:="Excel Files (*.xlsx), *.xlsx", Title:="Select an Excel File")
        
        ' 检查用户是否选择了文件(如果用户取消,GetOpenFilename返回"False"字符串)
        If filePath <> "False" Then
            ' 用户选择了文件,显示选择的文件路径
            MsgBox "You selected: " & filePath, vbInformation, "File Selected"
            
            ' 这里可以添加打开和处理文件的代码
            ' 例如:
            ' Workbooks.Open filePath  ' 打开选中的工作簿
            
            ' 可以在这里添加更多的文件处理代码
        Else
            ' 用户在GetOpenFilename对话框中取消了选择
            MsgBox "File selection was cancelled.", vbInformation, "Cancelled"
        End If
    Else
        ' 用户在初始的FindFile对话框中取消了操作
        MsgBox "File selection was cancelled.", vbInformation, "Cancelled"
    End If
End Sub

Application对象的GetOpenFilename方法

可以调用Application对象的GetOpenFilename方法显示【打开】对话框,在对话框里选择文件,获得文件名称。

虽然同是显示【打开】对话框,但GetOpenFilename方法并不会打开选中的文件,而是返回所选文件的文件名(含路径)字符串,而FindFile方法则是返回一个布尔值(True如果选择了文件)

语法

Application.GetOpenFilename([FileFilter], [FilterIndex], [Title], [ButtonText], [MultiSelect])

参数详解:

FileFilter(可选):

类型:String

用途:指定文件类型过滤器

语法:”描述1,.扩展名1,描述2,.扩展名2″

示例:

FileFilter:=”Excel Files (*.xlsx),*.xlsx,Text Files (*.txt),*.txt,All Files (*.*),*.*”

FilterIndex(可选):

FilterIndex参数指定【文件类型】下来列表中的第几项为默认文件筛选条件,如果省略默认为1.

类型:Integer

用途:指定默认选中的过滤器索引(从1开始)

示例:

FilterIndex:=2 ‘ 选择第二个过滤器

Title(可选):

Title参数用于设置对话框的标题,如果省略,默认为打开

类型:String

用途:设置对话框的标题

示例:

Title:=”Please Select a File”

ButtonText(可选):

类型:String

用途:自定义”打开”按钮的文本(在某些应用程序中可用)

示例:

ButtonText:=”Select This File”

MultiSelect(可选):

MultiSelect参数决定是否可以选择多个文件,如果为True表示可以选中多文件,False表示只能选择1个文件

类型:Boolean

用途:允许选择多个文件

示例:

MultiSelect:=True

返回值:

单文件选择:返回所选文件的完整路径(字符串)

多文件选择:返回包含所有选中文件路径的数组

取消选择:返回布尔值 False(作为字符串 “False”)

GetOpenFilename与FindFile对比

GetOpenFilename 确实具有 FindFile 的大部分功能,而且在某些方面更加强大和灵活。让我们详细比较这两个方法:

基本功能:

FindFile:显示标准的”打开文件”对话框。

GetOpenFilename:也显示标准的”打开文件”对话框。

返回值:

FindFile:返回布尔值(True 如果选择了文件,False 如果取消)。

GetOpenFilename:返回字符串(选中文件的完整路径,或者 “False” 如果取消)。

参数和灵活性:

FindFile:没有参数,无法自定义对话框。

GetOpenFilename:有多个可选参数,允许更多自定义:

FileFilter:指定文件类型过滤器

FilterIndex:设置默认选中的过滤器

Title:自定义对话框标题

ButtonText:自定义按钮文本(在某些应用中)

MultiSelect:允许多文件选择

文件路径:

FindFile:不直接提供所选文件的路径。

GetOpenFilename:直接返回所选文件的完整路径。

多文件选择:

FindFile:不支持多文件选择。

GetOpenFilename:支持多文件选择(通过 MultiSelect 参数)。

使用方式:

FindFile:通常需要与其他方法(如 GetOpenFilename)配合使用才能获取文件路径。

GetOpenFilename:可以独立使用,一步完成文件选择和路径获取。

Application对象的GetSaveAsFilename方法

用于显示标准的【另存为】对话框,它允许用户选择文件保存的位置和文件名,但实际上并不保存文件。它只是返回用户选择的文件路径和名称

语法

result = Application.GetSaveAsFilename([InitialFilename], [FileFilter], [FilterIndex], [Title], [ButtonText])

InitialFilename(可选):对话框中默认显示的文件名

FileFilter(可选):文件类型过滤器

FilterIndex(可选):默认选择的文件类型索引

Title(可选):对话框的标题

ButtonText(可选):“保存”按钮的文本

返回值

如果用户点击了“保存”,返回所选文件的完整路径和文件名

如果用户取消的了操作,则会返回False

Sub SaveWorkbookAs()
    Dim filePath As Variant

    ' 显示另存为对话框
    filePath = Application.GetSaveAsFilename( _
        InitialFileName:="新的工作簿.xlsx", _
        FileFilter:="Excel文件(*.xlsx),*.xlsx", _
        Title:="请选择保存位置")

    ' 检查用户是否选择了文件
    If filePath <> False Then
        ' 保存工作簿,指定文件格式
        ThisWorkbook.SaveAs Filename:=filePath, FileFormat:=xlOpenXMLWorkbook
        MsgBox "文件已保存到: " & filePath
    Else
        MsgBox "取消了保存"
    End If
End Sub

Application对象的FileDialog属性

使用Application对象的FileDialog属性可以获得指定目录的路径及名称

用于显示文件对话框,以便用户可以选择文件夹或名称

Sub getFolder()
    With Application.FileDialog(filedialogtype:=msoFileDialogFolderPicker)  '参数只允许用户选择一个文件夹
    .InitialFileName = "C:\Users\llj\Desktop\演示"    '设置起始目录
    .Title = "选择一个目录" '设置对话框标题
    .Show   '显示对话框
    If .SelectedItems.Count > 0 Then    '判断是否选择了目录
        Range("A1").Value = .SelectedItems(1)   '将选中的目录名以及路径写入A1单元格
    End If
    End With
End Sub

filedialogtype参数有多种:

FileDialogType 参数说明示例代码
msoFileDialogOpen1打开文件对话框Application.FileDialog(msoFileDialogOpen)
msoFileDialogSaveAs2另存为对话框Application.FileDialog(msoFileDialogSaveAs)
msoFileDialogFilePicker3文件选择器对话框Application.FileDialog(msoFileDialogFilePicker)
msoFileDialogFolderPicker4文件夹选择器对话框Application.FileDialog(msoFileDialogFolderPicker)

4.构建用户窗体,自己设计交互页面

关于用户窗体

用户窗体是Excel中的另一对象————UserForm对象。用户可以在窗体上自由添加ActiveX控件,并利用这些控件从用户那里获得信息,或将信息输出给客户

添加一个用户窗体

用户可以在VBE界面的菜单栏【插入-用户窗体】

也可以通过工程资源管理器,右键Sheet对象或ThisWorkbook对象选择:插入-用户窗体

设置窗体的属性

作为对象,用户窗体也有自己的属性,如名称、大小等

新窗体所有属性都是默认的,可以在【属性窗口】中重新设置

为了方便设置,Excel允许用户按不同的排序方式查看对象的属性,如果对某个属性不熟悉,可以选中属性名称,然后按F1键即可跳转到帮助页面:

在窗体上添加控件

新插入的窗体,只是一个空白的对话框,要想实现同用户交互的目的,需要在窗体上添加不同的控件,而添加控件则需要调出【工具箱】窗口。

选中窗体后,可以通过【视图-工具箱】调出。

显示窗体

显示窗体就是吧设计好的窗体显示给用户

手动显示窗体

选中窗体后,按F5运行,即可启动一个窗体。

用代码显示窗体

1.加载窗体。初始化窗体,为窗体分配内存,但并不显示窗体,语句为【Load 窗体名称】

2.显示窗体。将窗体显示给用户,语句为【窗体名称.Show】

Sub xianshi()
Load UserForm1	'加载指定名称的窗体
UserForm1.Show	'显示该窗体
End Sub

如果在调用窗体的Show方法前窗体没有加载,Excel会自动加载这个窗体,然后显示它,所以显示窗体可以省略加载窗体的语句,直接调用窗体对象的Show方法。

模式窗体

如果.Show方法省略参数,或将参数设置为vbModal,这个窗体将会以模式窗体显示,在这个模式下,窗体显示后将停止执行“显示窗体”之后的代码,直到退出或隐藏窗体,并且只有退出或隐藏窗体后,才可以操作窗体外的其他元素(显示窗体后不能操作窗体以外的任何对象)。

Sub xianshi()
UserForm1.Show vbModal
MsgBox "test"   '这行代码会在窗体关闭或隐藏后才执行
End Sub
无模式窗体

窗体显示后会继续执行程序里余下的语句,并且可以操作其他窗体或界面:

需要将.Show方法的参数设置为vbModeLess

Sub xianshi()
UserForm1.Show vbModeless
MsgBox "test"   '在显示窗体后,这行代码会立刻继续执行
End Sub

关闭窗体

手动关闭窗体

直接点击窗体右上角的关闭按钮

使用代码关闭窗体

如果想取消显示窗体,可以通过代码隐藏或卸载它

如果选择隐藏窗体,虽然窗体不可见,但仍保留在内存中,语句为【窗体.hide】

而卸载窗体则是将窗体从屏幕和内存中同时删除,语句为【Unload 窗体]

Sub hideform()
UserForm1.Hide	'这行代码会隐藏窗体
Unload 窗体	'这行代码会“卸载”窗体
End Sub

尽管隐藏和卸载窗体都能将窗体从屏幕上删除,但因为显示一个隐藏的窗体比显示一个卸载的窗体用的时间短,所以当需要反复使用某个窗体时,建议使用.Hide方法隐藏。

还可以给窗体添加一个按钮控件,这个控件的Click事件设置为【Unload Me】,即点击该按钮后Unload窗体

使用控件

初始化窗体,UserForm对象的Initialize事件

加载窗体时会触发Initialize事件,在这个事件中,可以对窗体、变量等进行初始化设置

右键窗体空白处,选择【查看代码】,然后选择UserForm对象的Initialize事件

在对应的事件Sub中写入初始化窗体的代码

用键盘控制窗体

更改Tab键顺序

只有对象具有焦点时,才能接受键盘输入,控件的Tab键顺序决定用户在按下Tab键或Shift+Tab组合键后激活控件的属性呢,在设计用户窗体时,系统会按添加控件的先后顺序确定控件的Tab键顺序,当然,这个顺序是可以更改的

用户可以在选中窗体后,在菜单栏选择【视图-Tab键顺序】来进行修改。

给控件指定快捷键

选中控件,设置它的Accelerator属性,比如字母N,在窗体运行后,按ALT+N即可触发该控件。

5.改造Excel现有的界面

更改标题栏的程序名称

Excel的标题栏用于显示程序及文件名称,默认的程序名称为Microsoft Excel,可以设置Application对象的Caption属性来进行程序名称的修改

Application.Caption=”自定义程序名称”

显示或隐藏菜单栏

隐藏菜单栏的代码:

Application.DisplayFullScreen = False ‘让工作表全屏显示

设置窗口

还可以对工作表的窗口进行设置

Sub WindowSet()
    With ActiveWindow
        .DisplayHeadings = False '隐藏行标和列标
        .DisplayHorizontalScrollBar = False '隐藏水平滚动条
        .DisplayVerticalScrollBar = False '隐藏垂直滚动条
        .DisplayGridlines = False '隐藏网格线
        .DisplayWorkbookTabs = False '隐藏工作表标签
    End With
End Sub

其他设置

Sub Other()
    With Application
        ' 隐藏编辑栏(公式栏)
        .DisplayFormulaBar = False
        
        ' 禁用"询问问题"下拉菜单(通常在较新版本的Excel中出现)
        .CommandBars.DisableAskAQuestionDropdown = True
        
        ' 右键单击工作表标签后不显示菜单
        .CommandBars("ply").Enabled = False
        
        ' 右键单击工作表区域后不显示菜单
        .CommandBars("cell").Enabled = False
        
        ' 隐藏状态栏
        .DisplayStatusBar = False
        
        ' 隐藏任务窗格(启动时不显示开始对话框)
        .ShowStartupDialog = False
    End With
End Sub

1 thought on “5.用户界面设计(VBA)”

发表回复