PowerPoint用のExcelワークシートのスナップショット(Microsoft Excel)
Rebecca Birchには、すべてのレポートをPowerPointで表示することを要求するクライアントがいます。これらのレポートのすべてのソースデータはExcelでのみ利用できるため、これには大きな課題があります。 Rebeccaは、ワークシートデータの「スナップショット」を取り、それをPowerPointスライドに配置することで、一方から他方への変換の負担を少し簡単にするアイデアを探していました。
必要なスナップショットがそれほど多くない場合の1つの解決策は、単に手動で貼り付けることです。 Excelで情報を表示し、PrintScreenキーを押して、その画像をOfficeクリップボードに配置できます。 PowerPointに切り替えて、[編集]メニューから[Officeクリップボード]を選択します。次に、クリップボードの内容を確認し、現在のスライドに貼り付けるものを選択できます。
繰り返しの少ないアプローチは、Excelワークブックのデータをスライドにリンクすることです。編集|を使用できますリンクされたデータを貼り付けるには、(PowerPointで)特別に貼り付けます。このようにして、ブック内のデータが更新されるたびに、リンクされたスライドも更新されます。正しく行われると、このソリューションは、貼り付けを1回だけ行う必要がある可能性があります。
貼り付けを行うためにマクロを開発するルートを取ることを好む場合は、JonPeltierが彼のWebサイトで開発したものをチェックしてください:
http://peltiertech.com/Excel/XL_PPT.html#rangeppt
選択したセルのスナップショットを取り、PowerPointのアクティブなスライドに貼り付けます。 (明らかに、マクロを使用するには、ExcelとPowerPointの両方を開いている必要があります。)
さらに、マクロは比較的簡単に変更できるため、Excelで一連の名前付き範囲をステップスルーし、それらの範囲の内容をPowerPointの指定したスライドに貼り付けることができます。
別のマクロベースのソリューションは、現在のExcelワークブックの各ワークシートのスナップショットを含む新しいPowerPointプレゼンテーションを(Excel内から)作成することです。次のマクロはこのタスクを実行します:
Sub CopyWksToPPT() Dim pptApp As Object Dim sTemplatePPt As String Dim wks As Worksheet Dim sTargetTop As Single Dim sTargetLeft As Single Dim sTargetWidth As Single Dim sTargetHeight As Single Dim sScaleHeight As Single Dim sScaleWidth As Single Dim iIndex As Integer 'Change these as desired sTargetTop = 30 sTargetLeft = 60 sTargetWidth = 600 sTargetHeight = 450 sTemplatePPt = "C:\Program Files\Microsoft Office\Templates\Blank Presentation.pot" iIndex = 1 Set pptApp = CreateObject("Powerpoint.Application") With pptApp .Visible = True .Presentations.Open _ FileName:=sTemplatePPt, Untitled:=msoTrue For Each wks In Worksheets wks.Select .ActiveWindow.View.GotoSlide _ Index:=.ActivePresentation.Slides.Add _ (Index:=iIndex, Layout:=12).SlideIndex iIndex = iIndex + 1 wks.UsedRange.Copy .ActiveWindow.View.Paste With .ActiveWindow.Selection.ShapeRange sScaleHeight = sTargetHeight / .Height sScaleWidth = sTargetWidth / .Width If sScaleHeight < sScaleWidth Then sScaleWidth = sScaleHeight Else sScaleHeight = sScaleWidth End If .ScaleHeight sScaleHeight, 0, 2 .ScaleWidth sScaleWidth, 0, 2 .Top = sTargetTop + (sTargetHeight - .Height) / 2 .Left = sTargetLeft + (sTargetWidth - .Width) / 2 End With Next .Visible = True End With End Sub
「必要に応じてこれらを変更してください」という領域に注意してください。これには、貼り付けたスナップショットが各PowerPointスライド内のどこにあるか、およびその高さと幅の仕様が含まれています。また、sTemplatePPt変数には、新しいPowerPointプレゼンテーションに使用する必要があるテンプレートへのフルパスも含まれています。
注:
このページ(または_ExcelTips_サイトの他のページ)で説明されているマクロの使用方法を知りたい場合は、役立つ情報を含む特別なページを用意しました。
link:/ excelribbon-ExcelTipsMacros [ここをクリックして、新しいブラウザタブでその特別なページを開きます]
。
_ExcelTips_は、費用効果の高いMicrosoftExcelトレーニングのソースです。
このヒント(2378)は、Microsoft Excel 97、2000、2002、および2003に適用されます。