【问题标题】:Looking for a simple rich-text editor usable from VBA寻找可从 VBA 使用的简单富文本编辑器
【发布时间】:2011-11-24 11:11:36
【问题描述】:

我想让我的用户在 VBA 用户窗体的输入框中输入富文本(粗体、斜体和下划线,但可能仅此而已)。

我不希望用户必须安装任何东西,所以我需要它能够利用 Office 或 Windows 已经提供的功能。显而易见的候选者是 Windows 内置的Rich Edit control

我做了一个快速测试并验证我可以从 VBA 创建一个这种类型的窗口,但是它缺少的是所有的 UI 等等。我真的可以使用一个腿来了解我如何将它变成有用的东西。

我很乐意考虑替代控件,只要保证它们不需要安装(除了作为包含我的其余 VBA 代码的 Excel 文件的一部分)。它需要在 Windows XP 及更高版本以及 Office 2003 及更高版本上运行。

【问题讨论】:

    标签: vba richtext


    【解决方案1】:

    您可以尝试自己制作一个简单的用户界面。向窗体添加一个命令按钮,该按钮将加粗富编辑控件中的选定文本。或者添加一个将斜体或复制或粘贴的命令按钮。你的想象力就是你的极限。

    我在 Excel 2010 中检查 Rich Edit 版本 1.0,我可以访问控件中的文本。

    【讨论】:

    • 您在表单上放置什么控件?即使我选择“附加控件”,我也没有在工具箱中看到“丰富的编辑”。
    • 您需要从 VBA 设置对控件的引用。按 Alt + F11,单击工具 > 参考。在我的计算机中,它被称为“msrtedit 1.0 类型库”。或者,在 2010 年,单击开发人员 > 插入 > 更多控件(在 ActiveX 控件下)> MSREdit 类。
    • 我的机器上没有看到。我认为这与 Dennis Palmer 的回答本质上是相同的问题 - DLL 仅在您安装了特定软件时才存在。也许再次访问(我想知道这是否实际上是同一个控件)。
    • 谢谢,我能够让 Lebans 的东西工作到一定程度,尽管那里的代码非常可怕。现在我的问题是将带样式的文本重新放入 Excel 单元格...(Excel 不理解 RTF,到目前为止,我发现解决此问题的唯一方法是将 RTF 从控件复制到 Word 中,然后将其从 Word 复制回 Excel!Yuk。)
    • 我们可能想考虑只使用 HTML 而不是 RTF。我发现了一篇关于在单元格中使用 HTML 的有趣文章 here. 查看该文章中的 cmets,了解实现格式化的一些 VBA 想法。
    【解决方案2】:

    对于仍在搜索此内容的任何人。正如 Gary McGill 所说,“Microsoft InkEdit Control”是您的最佳选择。

    使用下面的链接可以参考它可以使用的变量:

    https://www.thevbprogrammer.com/Ch10/10-06-RichTextBox.htm

    【讨论】:

      【解决方案3】:

      在 Excel 的 Visual Basic 编辑器中打开“工具箱”窗口后,从菜单中选择“工具”->“附加控件”。选中 MSREdit Class 旁边的框。这会将富文本控件添加到您的工具箱中。从那里您可以将其添加到用户窗体。

      我在 Windows XP 上的 Office 2003 和 Windows 7 上的 Office 2010 中测试了这个控件。看起来您仍然需要提供 UI 以允许用户切换粗体、斜体和下划线。

      它接受粘贴(通过Ctrl+V)我从 Word 复制的一些富文本,但我不知道如何在向控件中输入文本时切换字体格式。

      【讨论】:

      • 听起来很有趣,但我没有在列表中看到“MSREdit Class”。也许它与其他东西一起安装(在这种情况下,它不是我正在寻找的保证工作而无需安装的解决方案)。
      • 我不知道它是否与 Rich TextBox Control 6.0 相同。它在MSRTEDIT.DLL 中,在我的系统上位于C:\Program Files\Micorosft Office 下,所以我认为它是随Office 本身安装的。
      • 我认为它可能与 Access 一起安装,因为我在搜索信息时获得的许多 Google 点击都与 Access 相关。
      【解决方案4】:

      把它放在这里只是为了排除它......

      工具箱上“附加控件”中的“Microsoft InkEdit 控件”似乎是富文本编辑控件的超集(顾名思义,它也支持 Ink)。

      很难判断它是否被广泛安装 - 它在我的 XP/2003 机器上,但不在我的 2K/2K 机器上。 (我看过它说它安装了Vista和Win7,但显然也有早期版本。

      无论如何,我排除了这一点,因为使用该控件会在运行时产生一条消息,表明 ActiveX 控件是“不安全的”(可能与富文本控件本身的众所周知的问题有关)。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-06-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-09-18
        • 2011-08-29
        • 2011-12-22
        相关资源
        最近更新 更多