gpt4 book ai didi

vba - VBA 项目可以从 Office 2007 访问哪些表单控件?

转载 作者:行者123 更新时间:2023-12-04 18:47:45 41 4
gpt4 key购买 nike

在 VBA 项目中,您可以使用工具箱窗口创建用户窗体并向其添加控件。默认情况下,工具箱窗口包含简单的表单控件,如 Label、TextBox、ListBox 等。

如果您的机器上安装了其他控件,您可以添加其他控件:右键单击工具箱上的“其他控件”会显示整个控件。然而,这并没有说明它们来自哪里。

我很想知道在安装了 Office 2007 的计算机上保证可以使用哪些控件。它只是标准控件,还是某些“附加控件”也保证可用(因为它们随 Office 2007 一起提供,或者因为它们存在于 Office 2007 将在其上运行的所有 Windows 版本中)?

例如,我很惊讶即使在 Office 2007 中也没有树 View 控件。在我的“附加控件”列表中,我看到了“Microsoft TreeView Control v6”,但我不知道我是否可以依靠它存在于所有人中我的 Office 2007 用户。

最佳答案

您看到的控件是 FM20.DLL 的一部分;这是 Office 安装的一部分。

通过查看“附加控件”框的“位置”部分,您可以看到它们都是同一个 DLL 的一部分。

enter image description here

AFAIK,这些是大多数 Office 安装中唯一保证可用的控件。

话虽如此,让我们看看可以为您在评论中询问的每个控件专门做什么:

  • “网格”功能列表
  • 分层树 View
  • 日历控件


  • 网格

    这将取决于您的要求,但您可能可以使用列表框。 VBA 中的列表框有一些属性可以使它像网格一样。

    例如,假设 Excel 中的工作表如下所示:
    ID001   Value 1 Description 1
    ID002 Value 2 Description 2
    ID003 Value 3 Description 3

    列表框支持多列,因此您可以通过设置列表框属性 来显示这些值。列数 到 3 并编写以下代码:
        Me.ListBox1.ColumnWidths = "50;100;200"
    Me.ListBox1.RowSource = Sheet1.Range("A1:C3").Address

    你会得到这样的东西:
    enter image description here

    想要隐藏一列?没问题,将 ColumnWidths 属性的宽度更改为零以隐藏列:
    Me.ListBox1.ColumnWidths = "50;0;200" 'Hide column 2

    enter image description here

    如果你不能从中选择东西,网格有什么用,对吧?

    在列表框中,更改 ListStyle 属性为 frmListStyleOption 然后更改 多选 到 frmMultiSelect。

    这会给你一个看起来更像网格的列表框:

    enter image description here

    日历

    2012 年 8 月 17 日更新:
    阅读 this post . One of the guys谁回答创建了自己的日历控件。

    Office (mscal.ocx) 存在日历控件:

    enter image description here

    但是,必须满足正确的条件:
  • Access 必须安装在客户端机器上
  • Office 版本不能是 Office 2010因为它已随此版本一起删除(请参阅从 Microsoft Access 中删除的功能)

  • 您仍然可以使日历控件与 2010 和/或非 Access Office 安装一起使用,但在客户端计算机上需要执行额外的步骤。
  • 下载mscal.ocx
  • 解压到windows/system32目录
  • 注册


  • 树 View

    如果您的客户可以接受安装一些 EXE,您可以让他们安装 Microsoft Visual Basic 6.0 Common Controls .这将为您提供 TreeView 控件。

    enter image description here

    我敢打赌大多数机器(尤其是 Windows XP 上的旧机器)已经安装了这些 OCX;因此可能不需要安装。

    最大的问题是您在客户端机器上部署 OCX,从支持的角度来看这令人沮丧。

    关于vba - VBA 项目可以从 Office 2007 访问哪些表单控件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11526305/

    41 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com