Программирование VBA стало проще
Прекратите искать код VBA в Интернете. Узнайте больше об AutoMacro — конструкторе кода VBA, который позволяет новичкам создавать процедуры с нуля с минимальными знаниями в области кодирования и множеством функций, позволяющих сэкономить время для всех пользователей!
Открыть существующую презентацию
Чтобы открыть уже созданную презентацию, используйте метод Open коллекции Application.Presentations
Приведенный выше код предполагает, что презентация находится в том же каталоге, что и презентация PowerPoint, содержащая код.
Открыть и назначить переменной
Презентацию, которую вы открываете, следует присвоить переменной, чтобы вы могли манипулировать ею в соответствии со своими требованиями.
См. активную презентацию
Используйте ссылку ActivePresentation для управления презентацией, активной в графическом интерфейсе, когда выполняется код VBA.
Сохранить текущую презентацию
Следующий оператор сохранит активную презентацию, если она была сохранена ранее. Если он не был сохранен, вам будет предложено открыть диалоговое окно «Сохранить как».
Закрыть текущую презентацию
Приведенный ниже оператор закроет активную презентацию, даже если она не была сохранена после последнего редактирования.
Просмотреть все слайды
Вы можете что-то сделать с каждым слайдом или просмотреть все слайды, чтобы найти несколько слайдов и что-то сделать с помощью кода;
Пройтись по всем формам активного слайда
Мощь PowerPoint можно реализовать с помощью «Фигур». Приведенный ниже код перебирает все фигуры на текущем слайде, чтобы вы могли манипулировать ими по своему усмотрению.
Пройтись по всем текстовым полям активного слайда
Текстовые поля — наиболее часто используемые фигуры в презентациях PowerPoint. Вы можете пройтись по всем текстовым полям, добавив проверку «Тип фигуры». Тип формы для текстовых полей определяется как константа VBA msoTextBox (числовое значение константы равно 17)
Копировать выбранные слайды в новую презентацию PPT
Чтобы скопировать определенные слайды в новую презентацию, сначала выберите нужные слайды в существующей презентации, а затем запустите приведенный ниже код.
Automating PowerPoint from Excel
You can also connect to PowerPoint though other applications (like Excel and Word). As as first step, you must refer to an instance of PowerPoint.
There are two ways of doing it – early binding and late binding .
Open PowerPoint – Early Binding
In ‘Early Binding’ you must explicitly set a reference to ‘Microsoft PowerPoint 16 Object Library’ (for MS Office 2019) in the VBE (Visual Basic Editor) using the option Tools->References.
Open PowerPoint – Late Binding
In ‘Late Binding’ application variable is declared as an object and VBA engine connects to the correct application at run time.
Maniplulate PowerPoint
You can use all the methods to manipulate presentations, from within PowerPoint, described above from Excel by just adding the reference to PowerPoint created by you above.
For example
has to be used liked this
Close the Application
Once you have completed what you wanted to do with the PowerPoint application you must close it and should release the reference.
Copy From Excel to PowerPoint
This code will copy a range from Excel to PowerPoint:
Note: It has been kept as simple as possible to show how a range from Excel can be copied to PowerPoint using VBA.
What are macros in PPT?
A Macro is a general term that refers to a set of programming instructions that automates tasks. PowerPoint (PPT) Macros automate tasks in PowerPoint using the VBA programming language.
How do I create a Macro in PowerPoint?
1. Open the VBA Editor (ALT + F11 or Developer > Visual Basic)
2. Go to Insert > Module to create a Code Module
3. Type ‘Sub HelloWorld’ and press Enter
4. In between the lines ‘Sub HelloWorld’ and ‘End Sub’, type ‘MsgBox “Hello World!’
5. You’ve created a Macro!
6. Now press ‘F5’ to run the Macro
Written by: Vinamra Chandra
Как преобразовать данные Excel в слайды PowerPoint
Excel
Электронная таблица Excel часто используется вместе с презентациями PowerPoint для создания отчетов о бюджете, бизнес-планов, сведений об инвентаризации, финансовых отчетов, отчетов о состоянии проекта и т. Д. Электронная таблица Microsoft Excel, вероятно, является один из лучших инструментов, используемых для учета и планирования бизнеса. Мы часто используем таблицы Excel для анализа данных, планирования событий, планирования аудитов, составления диаграмм, расчета бюджета, планирования расходов и т. Д. Чтобы представить эти аналитические отчеты, созданные в Excel, мы в основном используем Microsoft PowerPoint для профессиональной презентации.
Как листы Excel, так и слайды PowerPoint используются бок о бок, и мы часто копируем таблицы и диаграммы из Excel и вставляем их в слайд PowerPoint для создания презентации в виде слайд-шоу. Но мы обычно постоянно обновляем таблицы Excel новыми данными, и в таких случаях неудобно менять все таблицы в слайдах PowerPoint. Этого препятствия для обновления изменений, внесенных в лист Excel, в слайд Powerpoint можно избежать, связав данные Excel с PowerPoint.
Конвертировать Excel в PowerPoint
К счастью, Microsoft позволяет использовать технику связывания и встраивания объектов, также известную как OLE, для связывания данных из электронной таблицы Excel со слайдами PowerPoint, которые автоматически обновляют презентации Powerpoint при внесении изменений в таблицу Excel. В этом случае лист Excel является исходным файлом, а информация из объекта Excel связана с PowerPoint. При этом любые изменения в исходном файле отражаются непосредственно в связанных объектах в PowerPoint. В этой статье мы расскажем, как скопировать данные из листа Excel и поместить их в презентацию PowerPoint со встроенными элементами управления.
Скопируйте и вставьте данные Excel в PowerPoint
Вы можете скопировать таблицы данных из электронной таблицы Excel и вставить их в презентацию PowerPoint. Однако данные в PowerPoint не обновляются автоматически при изменении или обновлении данных электронной таблицы.
Откройте файл Excel , который вы хотите скопировать, и выделите все данные в файле, который вы хотите скопировать, перетащив область нужных вам данных.
Перейдите на вкладку Главная и нажмите Копировать.
Теперь откройте Microsoft PowerPoint и откройте слайд-презентацию, куда вы хотите вставить данные электронной таблицы.
Нажмите правой кнопкой мыши на слайде и выберите вариант Вставить в раскрывающемся меню.
Вы можете изменить параметры презентации, нажав на значок буфера обмена.
После этого нажмите Сохранить , чтобы применить изменения.
Связать лист Excel с PowerPoint
При связывании электронной таблицы Excel с PowerPoint все содержимое файла в качестве объекта будет вставлено в презентацию PowerPoint.
Откройте Microsoft PowerPoint и перейдите на вкладку Вставить .
Нажмите Объект в разделе «Текст».
Появится диалоговое окно Вставить объект . Нажмите на переключатель с параметром Создать из файла .
Нажмите кнопку Обзор и выберите электронную таблицу Excel, данные которой вы хотите связать с Powerpoint.
Установите флажок Ссылка и нажмите ОК.
Измените размер снимка электронной таблицы на слайде и дважды щелкните ее, чтобы открыть файл в Microsoft Excel.
Связать раздел данных в Excel с PowerPoint
Запустите Microsoft Excel и откройте электронную таблицу, которую вы хотите связать с PowerPoint.
Выберите данные, которые вы хотите вставить в слайд PowerPoint, перетаскивая область данных.
Перейдите на вкладку «Главная» и нажмите «Копировать».
Запустите PowerPoint и откройте слайд PowerPoint, куда вы хотите вставить данные.
Перейдите на вкладку «Главная» и нажмите стрелку рядом с параметром «Вставить».
Выберите Специальная вставка.
В диалоговом окне Специальная вставка нажмите переключатель с параметром Вставить ссылку и в разделе Вставить ссылку Как , выберите Объект Microsoft Excel Worksheet и нажмите Ok.
Стоит отметить, что описанная выше методика OLE не будет работать, если исходный файл Excel будет переименован или если вы переместите исходный файл из исходного местоположения, поскольку ссылка не сможет найти файл.
Как создать презентацию с макросами?
Презентация PowerPoint с поддержкой макросов предоставляет возможность автоматизировать определенные задачи и выполнять различные действия с презентацией. Для создания презентации с макросами, вам понадобится некоторые базовые знания о программе PowerPoint и умение писать макросы на языке программирования VBA (Visual Basic for Applications).
Вот пошаговая инструкция по созданию презентации с макросами:
- Откройте программу Microsoft PowerPoint и создайте новую презентацию или откройте уже существующую.
- Перейдите во вкладку «Разработчик» на главной панели инструментов. Если эта вкладка не отображается, откройте «Настройки» PowerPoint, выберите «Расширенные настройки» и установите флажок напротив «Показывать вкладку Разработчик на ленте инструментов».
- На вкладке «Разработчик» найдите группу «Макросы» и нажмите на кнопку «Макрос».
- В появившемся окне нажмите на кнопку «Создать».
- В поле «Имя макроса» введите имя для вашего макроса.
- Нажмите на кнопку «Создать», чтобы открыть редактор VBA.
- В редакторе VBA напишите код для вашего макроса, используя язык программирования VBA. Вы можете использовать различные команды и функции для работы с презентацией, слайдами, объектами и другими элементами PowerPoint.
- После завершения написания кода макроса, закройте редактор VBA, чтобы вернуться к презентации.
- Вернитесь в PowerPoint и сохраните вашу презентацию.
Теперь ваша презентация содержит макрос, который можно выполнять для автоматизации определенных задач или действий. Чтобы выполнить макрос, перейдите во вкладку «Разработчик» и найдите группу «Макросы». Выберите ваш макрос из списка и нажмите на кнопку «Выполнить».
Таким образом, создание презентации с макросами требует некоторого времени и знания языка программирования VBA, но это отличный способ добавить интерактивность и автоматизацию в вашу презентацию PowerPoint.
An Extension to Macros in PowerPoint: “Swap Multiple Shapes”
You can extend this macro to swap multiple shapes with a few simple changes.
Start by changing the variable declarations and error checks at the top.
When the user selects multiple shapes, you need to save the first shape’s positions, and you need to create a “counter variable” that tracks the shape # you’re currently on.
For example, if the user has selected 10 shapes, you need to know if you’re currently on shape #1, #2, #3, or #4-10 as you move through the selection and change each shape’s positions.
Also, you need to make sure the user has selected more than 1 shape – not necessarily just 2 shapes:
Next, you need to “loop” through all the shapes the user has selected with a “For” statement.
So, if the user has selected 10 shapes, you need to move from shape #1 through shape #10 and change the position of each shape.
You can start by typing the syntax for this “For” loop:
For an example of how this works, continue assuming that the user has selected 10 shapes.
In this case, you should loop through shapes #1 – #9 and set each shape’s Left and Top positions to the next shape’s Left and Top positions.
So, Shape #1 Top should become Shape #2 Top, and Shape #2 Top should become Shape #3 Top.
When you reach shape #10, you should set its Top and Left positions to those of the first shape.
This means you need to save shape #1’s Top and Left positions before starting this loop.
You can start by handling the case for shapes #1 – 9, or “everything before the final shape”:
As the next step, you can add a special case to save the first shape’s position before the “For” loop and set the last shape’s position equal to the first shape’s:
You can now test these changes on the reference slides and verify that this macro “rotates” multiple shapes:
Activate the macro enough times, and the shapes will return to their original positions.
Как этот код работает
Шаг 1 объявляет шесть переменных: PP является переменной объекта, которая выставляет PowerPoint; PPPres является переменной объекта, которая выставляет объект презентации PowerPoint; PPSlide является переменной объекта, которая выставляет объект слайдов в PowerPoint; xlwksht является переменной объекта, которая выставляет объект рабочего листа; MyRange переменная строка, используемая для хранения и передачи имени диапазона в виде строки; MyTitle переменная строка, используемая для хранения и передачи заголовок для каждого слайда.
Шаг 2 открывает PowerPoint с пустой презентацией
Обратите внимание, что мы устанавливаем Видимый свойство приложения PowerPoint в True. Это гарантирует, что мы можем увидеть действие, как работает код.
Шаг 3 заполняет переменную MyRange со строкой, представляющей диапазон, который мы хотим захватить как содержание слайдов
Мы также заполняем переменную MyTitle со значением ячейки C19. Значение становится заголовком для слайда.
Шаг 4 запускает цикл через каждый лист в книге. Обратите внимание, что мы используем метод Application.Wait, говоря макросу, чтобы он сделал паузу в течение секунды. Это позволяет скопировать весь диапазон.
Шаг 5 использует метод CopyPicture для копирования в заданный диапазон в качестве изображения.
Шаг 6 добавляет новый слайд в презентации с помощью метода Add объекта Slide. Обратите внимание, что мы используем SlideCount + 1, чтобы указать порядковый номер добавленного слайда. Использование SlideCount + 1 позволяет динамически назначать следующий доступный номер в качестве индекса слайдов. Также обратите внимание, что мы используем ppLayoutTitleOnly, обеспечивая наш слайд названием текстового фрейма.
Шаг 7 вставляет изображение в активный слайд, центры изображения по горизонтали, и регулирует изображение по вертикали 100 пикселей от верхнего края.
Далее передаем переменную MyTitle применить текст в заголовке текстового фрейма.
Шаг 9 очищает память.
Каковы преимущества использования макросов в PowerPoint?
Запись макросов в программах Microsoft — одна из самых мощных функций пакета приложений. Однако широкой публике это в значительной степени неизвестно. По этой причине необходимо выделить преимущества использования макросов в PowerPoint . Главное преимущество использования Макрос , представляя собой экономия времени .
когда у тебя есть автоматизировал задачу , вам больше не нужно будет многократно нажимать клавиши или повторно взаимодействовать с мышью. Созданный макрос отвечает за автоматическое выполнение записанных шагов . Во-вторых, réduction замечательный ошибки можно упомянуть . Небрежность при создании презентации — обычное дело. Однако, записывая макросы, вы значительно уменьшить погрешность .
Регистратор выполняет все шаги, назначенные конкретной задаче. Наконец, использование Визуальный Бейсик создать Макрос Vous Permet D ‘ увеличить возможности приложения . Вы можете разрабатывать новые функции для Word , Excel et PowerPoint и поэтому используйте их при необходимости.
Автоматизация создания презентаций с помощью VBA
Microsoft Excel вместе с VBA (языком программирования Visual Basic for Applications) предоставляет мощные инструменты для автоматизации создания и управления презентациями в Microsoft PowerPoint. Это может быть особенно полезно для тех, кто регулярно создает презентации с однотипным содержимым или требует большого количества слайдов. С помощью VBA, вы можете автоматизировать множество задач, таких как создание, изменение и форматирование слайдов, добавление текста, изображений и графиков.
Для начала работы с VBA в PowerPoint, вам потребуется включить Диспетчер объектов VBA и добавить ссылку на «Microsoft PowerPoint Object Library». Затем вы можете использовать объекты PowerPoint (такие как презентации, слайды, списки слайдов и др.) и методы VBA для управления презентацией.
Одной из самых полезных функций VBA является возможность автоматического создания и форматирования слайдов. Например, вы можете использовать цикл for или массивы данных из Excel для создания нескольких слайдов с однотипным содержимым, таким как диаграммы, таблицы или графики. Это может сэкономить вам много времени, особенно если необходимо создать презентацию на основе большого объема данных.
Кроме того, с помощью VBA вы можете автоматизировать добавление текста, изображений и графиков на слайды презентации. Например, вы можете использовать значения из ячеек Excel для создания заголовка слайда или добавить динамическую диаграмму, которая автоматически обновляется при изменении данных в Excel.
Также VBA предоставляет возможность форматирования и стилизации слайдов. Например, вы можете установить цвета, шрифты, выравнивание и другие атрибуты текста на слайде при помощи VBA кода. Вы также можете добавить анимацию и переходы между слайдами, чтобы сделать презентацию более эффектной и интерактивной.
В целом, использование VBA для автоматизации создания презентаций в PowerPoint может существенно упростить вашу работу и помочь сэкономить время и усилия. С помощью VBA вы можете создавать слайды, добавлять содержимое и форматировать презентации с высокой степенью гибкости и контроля.
Как настроить создание презентации в PowerPoint с помощью кода VBA
Microsoft PowerPoint предоставляет возможность использовать язык программирования VBA (Visual Basic for Applications) для автоматизации различных задач, включая создание и настройку презентаций. С помощью кода VBA можно создавать новые презентации, добавлять слайды, настраивать макеты и элементы слайдов по вашему желанию. В этом разделе мы рассмотрим, как настроить создание презентации в PowerPoint с помощью кода VBA.
Для начала необходимо открыть Visual Basic Editor в PowerPoint. Это можно сделать, выбрав «Разработчик» в главном меню PowerPoint, а затем нажав на кнопку «Visual Basic». В открывшемся окне Visual Basic Editor можно написать и отредактировать код VBA для автоматизации создания презентации.
Чтобы создать новую презентацию с помощью кода VBA, вставьте следующий код в модуль Visual Basic Editor:
В этом коде мы сначала создаем новый экземпляр приложения PowerPoint и сохраняем его в переменную . Затем мы создаем новую презентацию и сохраняем ее в переменную . Вы можете добавить свои собственные настройки презентации между строками, отмеченными комментарием ‘Добавьте свои настройки презентации здесь’. Например, можно задать название презентации, автора, оформление слайдов и т.д. После настройки презентации мы делаем приложение видимым для пользователя, а затем освобождаем память, устанавливая переменные в значение .
После написания и сохранения кода вы можете выполнить процедуру, выбрав ее в окне Visual Basic Editor и нажав кнопку «Выполниить» или нажав на кнопку «Пуск» в PowerPoint. Если код был написан правильно, вы должны увидеть новую презентацию, которая соответствует вашим настройкам.
Это только начало использования кода VBA для автоматизации создания презентаций в PowerPoint. Вы можете добавить код для добавления слайдов, настройки макетов и элементов слайдов и многое другое. Использование кода VBA может значительно упростить и ускорить процесс создания презентаций в PowerPoint.
Conclusion
So, there we have it. 3 ways to write valid PowerPoint VBA code. None of this is straightforward, so when you stumble across an issue, Google is definitely your best friend. Chances are that somebody else has had the same problem before you.
What next?
Discover how you can automate your work with our Excel courses and tools.
Excel AcademyThe complete program for saving time by automating Excel.
Find out more
Excel Automation SecretsDiscover the 7-step framework for automating Excel.
Find out more
Office Scripts: Automate Excel EverywhereStart using Office Scripts and Power Automate to automate Excel in new ways.
Find out more
Макробезопасность Каковы основные риски, связанные с их использованием?
Использование макросов в рутинных задачах позволяет значительно снизить рабочую нагрузку. Однако необходимо учитывать каковы основные риски, связанные с их использованием . По этой причине мы даем вам краткий обзор безопасность макросов и их уязвимости. Следует отметить, что нет никакого риска при создании макроса. Проблема возникает при запуске внешних макросов на вашем компьютере.
. нападавшие Информатика способны создавать вредоносные коды VBA , который можно интегрировать в документ Office. Каковы последствия запуска вредоносных макросов? Что ж, все дело в элементах управления. Есть команды, которые могут удалять файлы с диска , и они выполняются Макрос поврежден. Когда вы открываете документ, содержащий загрязненный макрос , он будет запускаться автоматически для всех будущих файлов.
Не только из PowerPoint, но также Excel и Слово, таким образом затрагивая все документы в системе. К счастью, последние версии Microsoft Office есть раздел безопасность для защиты вашего компьютера от неизвестных макросов . Если макрос не имеет доверенного сертификата, он не сможет работать на компьютере.
Точно так же, Офисные приложения после 2013 года настроены так, что все Макрос являются отключен, таким образом избегая уязвимостей. Имейте в виду, что файлы, содержащие Макрос идентифицируются «М» в их соответствующих расширениях. Например: XLSM ( Excel ), DOCM ( Word ) И миллионных долей ( PowerPoint ). Таким образом, вы можете легко проверить, содержит ли полученный вами документ макро.
VBA PowerPoint: основы и возможности
1. Редактирование слайдов: С помощью VBA вы можете создавать новые слайды, удалять или редактировать существующие, изменять их порядок и стилевое оформление. Например, вы можете автоматически создавать слайды с графиками, диаграммами или таблицами на основе данных из Excel.
2. Управление объектами на слайдах: С помощью VBA вы можете создавать, изменять или удалять различные объекты на слайдах, такие как текстовые блоки, изображения, формы и т. д. Вы можете менять их размеры, положение, шрифты, цвета и другие атрибуты.
3. Анимации и переходы: VBA позволяет управлять анимацией слайдов и переходами между ними. Вы можете программно задавать типы анимаций, их продолжительность и параметры, а также настраивать эффекты переходов между слайдами.
4. Взаимодействие с другими приложениями: С помощью VBA в PowerPoint можно взаимодействовать с другими приложениями, такими как Excel, Word или Outlook. Вы можете передавать данные между приложениями, осуществлять обмен информацией и выполнять сложные операции, используя возможности этих приложений.
5. Автоматическая презентация: С помощью VBA можно создавать автоматические презентации, которые выполняют определенные действия в соответствии с заданной логикой. Например, вы можете создать презентацию, которая автоматически проходит по слайдам, запускает анимации и делает паузы между слайдами.
6. Обработка событий: С помощью VBA вы можете программировать обработку событий в презентации. Например, вы можете задать действия, которые будут выполняться при щелчке на определенном объекте на слайде или при смене слайда.
7. Настройка окружения: С помощью VBA вы можете настраивать работу PowerPoint, устанавливать определенные параметры и настройки по умолчанию, создавать пользовательские меню, инструменты и кнопки.
Все эти возможности VBA в PowerPoint позволяют значительно сэкономить время и упростить выполнение повторяющихся задач. Они также дают большую гибкость и контроль над созданием и редактированием слайдов, анимацией и другими аспектами презентации. Если вам нужно выполнить автоматизацию или настроить PowerPoint по своим потребностям, использование VBA может быть очень полезным и эффективным.
Premium Courses
Combined shape 37Created with Sketch.
Based on the content of this tutorial, our recommended Premium Course Upgrade is…
PowerPoint Pro
Master PowerPoint by creating a sell-side M&A and valuation pitch book for Jazz Pharmaceuticals — plus company/deal profiles and more.
Learn More
Other BIWS Courses Include:
Polygon 1Created with Sketch.
BIWS Premium:
Get the Excel & VBA, Core Financial Modeling, and PowerPoint Pro courses together and learn everything from Excel shortcuts up through financial modeling, valuation, M&A and LBO deals, and the key PowerPoint shortcuts and commands.
Learn More
Polygon 1Created with Sketch.
BIWS Platinum:
The most comprehensive package on the market today for investment banking, private equity, hedge funds, and other finance roles. Includes ALL the courses on the site at a huge discount, plus updates and new additions over time.
Learn More
Работа с диапазонами ячеек
Вся работа в Excel VBA производится с диапазонами ячеек. Они создаются функцией Range и возвращают объект типа Range. У него есть всё необходимое для работы с данными и/или оформлением. Кстати сказать, свойство Cells листа — это тоже Range.
Примеры работы с Range
Теперь давайте поймем алгоритм работы нашего кода. Итак, у каждой строчки листа data, начиная со второй, есть некоторые данные, которые нас не интересуют (ID, название и цена) и есть две вложенные группы, к которым она принадлежит (тип и производитель). Более того, эти строки отсортированы. Пока мы забудем про пропуски перед началом новой группы — так будет проще. Я предлагаю такой алгоритм:
- Считали группы из очередной строки.
- Пробегаемся по всем группам в порядке приоритета (вначале более крупные)
- Если текущая группа не совпадает, вызываем процедуру AddGroup(i, name), где i — номер группы (от номера текущей до максимума), name — её имя. Несколько вызовов необходимы, чтобы создать не только наш заголовок, но и всё более мелкие.
- После отрисовки всех необходимых заголовков делаем еще одну строку и заполняем её данными.
Для упрощения работы рекомендую определить следующие функции-сокращения:
Далее определим глобальную переменную «текущая строчка»: Dim CurRow As Integer. В начале процедуры её следует сделать равной единице. Еще нам потребуется переменная-«текущая строка в data», массив с именами групп текущей предыдущей строк. Потом можно написать цикл «пока первая ячейка в строке непуста».
Теперь надо перенести всякую информацию в result
Подогнать столбцы по ширине и выбрать лист result для показа результата
Всё. Можно любоваться первой версией.
Некрасиво, но похоже. Давайте разбираться с форматированием. Сначала изменим процедуру AddHeader:
Уже лучше:
Осталось только сделать границы. Тут уже нам требуется работать со всеми объединёнными ячейками, иначе бордюр будет только у одной:
Поэтому чуть-чуть меняем код с добавлением стиля границ:
Осталось лишь добится пропусков перед началом новой группы. Это легко:
В цикле расстановки заголовков
В точности то, что и хотели.
Надеюсь, что эта статья помогла вам немного освоится с программированием для Excel на VBA. Домашнее задание — добавить заголовки «ID, Название, Цена» в результат. Подсказка: CurRow = 0 CurRow = 1.
Файл можно скачать тут (min.us) или тут (Dropbox). Не забудьте разрешить исполнение макросов. Если кто-нибудь подскажет человеческих файлохостинг, залью туда.
Спасибо за внимание. UPD: Перезалил пример на Dropbox и min.us
UPD: Перезалил пример на Dropbox и min.us.
UPD2: На самом деле, при вызове процедуры с одним параметром скобки можно поставить. Либо использовать конструкцию Call Foo(«bar», 1, 2, 3) — тут скобки нужны постоянно.
Создание файлов Excel
Метод Workbooks.Add
Описание
Файлы Excel можно создавать из кода VBA с помощью метода Add объекта Workbooks.
Workbooks.Add – это метод, который создает и возвращает новую книгу Excel. Новая книга после создания становится активной.
Ссылку на новую книгу Excel, созданную методом Workbooks.Add, можно присвоить объектной переменной с помощью оператора или обращаться к ней, как к активной книге: .
Синтаксис
Template – параметр, который определяет, как создается новая книга.
Значение Template | Параметры новой книги |
---|---|
Отсутствует | Новая книга с количеством листов по умолчанию. |
Полное имя существующего файла Excel | Новая книга с указанным файлом в качестве шаблона. |
xlWBATChart | Новый файл с одним листом диаграммы. |
xlWBATWorksheet | Новый файл с одним рабочим листом. |
Примеры
Пример 1
Создание новой книги Excel с количеством листов по умолчанию и сохранение ее в папку, где расположен файл с кодом VBA:
1 |
SubPrimer1() ‘Создаем новую книгу Workbooks.Add ‘Сохраняем книгу в папку, где расположен файл с кодом ActiveWorkbook.SaveAs(ThisWorkbook.Path&»\Моя новая книга.xlsx») ‘Закрываем файл ActiveWorkbook.Close EndSub |
Файл «Моя новая книга.xlsx» понадобится для следующего примера.
Пример 2
Создание новой книги по файлу «Моя новая книга.xlsx» в качестве шаблона с присвоением ссылки на нее объектной переменной, сохранение нового файла с новым именем и добавление в него нового рабочего листа:
1 |
SubPrimer2() ‘Объявляем объектную переменную с ранней привязкой DimMyWorkbook AsWorkbook ‘Создаем новую книгу по шаблону файла «Моя новая книга.xlsx» SetMyWorkbook=Workbooks.Add(ThisWorkbook.Path&»\Моя новая книга.xlsx») WithMyWorkbook ‘Смотрим какое имя присвоено новому файлу по умолчанию MsgBox.Name'»Моя новая книга1″ ‘Сохраняем книгу с новым именем .SaveAs(ThisWorkbook.Path&»\Моя самая новая книга.xlsx») ‘Смотрим новое имя файла MsgBox.Name'»Моя самая новая книга» ‘Добавляем в книгу новый лист с именем «Мой новый лист» .Sheets.Add.Name=»Мой новый лист» ‘Сохраняем файл .Save EndWith EndSub |
Описание
Если в коде VBA Excel применить метод Worksheet.Copy без указания параметра Before или After, будет создана новая книга с копируемым листом (листами). Новая книга станет активной.
Примеры
Пример 3
Создание новой книги с помощью копирования одного листа (в этом примере используется книга, созданная в первом примере):
1 |
SubPrimer3() ‘Если книга источник не открыта, ее нужно открыть Workbooks.Open(ThisWorkbook.Path&»\Моя новая книга.xlsx») ‘Создаем новую книгу копированием одного листа Workbooks(«Моя новая книга.xlsx»).Worksheets(«Лист1»).Copy ‘Сохраняем новую книгу с именем «Еще одна книжица.xlsx» в папку, ActiveWorkbook.SaveAs(ThisWorkbook.Path&»\Еще одна книжица.xlsx») EndSub |
Также, как и при создании нового файла Excel методом Workbooks.Add, при создании новой книги методом Worksheet.Copy, можно ссылку на нее присвоить объектной переменной.
Пример 4
Создание новой книги, в которую включены копии всех рабочих листов из файла с кодом VBA:
1 |
SubPrimer4() ThisWorkbook.Worksheets.Copy EndSub |
Пример 5
Создание новой книги, в которую включены копии выбранных рабочих листов из файла с кодом VBA:
1 |
SubPrimer5() ThisWorkbook.Sheets(Array(«Лист1″,»Лист3″,»Лист7»)).Copy EndSub |
Создание текстовых файлов
Оператор Open
При попытке открыть несуществующий текстовый файл с помощью оператора Open, такой файл будет создан. Новый файл будет создан при открытии его в любом режиме последовательного доступа, кроме Input (только для чтения).
Пример
1 |
SubPrimer6() Dimff AsInteger,ws AsObject ‘Получаем свободный номер для открываемого файла ff=FreeFile ‘Создаем новый текстовый файл путем открытия Open ThisWorkbook.Path&»\Мой-новый-файл.txt»ForOutput Asff ‘Записываем в файл текст Write#ff,»Этот файл создан при его открытии оператором «&_ «Open по несуществующему адресу (полному имени).» Close ff ‘Открываем файл для просмотра Setws=CreateObject(«WScript.Shell») ws.Run ThisWorkbook.Path&»\Мой-новый-файл.txt» Setws=Nothing EndSub |
В имени текстового файла пробелы заменены дефисами (знаками минус), так как метод Run объекта Wscript.Shell не способен открывать файлы с именами, содержащими пробелы.
Рекомендую открывать файлы для просмотра методом ThisWorkbook.FollowHyperlink. Пример и преимущества этого метода в статье VBA Excel. Открыть файл другой программы.
Метод FileSystemObject.CreateTextFile
Для создания нового текстового файла из кода VBA Excel по указанному имени, можно использовать метод CreateTextFile объекта FileSystemObject.
Пример
1 |
SubPrimer7() Dimfso,fl,ws ‘Создаем новый экземпляр объекта FileSystemObject Setfso=CreateObject(«Scripting.FileSystemObject») ‘Присваиваем переменной fl новый объект TextStream, Setfl=fso.CreateTextFile(ThisWorkbook.Path&»\Еще-один-текстовый-файл.txt») ‘Записываем в файл текст fl.Write(«Этот текстовый файл создан методом CreateTextFile объекта FileSystemObject.») ‘Закрываем файл fl.Close ‘Открываем файл для просмотра Setws=CreateObject(«WScript.Shell») ws.Run ThisWorkbook.Path&»\Еще-один-текстовый-файл.txt» EndSub |
Стоит отметить, что новый текстовый файл может быть создан и с помощью метода OpenTextFile объекта FileSystemObject при условии присвоения параметру create значения True.