Копируйте таблицы Excel в блоки PowerPoint.

Вопрос или проблема

Когда-то я знал о функции в PowerPoint, которая позволяла следующее:

  • скопировать ряд из, например, 4 ячеек Excel
  • выбрать 4 рамки в PowerPoint
  • вставить содержимое ячеек в текст этих 4 рамок

Я не ищу вставку таблицы или одного текстового поля, а то, чтобы содержимое ячейки 1 вставлялось в рамку 1, ячейка 2 в рамку 2 и так далее.

Я не могу найти это в интернете или с помощью своих обычных проб и ошибок.

Кто-нибудь знаком с этой функцией и как её использовать?

Редактировать:

Вот несколько скриншотов о том, как это работает у меня

Копирование из Excel

Копирование из Excel

Выбор 4 текстовых полей и вставка в PowerPoint

Выбор 4 текстовых полей и вставка в PowerPoint

Большое спасибо!

У меня была такая же проблема после переустановки Office, и после некоторых тестов на своем и других компьютерах я обнаружил, что возможность копирования диапазона ячеек Excel в несколько текстовых полей/форм была связана с надстройкой PowerPoint (Think-Cell), которую я ранее установил.

Обычное действие при копировании диапазона из Excel в PowerPoint состоит в том, чтобы вставить его в виде таблицы, даже если у вас выбраны несколько фигур.

Это то, что я использую. Я это не кодировал, спасибо автору:

Sub ConvertTableToTextboxes()

  Dim slide As slide
  Dim shape As shape
  Dim i As Integer

  ' Цикл по каждому слайду в активной презентации
  For Each slide In ActivePresentation.Slides
      ' Цикл по каждой фигуре на слайде
      For Each shape In slide.Shapes
         ' Проверка, является ли фигура таблицей
         If shape.HasTable Then
             ' Цикл по каждой строке в таблице
             For i = 1 To shape.Table.Rows.Count
                 ' Цикл по каждому столбцу в таблице
                 For j = 1 To shape.Table.Columns.Count
                     ' Получение текста из ячейки
                     Dim cellText As String
                     cellText = shape.Table.Cell(i, j).shape.TextFrame.TextRange.Text

                     ' Создание нового текстового поля в том же положении, что и ячейка
                     Dim textBox As shape
                     Set textBox = slide.Shapes.AddTextbox(msoTextOrientationHorizontal, shape.Left + shape.Table.Cell(i, j).shape.Left, _
                         shape.Top + shape.Table.Cell(i, j).shape.Top, shape.Table.Cell(i, j).shape.Width, _
                         shape.Table.Cell(i, j).shape.Height)

                     ' Установка текста текстового поля в текст ячейки
                     textBox.TextFrame.TextRange.Text = cellText

                     ' Удаление ячейки из таблицы
                     'shape.Table.Cell(i, j).shape.Delete
                 Next j
             Next i

             ' Удаление фигуры таблицы
             'shape.Delete
         End If
     Next shape
 Next slide

Конец Sub

Ответ или решение

Копирование таблиц Excel в текстовые блоки PowerPoint: подробное руководство

Если вы когда-либо сталкивались с задачей копирования данных из Excel и вставки их в несколько текстовых блоков в PowerPoint, вы могли заметить, что стандартные функции программы обычно позволяют вставить данные только в виде таблицы или в один текстовый блок. Однако существует решение, которое поможет вам автоматизировать этот процесс и эффективно передать данные из отдельных ячеек в соответствующие текстовые блоки.

1. Понимание проблемы

Ваша задача заключается в том, чтобы скопировать набор ячеек из Excel и вставить их в заранее выбранные текстовые блоки на слайде PowerPoint. При этом важно, чтобы данные из первой ячейки вставлялись в первый текстовый блок, данные из второй – во второй и так далее. Стандартный метод вставки в PowerPoint не поддерживает данную функциональность без применения дополнительных инструментов.

2. Использование макроса для оптимизации процесса

Макрос – это отличный способ автоматизации повторяющихся задач в PowerPoint. В приведенном ниже коде макроса реализуется процесс преобразования содержимого таблицы в текстовые блоки. Учтите, что перед запуском макроса стоит убедиться, что все текстовые блоки, в которые требуется вставить данные, уже созданы и выбраны.

Код макроса:

Sub ConvertTableToTextboxes()

  Dim slide As slide
  Dim shape As shape
  Dim i As Integer

  ' Перебор каждого слайда в активной презентации
  For Each slide In ActivePresentation.Slides
      ' Перебор каждой формы на слайде
      For Each shape In slide.Shapes
         ' Проверка, является ли форма таблицей
         If shape.HasTable Then
             ' Перебор каждой строки в таблице
             For i = 1 To shape.Table.Rows.Count
                 ' Перебор каждого столбца в таблице
                 For j = 1 To shape.Table.Columns.Count
                     ' Получение текста из ячейки
                     Dim cellText As String
                     cellText = shape.Table.Cell(i, j).shape.TextFrame.TextRange.Text

                     ' Создание нового текстового блока в позиции ячейки
                     Dim textBox As shape
                     Set textBox = slide.Shapes.AddTextbox(msoTextOrientationHorizontal, shape.Left + shape.Table.Cell(i, j).shape.Left, _
                         shape.Top + shape.Table.Cell(i, j).shape.Top, shape.Table.Cell(i, j).shape.Width, _
                         shape.Table.Cell(i, j).shape.Height)

                     ' Установка текста текстового блока
                     textBox.TextFrame.TextRange.Text = cellText
                 Next j
             Next i

             ' Удаление формы таблицы (если нужно)
             'shape.Delete
         End If
     Next shape
 Next slide
End Sub

3. Как использовать макрос

  1. Открытие редактора VBA:

    • Запустите PowerPoint и откройте презентацию, с которой вы работаете.
    • Нажмите ALT + F11, чтобы открыть редактор Visual Basic for Applications (VBA).
  2. Создание нового макроса:

    • В редакторе VBA выберите Insert -> Module, чтобы создать новый модуль.
    • Вставьте предоставленный код в окно модуля.
  3. Запуск макроса:

    • Закройте редактор VBA и вернитесь в PowerPoint.
    • Нажмите ALT + F8, выберите ConvertTableToTextboxes и нажмите Run.

4. Результаты

После запуска макроса содержимое ячеек таблицы автоматически создаст текстовые блоки на слайде PowerPoint, каждый из которых будет содержать соответствующий текст из ячейки таблицы Excel. Это значительно повышает эффективность работы и уменьшает потенциальные ошибки при ручном копировании и вставке данных.

Заключение

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

Оцените материал
Добавить комментарий

Капча загружается...