У Ребекки Берч есть клиенты, которые требуют, чтобы все отчеты представлялись им в PowerPoint. Это представляет собой огромную задачу, поскольку все исходные данные для этих отчетов доступны только в Excel. Ребекка искала идеи, чтобы немного облегчить бремя преобразования из одного в другой — возможно, сделав «снимки» данных рабочего листа и поместив их в слайды PowerPoint.

Одно из решений, если требуется не так много снимков, — просто выполнить вставку вручную. Вы можете отобразить информацию в Excel, а затем нажать клавишу PrintScreen, чтобы поместить ее изображение в буфер обмена Office. Переключитесь на PowerPoint и выберите «Буфер обмена Office» в меню «Правка». Затем вы можете увидеть содержимое буфера обмена и выбрать, что вы хотите вставить в текущий слайд.

Менее повторяющийся подход — связать данные из книги Excel со слайдами. Вы можете использовать Edit | Специальная вставка (в PowerPoint) для вставки связанных данных. Таким образом, каждый раз, когда данные в книге обновляются, связанные слайды также будут обновлены. Если все сделано правильно, возможно, вам придется выполнить вставку только один раз.

Если вы предпочитаете идти по пути разработки макроса для вставки, ознакомьтесь с макросом, разработанным Джоном Пелтье на его веб-сайте:

http://peltiertech.com/Excel/XL_PPT.html#rangeppt

Он сделает снимок выбранных ячеек, а затем вставит их в активный слайд в PowerPoint. (Очевидно, чтобы использовать макрос, у вас должны быть открыты и Excel, и PowerPoint.)

Кроме того, макрос можно было относительно легко изменить, чтобы он прошел через серию именованных диапазонов в Excel и вставил содержимое этих диапазонов в указанные слайды в PowerPoint.

Еще одно решение на основе макросов — создать новую презентацию PowerPoint (из Excel), которая будет содержать моментальный снимок каждого из листов в текущей книге 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 — ваш источник экономичного обучения Microsoft Excel.

Этот совет (2378) применим к Microsoft Excel 97, 2000, 2002 и 2003.