vba - 使用 MsoThemeColorSchemeIndex 访问设置主题 VBA 关闭 1
问题描述
在设置控件/表单主题时,我经常使用 VBA,因为我可以动态更改颜色。效果很好。我一直在尝试使我的数据库远离使用硬编码的数字,并建立了一个包含主题的主题模块,其中映射了主题,因此我可以在那里更改它们而不是其他任何地方。
然后我意识到,嘿,有一种更简单的方法可以做到这一点(或者……我想)。输入枚举MsoThemeColorIndex
和MsoThemeColorSchemeIndex
. 这样,我什至可以做一些花哨的事情,比如决定当我使用myInternalTheme1
常量时,我可以用MsoThemeColorSchemeIndex.msoThemeAccent1
.
很久以前,我注意到如果我使用帮助文档(上图)中显示的内容,主题将“关闭”1。即5
(msoThemeAccent1
“Theme1”),而不是映射到msoThemeAccent1
实际映射到“Theme2”,以及“主题 2" 颜色显示。所以,我只是手动调整。但是我想知道我是否在这里遗漏了一些东西,并且我错误地使用了该值?
保存值后,我使用 SaveAsText 导出这些表单,当我这样做时,在“属性”中手动应用“主题 1”的字段显示使用了该值,该值4
“应该”映射到msoThemeColorLight2
,但没有。
字段的背景主题设置:
BackThemeColorIndex =4
我如何使用它:
' In my "modColor"
Public Const MythemeAccent1 As Integer = 4 ' (help docs specify this as MsoThemeColorIndex.msoThemeColorLight2)
' This one colors the header in Theme2 "wrong color, correct enum value???"
' MsoThemeColorSchemeIndex.msoThemeAccent1 = 5 (as docs say)
Me.section(acHeader).BackThemeColorIndex = MsoThemeColorSchemeIndex.msoThemeAccent1
' This one colors the header with Theme1 "correct color, wrong enum value???"
' MsoThemeColorSchemeIndex.msoThemeLight2 = 4 (as docs say)
Me.section(acHeader).BackThemeColorIndex = MsoThemeColorSchemeIndex.msoThemeLight2
' my internal module, this works correctly (code looks correct, and correct color used).
Me.section(acHeader).BackThemeColorIndex = MythemeAccent1
如果我通过它在设计视图中分配颜色Form Properties > FormHeader > Format > Back Color > "Accent 1"
可以正常工作,并且主题被正确应用。
我已经多次验证主题是正确的。我导出了主题,并验证了“Accent 1”的 XML 是正确的,而“Accent2”是不同的。“Theme 1”是“Bluish”,“Theme 2”是“Redish”供参考,所以我的显示器渲染并不是让我觉得它不同。
.Thmx
从文件中摘录的 XML :
<a:accent1>
<a:srgbClr val="5C83B4"/>
</a:accent1>
<a:accent2>
<a:srgbClr val="E74B4B"/>
</a:accent2>
解决方案
推荐阅读
- python-3.x - Azure 函数 Python 容器 - 如何配置 HTTP ping
- javascript - 使用 Jsstore select() 查询嵌套对象的 IndexDB?
- sql-server - Sqlserver 现有用户将“db_owner”提供给数据库失败
- android-studio - 未安装HAXM
- node.js - 在 Swagger OpenApi 3.0 中将数组作为查询参数传递
- flink-streaming - 流拆分中的 Flink 背压
- javascript - nodejs child_process范围问题
- javascript - 我想在重新加载页面后执行功能。我应该怎么办?
- python - 数据增强 - 每个类如何生成不同数量的新数据?
- php - Laravel - 隐藏特定列