gpt4 book ai didi

vba - 使用 Excel 2018 for MacOS 的用户表单

转载 作者:行者123 更新时间:2023-12-03 16:24:45 27 4
gpt4 key购买 nike

我看到将用户表单添加到 Excel 2018 for MacOS(或自 Excel 2016 起)的功能是不可能的 与 Excel 2011 不同.
当我说“添加用户表单”时,我指的是允许设计按钮、框、列表的“UI”设计器。 (实际上,添加用户表单似乎只在 Windows 版本的 Excel 2018 上可用。)
我正在寻求使用 Excel 2018 for MacOS 构建一个简单的用户表单。
如果“UI”设计器不可用,我可以只使用 VBA 代码源直接对用户窗体进行编码(可以直接对设计进行编码)吗?

最佳答案

A screenshot of a programmatically generated UserForm object in Excel for Mac - Microsoft 365

userform 对象必须通过调用与 ThisWorkbook 对象关联的 VBProject 的 VBComponents 集合上的 Add() 方法来生成,如下所示:

Set objForm = ThisWorkbook.VBProject.VBComponents.Add(vbext_ct_MSForm)

这创建了一个名为 UserForm1 的用户窗体对象。我简要地看到了可视化编辑器,并且能够为新创建的表单拖放一个标签控件和一个命令按钮,但随后的尝试失败了。

因此,我在 UserForm_Initialize() 事件过程中添加了代码,手动定位和配置现有控件。我还在自动生成的 CommandButton1_Click() 事件过程 stub 中添加了代码。
Option Explicit

Private Sub CommandButton1_Click()
MsgBox prompt:="Bye for now!"
Unload Me
End Sub


Private Sub UserForm_Initialize()

Me.Height = 200
Me.Width = 500
Me.Caption = "UserForm On MacOS!!"


With Me.CommandButton1
.Top = 10
.Left = 400
.Width = 50
.Height = 30
.Caption = "OK!"
.Font.Size = 20
.Font.Bold = True
End With

With Me.Label1
.Caption = "Hallelujer!"
.Width = 120
.Height = 30
.Left = 5
.Top = 10
.BorderStyle = fmBorderStyleSingle
.SpecialEffect = fmSpecialEffectEtched

With .Font
.Name = "Arial"
.Size = 20
.Bold = True
End With
End With

End Sub

该表单是通过附加到功能区上的自定义按钮的宏来调用的。
Public Sub MakeForm()

Dim objForm As UserForm

'Execute the following statement once for each userform object to be created
'and then disable it
'Set objForm = ThisWorkbook.VBProject.VBComponents.Add(vbext_ct_MSForm)

'Display the userform
UserForm1.Show


End Sub

这似乎表明可以将 UserForm 控件插入到 VBProject 中。

它还表明,用户窗体支持的基础确实存在于 Excel for Mac 中,但它们尚未完全实现。

关于vba - 使用 Excel 2018 for MacOS 的用户表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50399661/

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