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に適用されます。