首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何捕获PowerView镜像?

如何捕获PowerView镜像?
EN

Stack Overflow用户
提问于 2015-10-02 22:17:20
回答 1查看 378关注 0票数 0

我正在生成Excel PowerView仪表板。我认为,对于那些只想快速查看仪表板屏幕截图的用户来说,这将是很有用的,其中有一个链接,更多分析人员可以下载excel文件以重新旋转或深入到他们内心的满足。

我找到了一个宏,它允许我捕获屏幕截图并将其保存到本地文件中,但屏幕截图是我的整个桌面或活动应用程序。这两个看起来都很糟糕,我只需要捕获PowerView (见下图):

有没有办法从VBA中只捕获屏幕的某些部分?

EN

回答 1

Stack Overflow用户

发布于 2015-10-07 19:44:37

板球..。

好吧,我终于想通了:

步骤1)在计算机上安装Imagemagick。确保包含COM组件,以便可以从VBA使用它。

步骤2)在VBE中注册引用(Tools -> References ->查找ImageMagick并启用它)

步骤3)关闭excel并重新打开。

步骤4)在VBA中创建以下宏,并将其分配给快速启动栏上的一个按钮。

代码语言:javascript
复制
Sub AltPrintScreen()
Dim a, b

    ' First, take a screenshot and save it
    a = Replace(ActiveWorkbook.Name, ".xlsx", "")
    Set b = ActiveWorkbook
    keybd_event VK_MENU, 0, 0, 0
    keybd_event VK_SNAPSHOT, 0, 0, 0
    keybd_event VK_SNAPSHOT, 0, KEYEVENTF_KEYUP, 0
    keybd_event VK_MENU, 0, KEYEVENTF_KEYUP, 0

    Dim chtObj As ChartObject

    With b.Worksheets(1)

    .Activate
    
    ' My resolution is 1366 x 768, adjust this part as per ur rez
    Set chtObj = .ChartObjects.Add(100, 30, 1000, 568)
    chtObj.Name = "TemporaryPictureChart"

    ActiveSheet.ChartObjects("TemporaryPictureChart").Activate
    ActiveChart.Paste

    ActiveChart.Export Filename:=ThisWorkbook.Path & "\" & a & ".jpg", FilterName:="jpg"
End With
chtObj.Delete

'Next, use ImageMagick to crop the image to get only the part you want.
Dim img
Set img = CreateObject("ImageMagickObject.MagickImage.1")
img.Convert ThisWorkbook.Path & "\" & a & ".jpg", "-crop", "845x645+270+62^", "+repage", ThisWorkbook.Path & "\" & a & ".jpg"
Set img = Nothing
Sheets("Power View1").Activate
    
End Sub

步骤5)然后,从要截图的工作表中,单击运行宏的小按钮。这应该可以做到这一点(尽管您可能需要调整参数)。

附注:从屏幕截图直接转到ImageMagick会容易得多,如下所示:

代码语言:javascript
复制
Dim a, img
a = Replace(ActiveWorkbook.Name, ".xlsx", "")
Selection.CopyPicture xlScreen, xlBitmap
Set img = CreateObject("ImageMagickObject.MagickImage.1")
img.Convert "clipboard:myimage", "-crop", "845x645+270+62^", "+repage", ThisWorkbook.Path & "\" & a & ".jpg"

但不幸的是,您不能在PowerView选项卡中捕获范围。此外,如果您使用的是ImageMagick,请确保使用xlBitmap,因为它无法识别xlPicture (不是位图)。1:https://www.imagemagick.org/script/download.php

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32909245

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档