打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Excel VBA封装为Dll的例子、方法与总结【逐步完善中...】

看看下面常用的VBA界面处理代码,封装为Dll时应该如何改代码?

'需要封装的VBA代码
Sub 恢复系统界面()
    On Error Resume Next
    With Application
        .Caption = "版权所有:GoodFortune From
www.ExcelHome.net"
        .CommandBars("Worksheet Menu Bar").Enabled = True
        .CommandBars("Toolbar List").Enabled = True
        .CommandBars("Standard").Visible = True
        .CommandBars("Formatting").Visible = True
        .DisplayFormulaBar = True
    End With
    With ActiveWindow
        .DisplayGridlines = True
        .DisplayHeadings = True
        .DisplayHorizontalScrollBar = True
        .DisplayVerticalScrollBar = True
        .DisplayWorkbookTabs = True
    End With
End Sub
Sub 隐藏系统界面()
    On Error Resume Next
    With Application
        .CommandBars("Worksheet Menu Bar").Enabled = False
        .CommandBars("Toolbar List").Enabled = False
        .CommandBars("Standard").Visible = False
        .CommandBars("Formatting").Visible = False
        .DisplayFormulaBar = False
    End With
    With ActiveWindow
        .DisplayGridlines = True
        .DisplayHeadings = False
        .DisplayHorizontalScrollBar = False
        .DisplayVerticalScrollBar = False
        .DisplayWorkbookTabs = False
    End With
End Sub

首先,分析一下,上面的VBA代码中有几个需要传递的变量(或者先分析“对象”),一个是Application,一个是ActiveWindow,其中ActiveWindow是Application的下一级对象,因此,按第2条原则,从最上一层开始,完整形式为Application.ActiveWindow,因此上面的代码可以改成如下的形式,用一个变量传递就可以了。

'封装为Dll的代码
Sub 恢复系统界面(oExcel as Excel.Application)
    On Error Resume Next
    With oExcel
        .Caption = "版权所有:GoodFortune From
www.ExcelHome.net"
        .CommandBars("Worksheet Menu Bar").Enabled = True
        .CommandBars("Toolbar List").Enabled = True
        .CommandBars("Standard").Visible = True
        .CommandBars("Formatting").Visible = True
        .DisplayFormulaBar = True
    End With
    With oExcel.ActiveWindow
        .DisplayGridlines = True
        .DisplayHeadings = True
        .DisplayHorizontalScrollBar = True
        .DisplayVerticalScrollBar = True
        .DisplayWorkbookTabs = True
    End With
End Sub
Sub 隐藏系统界面(oExcel as Excel.Application)
    On Error Resume Next
    With oExcel
        .CommandBars("Worksheet Menu Bar").Enabled = False
        .CommandBars("Toolbar List").Enabled = False
        .CommandBars("Standard").Visible = False
        .CommandBars("Formatting").Visible = False
        .DisplayFormulaBar = False
    End With
    With oExcel.ActiveWindow
        .DisplayGridlines = True
        .DisplayHeadings = False
        .DisplayHorizontalScrollBar = False
        .DisplayVerticalScrollBar = False
        .DisplayWorkbookTabs = False
    End With
End Sub

由上可见,封装中需要修改的是将对象变量换成从根一级开始的完整形式,其他部分则不需要修改。

上面的例子是我学习中的经验总结,拿出来分享,虽然写的不好,但却是自己一步一步琢磨的,希望能抛砖引玉,请朋友们多指点。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Excel VBA 工具栏隐藏、显示
Excel自动全屏显示(VBA)
excel 隐藏缺省界面的vba代码 隐藏Excel2003菜单栏和工具栏
vba如何去屏蔽一些功能?看完这些代码你应该会得到启发!
VBA案例精选 黑科技|隐藏Excel表格
如何解决在excel工作表中鼠标的右键不能使用的问题
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服