我想允许我的用户在VBA用户表单的输入框中输入富文本(粗体,斜体和下划线,但可能只是那个)。
我不希望用户必须安装任何东西,因此我需要使用它来利用Office或Windows已经提供的功能。显而易见的候选者是Windows内置的Rich Edit control。
我做了一个快速测试,并确认我可以从VBA创建一个这种类型的窗口,但它缺少的是所有的UI等等。我真的可以使用一个简单的方法,然后我如何把它变成可用的东西。
我很乐意考虑替代控件,只要他们保证不需要安装(除了作为包含我的其余VBA代码的Excel文件的一部分)。它需要在Windows XP及更高版本以及Office 2003及更高版本上运行。
答案 0 :(得分:1)
您可以尝试自己创建一个简单的UI。向表单添加一个命令按钮,该按钮将在富编辑控件中加粗选定的文本。或者添加一个斜体或复制或粘贴的命令按钮。你的想象力是你的极限。
我在Excel 2010中检查了Rich Edit Version 1.0,我可以访问控件中的文本。
答案 1 :(得分:1)
对于任何仍在搜索此内容的人。正如 Gary McGill 所说,“Microsoft InkEdit Control”是您的最佳选择。
使用下面的链接来参考它可以使用的变量:
答案 2 :(得分:0)
在Excel的Visual Basic编辑器中打开“工具箱”窗口,从菜单中选择“工具” - >“其他控件”。选中MSREdit Class
旁边的框。这会将富文本控件添加到工具箱中。从那里你可以将它添加到UserForm。
我在Windows XP上的Office 2003和Windows 7上的Office 2010中测试了此控件。看起来您仍然需要提供用户界面以允许用户切换粗体,斜体和下划线的UI。
它接受我从Word复制的一些富文本的粘贴(通过Ctrl+V
),但我无法弄清楚如何在控件中键入文本时切换字体格式。
答案 3 :(得分:0)
这里只是为了排除......
“Microsoft InkEdit Control”似乎可以从工具箱上的“Additional Controls”获得,它是Rich Text Edit控件的超集(顾名思义,它也支持Ink)。
很难说这是否广泛安装 - 它在我的XP / 2003机器上,而不是在我的2K / 2K机器上。 (我已经看到它说它安装了Vista和Win7,但显然也有早期版本。)
无论如何,我正在排除这一点,因为使用控件会在运行时生成一条消息,表明ActiveX控件“不安全”(可能与Rich Text Control本身的众所周知的问题有关)。 / p>