【问题标题】:Word VBA: Save as Picture [closed]Word VBA:另存为图片[关闭]
【发布时间】:2021-12-12 05:09:31
【问题描述】:

有谁知道是否可以从 VBA 运行 Word“另存为图片”对话框?
笔记: 我到处搜索都无济于事,这表明它可能是不可能的。
不过,我认为至少值得一问。

澄清(根据要求):这个问题很简单。
在询问时,我无法在任何地方找到答案。在本次编辑时,这是我所知道的唯一可以回答这个问题的地方(即基本问题是可以做到这一点,如果可以,怎么做?)。

事实证明,是的,它可以做到(见下文如何)。而且,虽然可能有其他方法可以通过调用架构上不同的方法(我在提问时已经看到)来做类似的事情,但他们没有按要求回答问题。

现在,我看不出有什么不清楚的地方、为什么需要或更多细节。
所以现在我问:在 SO 上问这样的问题有什么根本错误吗?

【问题讨论】:

  • 不知道为什么 ppl 已经标记了这个问题。请注意,我花了很多时间研究这个。搜索 Microsoft、here 等,并阅读任何相关内容。我已经用尽了所有的研究努力。标记下表示“缺乏研究或不清楚”。也许选择标记它,可以说明我还应该做些什么?
  • this 有帮助吗?
  • @Raymond Wu。谢谢,但在这种情况下不适合工作流程。我在下面的回答做了我需要做的事情。我确实在这里编辑了上面的帖子说(为了节省其他人花时间,因为我还不能标记答案)。但是肯怀特出于某种原因删除了该编辑。
  • 我知道你有一个答案,我相信你的编辑是没有必要的,因为谁回答它并不重要。尽管如此,我只想向您强调,您想要实现的目标还有其他解决方案,我们不知道它是否适合您的工作流程,仅仅是因为您没有在您的研究工作/问题中指定。
  • @Raymond Wu:一切都好。确实说了谢谢,而且是认真的。我知道有很多方法可以给猫剥皮,但没有进入工作流程细节,因为它与我提出的核心问题无关。只是想弄清楚“这(如表达的)可以做到吗?”在我摆出这个姿势的时候,我还没有找到方法,也没有在 [任何地方] 找到“是或否”。从那以后,它是一个是的,以及如何。所以就是这样(它的价值)。 :)

标签: vba ms-word


【解决方案1】:

原来解决方案就在那里,只是很难找到。虽然控件不在功能区上,但它仍然存在于 CommandBars 中。我设法通过转储所有 CommandBar 控件的列表(以找到它并获取 id)来公开它。所以,解决办法是:

''' Note: Picture must be selected first
CommandBars.FindControl(ID:=5736).Execute

【讨论】:

    【解决方案2】:

    您可以使用 PowerPoint 导出图形。这是最近一个导出世界地图的项目的宏。 Word 图形是 EMF 文件:

    Public Sub ExportMap()
    Dim pptPres As PowerPoint.Presentation
    Dim pptSlide As PowerPoint.Slide
    Dim pptShapeRange As PowerPoint.ShapeRange
    Dim Path$, File$
    Dim oRange As Range
    
      Application.ScreenUpdating = False
      myDate$ = Format(Date, "m-d-yyyy")
      Set pptApp = CreateObject("PowerPoint.Application")
      Path$ = ActiveDocument.Path & Application.PathSeparator
      File$ = "WorldMap " & myDate$ & ".png"
      Set pptPres = pptApp.Presentations.Add(msoFalse)
      
      Set oRange = ActiveDocument.Bookmarks("WholeMap").Range
      oRange.CopyAsPicture
      
      Set pptSlide = pptPres.Slides.Add(1, ppLayoutBlank)
      On Error Resume Next
      With pptPres.PageSetup
        .SlideSize = 7
        .SlideWidth = 1150
        .SlideHeight = 590
      End With
      Set pptShapeRange = pptSlide.Shapes.PasteSpecial(ppPasteEnhancedMetafile, Link:=msoFalse)
      
      pptSlide.Export Path$ & File$, "PNG"
      
      pptApp.Quit
      
      Set pptPres = Nothing
      Set pptApp = Nothing
      Set pptSlide = Nothing
      Application.ScreenUpdating = True
      MsgBox "All done! Check the folder containing this template for a file called '" & File$ & "'."
    End Sub
    

    【讨论】:

    • 谢谢。我在研究时在某个地方看到了上述内容。还找到了使用 excel 的可能解决方案(通过 excel 图表)。我的问题是“可以在 word vba 中运行‘另存为图片’这个词吗?”鉴于您的回答,您是说“不,那不可能吗?”
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-09-17
    • 2022-06-10
    • 2017-09-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多