在Excel或Powerpoint 2007/2010中滚动图表

我有一个在X轴上有大量点的图表(如ECG)。

如何将此图表作为Powerpoint 2007/2010中的水平滚动对象? 如果我只是粘贴它,它会resize,以适应宽度,变得不可读。

我想要通过包含图表的水平滚动条来保持高度。

不确定是否可以这样做。 话虽如此,我可以给你一个有趣的select。 🙂

假设我们的图表在Excel中看起来像这样

在这里输入图像说明

右键单击图表,然后单击Copy 。 打开女士油漆并粘贴该图片。 保存该图片,例如C:\MyChart.Jpg

接下来打开MS Powerpoint并导航到Developer Tab。 ( 请参阅快照 )在“开发人员”选项卡中,单击其他控件button并select“Microsoft Web浏览器”,然后在相应的幻灯片中插入该控件。 相应地调整它。 也放置一个命令button。 命名它Show Chart或任何其他你觉得是正确的:)

在这里输入图像描述

双击命令button并粘贴这个代码

 Private Sub CommandButton1_Click() WebBrowser1.Navigate "C:\MyChart.jpg" End Sub 

现在按F5运行演示文稿。 你的屏幕看起来像这样。

在这里输入图像描述

当你按下命令button,你会得到你想要的东西:)

在这里输入图像描述

这种方法的缺点

1)您无法在MS Powerpoint中编辑图表。 您将不得不在Excel中这样做,并重复整个过程将其保存为图像。

2)你不能分发你的PPT。 您将不得不分别与PPT发送图像,也必须更改命令button代码( 假设PPT和图像保持在同一文件夹中

 Private Sub CommandButton1_Click() WebBrowser1.Navigate ActivePresentation.Path & "\MyChart.jpg" End Sub 

要么

您将不得不将xls文件embedded到ppt中,然后编写一个复杂的代码从excel文件中提取图表并将其保存到用户temp directory 。 然后,您可以在Webbrowser1使用该图像

由于这从不同的angular度来解决问题,我发布一个全新的答案:)

这个方法跟在我最后的评论

您将不得不将xls文件embedded到ppt中,然后编写一个复杂的代码从excel文件中提取图表并将其保存到用户temp目录。 然后,您可以在Webbrowser1中使用该图像

跟进

@Siddharth Rout:谢谢! 但是,再分配正是我想要的。 我不可能将图像作为一个单独的文件(我将这个给我的客户)。

你的担心不应该再担心你了)

devise模式

在幻灯片幻灯片中插入具有图表的Excel对象。 你的幻灯片应该看起来像这样

在这里输入图像描述

现在如我的其他答案所示,插入一个“Microsoft Web浏览器”和“命令button”。 将Web浏览器放置在Excel对象上方以隐藏它。

你的屏幕现在应该看起来像这样。

在这里输入图像说明

粘贴此代码并运行您的演示文稿…就是这样…真的;)

 Option Explicit Private Declare Function GetTempPath Lib "kernel32" Alias "GetTempPathA" _ (ByVal nBufferLength As Long, ByVal lpBuffer As String) As Long Private Const MAX_PATH As Long = 260 Dim ImageFile As String Private Sub CommandButton1_Click() ExtractToTemp WebBrowser1.Navigate ImageFile End Sub Sub ExtractToTemp() Dim oSl As PowerPoint.Slide Dim oSh As PowerPoint.Shape Dim oXLApp As Object, oXLWB As Object, oXLSht As Object Dim mychart As Object Set oSl = ActivePresentation.Slides(1) Set oSh = oSl.Shapes(1) With oSh.OLEFormat.Object.Sheets(1) .Shapes(1).Copy End With '~~> Establish an EXCEL application object On Error Resume Next Set oXLApp = GetObject(, "Excel.Application") If Err.Number <> 0 Then Set oXLApp = CreateObject("Excel.Application") End If Err.Clear On Error GoTo 0 oXLApp.Visible = False '~~> Open the relevant file Set oXLWB = oXLApp.Workbooks.Add Set oXLSht = oXLWB.Worksheets(1) oXLSht.Paste '~~> Save Picture Object ImageFile = TempPath & "Tester.jpg" If Len(Dir(ImageFile)) > 0 Then Kill ImageFile Set mychart = oXLSht.ChartObjects(1).Chart mychart.Export FileName:=ImageFile, FilterName:="jpg" '~~> Wait till the file is saved Do If FileExists(ImageFile) = True Then Exit Do DoEvents Loop '~~> Clean Up And Close Excel oXLWB.Close SaveChanges:=False oXLApp.Quit Set oXLWB = Nothing Set oXLApp = Nothing End Sub '~~> Get User's TempPath Function TempPath() As String TempPath = String$(MAX_PATH, Chr$(0)) GetTempPath MAX_PATH, TempPath TempPath = Replace(TempPath, Chr$(0), "") End Function '~~> Function tot check if file exists Public Function FileExists(strFullPath As String) As Boolean On Error GoTo Whoa If Not Dir(strFullPath, vbDirectory) = vbNullString Then FileExists = True Whoa: On Error GoTo 0 End Function 

示例文件进行testing :请下载此文件并运行演示文稿。 如果你点击button后看到图表,那就意味着它可以工作:)

https://skydrive.live.com/redir.aspx?cid=cdd3f8abe20bbe3b&resid=CDD3F8ABE20BBE3B!162&parid=root

BLOG :受到这篇文章的启发,我在博客上专门写了一篇文章,详细介绍整个过程。

主题:在PowerPoint中滚动Excel图表

链接 : http : //www.siddharthrout.com/2012/04/21/scrolling-excel-chart-in-powerpoint/