是否可以在 Office vb.net 中获取当前的显示度量单位?



在我的 VSTO Office 外接程序中,了解用户为其界面选择的度量单位会很有用(具体而言,外接程序需要知道 Word 文档中的标尺是以英寸还是厘米或其他度量单位显示(。是否可以使用 VB.NET 检索此信息?我可以使用以下内容检索当前的系统语言或界面语言:

System.Globalization.CultureInfo.CurrentCulture
My.Application.Culture
My.Application.UICulture

似乎我可以获得有关当前系统文化是否为公制的信息:

System.Globalization.RegionInfo.CurrentRegion.IsMetric

但是,这不一定与 Word 文档中选定的显示单位相对应,可以从"显示"部分下的">Word 选项"对话框中设置("以单位:">下拉列表显示度量值(。有没有办法使用 vb.net 检索它?

我不知道在哪里寻找这个。但是,我确实有一个过去用于在 Word/Office VBA API 中查找随机设置的过程。

我所做的是使用">录制宏"功能来查看更改相关设置时生成的代码。然后,我可以使用引用该代码来了解要检查的内容。

在这个问题上使用该过程将英寸更改为厘米会生成以下代码:

Options.MeasurementUnit = wdCentimeters

然后我修改了宏以在Options.MeasurementUnit发出警报:

MsgBox(Options.MeasurementUnit)

结果是1.我把它改回"英寸"并再次运行它,我看到了一个0.您可以继续此操作,以在该设置的下拉列表中找到每个项目的正确值。

Joel Coehoorn的回答让我走上了正轨。从 vb.net 的 VSTO 外接程序中,我能够验证检索此信息的正确方法是否如下所示(假设外接程序适用于 Microsoft Word(:

Dim Application As Word.Application = Globals.{MyAddIn}.Application
Dim units As Word.WdMeasurementUnits = Application.Options.MeasurementUnit

(使用实际的加载项命名空间切换 {MyAddIn}(

最新更新