为什么 Excel 2010 VBA 用户窗体文本框字体会根据框架的大小而变化?

Why does Excel 2010 VBA userform textbox font changes depending on size of frame?

我有一个包含多个框架、标签和文本框的用户表单,所有这些都设置为 Calibri Regular 10 号的默认字体。我注意到一个文本框中的字体与其他文本框不同;比默认的更苗条,头发更短,更凝练。我尝试在设计和运行时调整字体,弄乱框架的字体,并用新文本框替换文本框,但似乎无法更正字体。

然后,我不小心将文本框的位置向上移动了一点,字体会自动自动更正。诡异的。从那以后,我一直在研究文本框的位置和框架大小。这是我观察到的:

1) 字体大小取决于框架内的相对位置;文本框需要完全位于框架高度的前 50%,调整文本框位置或框架高度会影响字体。

2) 此问题适用于此用户表单上的多个框架。

3) 此问题适用于标签和文本框。

4) 这个问题不一致,并不适用于所有的文本框和标签;它只是第一帧中受影响的文本框,第二帧中只是标签,第三帧中没有字体问题。

我已经检查了设计模式下所有框架、标签和文本框的属性,没有什么突出的。所有这些控件都具有相同的字体集。有没有人遇到过这个问题?这是已知错误吗?

与@SquirrelBait 相同 - 我也发现字体的显示大小在外观上会发生变化,具体取决于它在我的用户窗体上的位置(在设计时创建 - Excel 2016)。 这发生在多页中,但可能不相关。

虽然我没有解决方案,我可能有解决办法

问题似乎只发生在表单控件(标签、文本框、组合框)的高度不是整数值的情况下。我自动调整了一些控件的大小,因此它们的高度为 14.25、28.5、20.25 等。我已将所有高度增加到整数值。现在问题似乎已解决

我也成功地将我的文本框高度从 17.5 更改为 18。在我的例子中,我还让它们稍微重叠(以创建 table 效果),尽管它们是 18 号字体,但仍然导致它们文本尺寸稍大。在我把它改成一个的底部是另一个的顶部之后,现在一切似乎都工作正常了。