精华内容
下载资源
问答
  • VBA窗体默认只有一个关闭按钮,没有最大化和最小化按钮,下面的代码可以方便的为窗体增加最大、最小化按钮,让窗口使用更方便。 调用方法 窗体最大最小化 Me 窗体最大化 Me 函数代码 '窗体的最大最小化 Public ...

    给VBA窗体增加最大化、最小化窗体按钮


    VBA窗体默认只有一个关闭按钮,没有最大化和最小化按钮,下面的代码可以方便的为窗体增加最大、最小化按钮,让窗口使用更方便。

    调用方法

    窗体最大最小化 Me
    窗体最大化 Me
    

    函数代码

    '窗体的最大最小化
    Public Declare Function ShowWindow Lib "user32" (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long
    Public Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
    Public Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long
    Public Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
    
    Public Const GWL_STYLE = (-16)
    Public Const WS_MAXIMIZEBOX = &H10000
    Public Const WS_MINIMIZEBOX = &H20000
    Public Const WS_THICKFRAME = &H40000
    Public Const SW_MAXIMIZE = 3
    Public Const SW_MINIMIZE = 6
    Public Const SW_NORMAL = 1
    
    '设置屏幕,0=X,1=Y
    Public Declare Function GetSystemMetrics Lib "user32" (ByVal nIndex As Long) As Long
    
    Public Sub 窗体最大最小化(窗体 As Object)
       Dim hWndForm As Long, MyType As String
       Dim iStyle As Long
       hWndForm = FindWindow("ThunderDFrame", 窗体.Caption) '取得窗口句柄
       iStyle = GetWindowLong(hWndForm, GWL_STYLE)          '取得窗口样式
       iStyle = iStyle Or WS_THICKFRAME                     '重新设置窗口样式
       iStyle = iStyle Or WS_MINIMIZEBOX                    '添加最小化按钮
       iStyle = iStyle Or WS_MAXIMIZEBOX                    '添加最大化按钮
       SetWindowLong hWndForm, GWL_STYLE, iStyle            '应用样式
    End Sub
    
    Public Sub 窗体最大化(窗体 As Object)
       Dim hWndForm As Long, MyType As String
       Dim iStyle As Long
       hWndForm = FindWindow("ThunderDFrame", 窗体.Caption) '取得窗口句柄
       iStyle = GetWindowLong(hWndForm, GWL_STYLE)          '取得窗口样式
       iStyle = iStyle Or WS_THICKFRAME                     '重新设置窗口样式
       'iStyle = iStyle Or WS_MINIMIZEBOX                    '添加最小化按钮
       iStyle = iStyle Or WS_MAXIMIZEBOX                    '添加最大化按钮
       SetWindowLong hWndForm, GWL_STYLE, iStyle            '应用样式
    End Sub
    

    窗体例子

    在这里插入图片描述
    ——专注办公软件的二次开发及培训,你有问题,我有思路!
    ——微博、微信、CSDN同号:w_dexu
    ——转载请注明出处!

    微信二维码扫码加微信

    展开全文
  • Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" _ (ByVal lpClassName As String, ByVal lpWindowName As String) As Long Private Declare Func...
    Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" _
                                           (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
    Private Declare Function DrawMenuBar Lib "user32" (ByVal myHwnd As Long) As Long
    Private Declare Function DeleteMenu Lib "user32" _
                                        (ByVal hMenu As Long, ByVal nPosition As Long, ByVal wFlags As Long) As Long
    Private Declare Function GetSystemMenu Lib "user32" _
                                           (ByVal myHwnd As Long, ByVal bRevert As Long) As Long
    Private Sub UserForm_Initialize()
        Dim myHwnd As Long
        Dim hMenu As Long
        Dim myRc As Long
        Dim myClassName As String
        Dim SC_CLOSE As Long
        SC_CLOSE = &HF060
        myClassName = "ThunderDFrame"
        myHwnd = FindWindow(myClassName, Me.Caption)
        hMenu = GetSystemMenu(myHwnd, 0&)
        myRc = DeleteMenu(hMenu, SC_CLOSE, MF_BYCOMMAND)
        myRc = DrawMenuBar(myHwnd)
    End Sub 

     

    展开全文
  • 学习资源:《Excel VBA从入门到进阶》第53集 by兰色幻想一、窗体的使用窗体的插入和启用 ①插入菜单--用户窗体 ②工程窗口中右键--... 窗体的关闭 ①手工点关闭按钮 ②用代码执行关闭 例:单击窗体时关闭窗体。Priv...

    7f48dae948a51d1738dcc3435aea52f2.png

    学习资源:《Excel VBA从入门到进阶》第53集 by兰色幻想


    一、窗体的使用

    1. 窗体的插入和启用

    ①插入菜单--用户窗体

    42cec4b802021ac8ca74f295e8dbb961.png

    ②工程窗口中右键--插入--用户窗体

    d45984a63c82af95728e51d79f402a76.png

    2. 窗体的运行

    ①手工点运行按钮或快捷键F5

    91182063e2973b2b261da555818958e6.png

    ②用代码执行

    Sub 显示窗体()
       入库单.Show   
    End Sub

    3. 窗体的关闭

    ①手工点关闭按钮

    ②用代码执行关闭

    例:单击窗体时关闭窗体。

    Private Sub UserForm_Click()'单击事件
     Unload Me'关闭窗体
    End Sub

    4. 窗体的显示设置

    ①窗体的标题

    这里需要注意,在属性的第一栏“名称”写窗体名称会现在在窗体列(见红框处),如果是需要修改显示出来的窗体标题,则需要设置Captain的值(见黄框处)。

    52d9c60b83fad010b9f1467d25cb1abb.png

    ②窗体的背景色

    有两种方法,一是设置属性中的BackColor颜色值,二是写代码。

    08c48f6c691aa80ef6ff1578dd7cef0f.png
    BackColor显示的是16位的颜色值

    代码示例:写一段点击窗体背景就换变色的代码 。

    提示:用RGB值颜色值(red, green, blue),rnd()函数产生随机值。

    Private Sub UserForm_Click()
     Dim 红 As Byte, 绿 As Byte, 蓝 As Byte
     红 = Rnd() * 255  1
     绿 = Rnd() * 255  1
     蓝 = Rnd() * 255  1
     Me.BackColor = RGB(红, 绿, 蓝)
    End Sub

    f63c8242a9ddaecbdf6f69a3bbfcc4b6.gif
    点击随机变换窗体背景颜色

    ③ 窗体的背景图片

    依旧有两种方法,一是直接在属性栏的Pictrue处点击右边的浏览文件按钮,选择背景图片;二是写代码。

    图片的大小位置有可能和窗体不匹配,如果需要调整图片的话,就通过以下三个属性调整:

    PictureAlignment——调整图片对齐的位置,比如左上角对齐 fmPictrueAlignmentTopLeft、右下角对齐 fmPictrueAlignmentBottomRight等。

    PictureSizeMode——显示背景图片的模式,有三个值:0裁剪图片以匹配窗体大小fmPictureSizeModeClip、1延伸图片以铺满窗体fmPictureSizeModeStretch、3放大图片去适应窗体大小fmPictureSizeModeZoom。

    PictureTilling——是否在窗体重复图片。

    aafb1be0ee9c6af255c6fc56f190e566.png
    UserForm1.Picture=loadpicture(图片路径)
    UserForm1.PictureAlignment
    UserForm1.PictureSizeMode
    UserForm1.PictureSizeMode

    5. 窗体的位置和大小

    61266c632857d9ed319cc2e20c847ca9.png

    height 窗体高

    left top 窗体与excel窗口左边或顶边之间的距离

    Width 窗体的宽度

    StartupPosition 设置窗体启动时的位置,

    6. 窗体显示的一些行为

    ShowModal 设置在窗体显示时,是否可以编辑单元格区域

    f8b07661832b9263fc669bb704ad308f.png

    7. 窗体的删除

    选中窗体,右键,移除即可。

    d8e1753669cfc237ec3df51cb71da5b8.png

    二、控件的使用

    1. 控件的插入

    控件的插入是通过控件工具箱来实现的,控件工具箱中显示的是常用控件,如果想加载其他控件,在控件工具箱点击鼠标右键——附加控件,选择想要加入的控件。

    ecc428483d31fba292ec378e7c212afe.png
    如果没找到工具箱,可以在这个位置找到。

    126e573d1c5c10fbe688f704a1344604.png
    控件工具箱

    1fd5b8f76e86b5370ecbeb14ebe29221.png
    在控件工具箱点击鼠标右键——附加控件,选择想要加入的控件,不知道控件名就百度。

    2. 控件的删除

    右键选取后直接删除即可。

    eb740d11a2bd32b9fb615135f3be2fe9.png

    3. 控件的格式对齐与分布

    可以通过格式菜单来完成。

    例:调整四个文本框的位置与大小。

    cb47441bbf9b1d584e5e476da070e8cc.gif

    4. 控件的tab顺序

    按tab键后的控件选取顺序,右击窗体,选择设置Tab键顺序。

    3d4fb84d3a6108f0a47028fb49be277e.png

    例:从第一个文本框按Tab键跳转到第四个文本框。(键盘按键显示在左上角)

    a2bda231c2a968f8afc6ea26c6b5861d.gif

    不想让Tab跳转到的控件,可以点击控件,在属性栏找到TabStop,选择True则表示tab键会在这里停留;选择False则不会停留,tab键会跳过这个控件,另,设置后,按Enter键也会跳过,只能用鼠标选择。

    d08394473d5453f36bbf8d95ea1d19d1.png

    5. 控件代码的写法

    在窗体内表示所有控件的集合是controls。

          Controls(序号)
          Controls("控件名称")

    6. 判断控件的类型

    用typename函数来判断一个控件的类型。

    三、窗体的导出和导入

    有时候我们需要把一个EXCEL工程的窗体及其控件导入到别一个窗体中,或者把窗体内容保么可以在窗体上右键--导出文件,就可以另存为窗体格式的文件,导入是利用右键的"导入文件功能,选取窗体格式的文件导入即可。

    ef2cf1f0c2c53f1f9ddf86a3f86910c6.png

    一点碎碎念:最近两个月在忙考试和一些家事,电脑都故障了很久才有空拿去修理,就鸽了挺久的,而且挺多内容都忘记了emmm,学习得勤学多用啊……

    展开全文
  • 我们在使用VBA窗体时,不知你是否注意到:VBA中的窗体标题栏上只有关闭按纽,没有最大最小化按钮的。如下图。那么是否可以利用代码让窗口上也出现类似于EXCEL和WORD窗口的最大和最小化按钮呢?这时就要利用API函数...

    大家好,我们今日继续讲解VBA代码解决方案的第102讲内容:如何在用户窗体上添加最大、最小化按钮。我们在使用VBA的窗体时,不知你是否注意到:VBA中的窗体标题栏上只有关闭按纽,没有最大最小化按钮的。如下图。

    15895010c028406fd9af1c3bc3d5d3e2.png

    那么是否可以利用代码让窗口上也出现类似于EXCEL和WORD窗口的最大和最小化按钮呢?这时就要利用API函数了,利用API函数在窗体的标题栏上添加最大最小化按钮,是非常可行的。

    如下面的代码所示。

    Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long

    Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long) As Long

    Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long

    Private Const WS_MAXIMIZEBOX = &H10000

    Private Const WS_MINIMIZEBOX = &H20000

    Private Const GWL_STYLE = (-16)

    Private Sub UserForm_Initialize() '注意是在此事件下的加载

    Dim hWndForm As Long

    Dim iStyle As Long

    hWndForm = FindWindow("ThunderDFrame

    展开全文
  • 利用API对VBA窗体设置

    2010-03-08 10:04:00
    很多时候有人问到,怎么样弄使得VBA中的关闭窗口的按钮消失啊。...以下代码添加到窗体中,可以隐藏窗体关闭按钮。 API声明Private Declare Function FindWindow Lib "user32" Alias _ "FindWindowA" (ByVal
  • 本节将介绍一下,使用vba代码添加窗体,然后在窗体上添加控件,如标签按钮等等方法。NO.2vba中 VBComponents 集合里包含了模块、窗体、类模块。添加窗体就用到VBComponents.Add()来进行操作。如:ThisWor...
  • VBA 用户窗体的认识

    2020-08-18 21:19:49
    今天学的是VBA用户窗体~可算到这里来,有点以前大学学VB的味道了 一、插入新的用户窗体 插入用户窗体很简单啦,在VBE的工程下右击选择插入——用户窗体就可以了。 如果下面这个工具箱关闭了,可以在菜单栏的...
  • VBA 屏蔽窗口的“关闭按钮

    千次阅读 2018-12-07 10:50:59
    插入窗体,输入代码如下: Option Explicit ...'---此模块演示了禁用窗体关闭按钮--- '**************************************** '以下声明API函数 #If Win64 Then '64位 '查找窗口 Private Declare PtrS...
  • 一、禁用关闭按钮 先认识一下QueryClose 关闭前执行事件: Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer) 这个事件是在用户窗体关闭之前发生。 第一个参数Cancel :默认是0,除了...
  • 我们在使用VBA窗体时,不知你是否注意到:VBA中的窗体标题栏上只有关闭按纽,没有最大最小化按钮的。如下图。那么是否可以利用代码让窗口上也出现类似于EXCEL和WORD窗口的最大和最小化按钮呢?这时就要利用API函数...
  • 学习资源:《Excel VBA从入门到进阶》第53集 by兰色幻想一、窗体的使用窗体的插入和启用 ①插入菜单--用户窗体 ②工程窗口中右键--... 窗体的关闭 ①手工点关闭按钮 ②用代码执行关闭 例:单击窗体时关闭窗体。Priv...
  • Excel VBA(08)窗体和控件

    千次阅读 2020-04-29 16:36:58
    3、关闭窗体 代码关闭是 unload testform方法 4、显示设置 窗体标题:caption 背景色:backcolor 背景图片:picture,代码里面可以使用loadpicture()方法进行加载 属性窗口里面可以查看 5、位置大小 to...
  •  大家都知道,VBA中自带的MsgBox不能自动关闭,某些特殊情况下需要在指定时间内用户没有点击消息框按钮后能继续运行代码,需要用到定时关闭的消息框,我一般都是自己做一个窗体显示,再用定时函数关闭对话框。...
  • VBA常用技巧

    2014-12-21 16:39:28
    技巧138 屏蔽窗体标题栏的关闭按钮 12 技巧139 无标题栏和边框的窗体 12 技巧140 制作年月选择窗体 12 技巧141 自定义窗体中的鼠标指针类型 12 技巧142 调整窗体的显示位置 12 技巧143 由鼠标确定窗体显示位置 12 ...
  • 学习Excel技术,关注微信公众号:excelperfect本文将给出一段VBA代码,实现在加载用户窗体时逐步显现以及在关闭用户窗体时逐渐淡出的效果,如下图1所示。图1第1步:创建示例用户窗体如下图2所示,我们简单地创建了一...
  • Excel_VBA教程

    2014-09-22 11:36:34
    38.给窗体STUDENTS AND EXAMS自定义窗体编写VBA过程 218 39.使用自定义窗体STUDENTS AND EXAMS 223 40.接下来…… 225 第十一章 自定义集合和类模块 225 1.使用集合 226 2.声明自定义集合 227 3.给自定义集合添加...
  • 第53集 窗体与控件基础 251、 窗体的使用 1、窗体的插入和启用 插入菜单 --用户窗体 ...手工点关闭按钮 用代码执行关闭 详见窗体 4、窗体的显示设置 A、窗体的标题 设置Captain的值 B、窗体的背景色 设置Back...
  • 第54集 窗体事件 254、 窗体初始化事件 当窗体出现之前运行的程序...255、 窗体关闭前的事件 Cancel:值为>0的值时禁止关闭动作的发生 CloseMode:关闭的模式,0点击关闭按钮,1是使用unload关闭。 Private Sub ...
  • VBA编程技巧大全

    2013-08-05 09:03:19
    技巧137 禁用窗体标题栏的关闭按钮 340 技巧138 屏蔽窗体标题栏的关闭按钮 341 技巧139 无标题栏和边框的窗体 343 技巧140 制作年月选择窗体 344 技巧141 自定义窗体中的鼠标指针类型 347 技巧142 调整窗体的显示...
  • ExcelVBA程序设计.doc

    2011-04-05 21:32:51
    38.给窗体STUDENTS AND EXAMS自定义窗体编写VBA过程 218 39.使用自定义窗体STUDENTS AND EXAMS 223 40.接下来…… 225 第十一章 自定义集合和类模块 225 1.使用集合 226 2.声明自定义集合 227 3.给自定义集合添加...
  • Excel VBA 基础教程

    2019-01-01 18:51:06
    7 关闭........................................................................ 7 其他文件函数................................................................ 7 二、VISUAL BASIC程序设计网络教学..........
  • 第16章介绍了使用VB开发AutoCAD的一些知识(将VBA代码转换到VB中,VB窗体和AutoCAD的焦点切换,使用ActiveXDLL封装带有窗体的VB程序)、搜索某个文件夹中所有的文件和VBAIDE的编程,利用这些知识,完全有可能开发出...
  • 2、窗体中设立3个命令按钮、一个标签、2个Image按钮 二、特征和功能 源代码中有数据库、记录集的打开、引用、关闭,有如何调用文件打开对话框,如何获取文件名、数据库所在目录路径的文件操作方法,如何获取最大...
  • VBA实用开发指南(3)

    千次阅读 2007-11-02 16:22:00
    四、VBA综合开发实例温馨贺卡向导 (一)例程分解 本例程是一个简单的贺卡...单击"取消"按钮关闭向导窗体,如图4所示。 单击"下一步"按钮切换至下一页,在该页面中可选择贺卡的节日并输入发送者和接受者的姓名,如图5
  • 中文版Excel.2007高级VBA编程宝典 1/2

    热门讨论 2012-04-06 16:00:16
    本书将介绍如何定制Excel 用户窗体、开发新实用程序、用VBA 处理图表及数据透视表,以及创建事件处理应用程序。还将介绍如何使用VBA 子过程和函数过程、与其他应用程序轻松交互、构建用户友好的工具栏、菜单和帮助...
  • Excel VBA程序设计.doc

    2009-07-06 22:16:12
    3.6 使用用户窗体 16 3.7 疑难解答 17 第四课 理解变量和变量的作用 17 4.1 代码存在的位置:模块 17 4.2 对模块的概览 18 4.2.1 创建过程 18 4.2.2 运行宏 19 4.3 保存对模块所做的改变 19 4.4 变量 19 4.4.1 变量...
  • 中文版Excel.2007高级VBA编程宝典 2/2

    热门讨论 2012-04-06 16:41:38
    本书将介绍如何定制Excel 用户窗体、开发新实用程序、用VBA 处理图表及数据透视表,以及创建事件处理应用程序。还将介绍如何使用VBA 子过程和函数过程、与其他应用程序轻松交互、构建用户友好的工具栏、菜单和帮助...
  • Excel_VBA程序设计.pdf

    热门讨论 2009-08-31 23:05:20
    3.6 使用用户窗体 16 3.7 疑难解答 17 第四课 理解变量和变量的作用 17 4.1 代码存在的位置:模块 17 4.2 对模块的概览 18 4.2.1 创建过程 18 4.2.2 运行宏 19 4.3 保存对模块所做的改变 19 4.4 变量 19 4.4.1 变量...
  • EXCEL编程VBA高级教程

    2015-04-16 11:40:55
    关闭........................................................................7 其他文件函数................................................................7 二、VISUALBASIC程序设计网络教学...............

空空如也

空空如也

1 2 3 4
收藏数 72
精华内容 28
关键字:

vba窗体关闭按钮