我正在使用Word 2010,并且已经使用公式编辑器了一段时间。
我想编写一个宏,将选定的内容保存在文档中,作为图像。 我想用它来提取我在文档中写的方程式,如图片,然后将它们上传到一些免费的图像网站进行发布。
但是如果我能够提取文档的大部分而不仅仅是方程式,那将会更有用(即使提取方程式现在也能满足我)。
在Excel中,有一个内置选项可将内容复制为图像,然后您可以将其粘贴到任何您想要的位置。但由于某种原因,Word没有这种能力。
我正在寻找一种方法来做到这一点,即使这涉及一些外部的非内置vba代码。但它应该与vba集成,这样我就可以处理这些图像,并用它们做其他的事情(比如我说,例如 - 自动将它们上传到某些图像网站)。
我在发布这个问题之前做了一些研究,但我找不到任何解决问题的方法。
非常感谢你的帮助!
答案 0 :(得分:0)
基本上你需要使用VBA来选择项目,执行“复制”,然后使用剪贴板功能检索数据并将其保存到文件中。不幸的是,我不能发布完整的代码,因为它不属于我。
序列是:
CloseClipboard
私有声明函数Win32GetClipboardData Lib“Kernel32”Alias“GetClipboardData”(ByVal lClipboardFormat As Long)As Long
在返回HGLOBAL的情况下,您可以使用GlobalSize,GlobalLock,CopyMemory将其复制到BSTR或Byte()
对象,然后使用ADODB.Stream将数据保存到文件中。 ,然后和GlobalUnlock进行清理。我认为它属于剪贴板,所以你不应该使用GlobalFree。
似乎我知道很多工作!但是一旦完成,你将有一个像这样的简单函数:
Sub SaveClipboardData(ByVal lFormat, ByVal sFileName)
你可以说:
钽大新!
您可以非常轻松地保存为BMP(CF_DIB)或EMF,ImageMagick可以将它们转换为您想要的任何其他内容。我建议使用EMF,因为它是矢量格式,并转换为PNG以获得最佳分辨率。
我已经编写了至少两次这样做的代码 - 这并不难,但你必须正确地获得函数签名。请看这里寻求帮助: