Vba создать файл excel: Файл Excel для создания и управления базой данных (Excel, VBA)
Содержание
Как создать и добавить надстройку в Excel с кодом VBA
Надстройки Excel – это прекрасная альтернатива создания макросов доступных для использования любых других файлов рабочих книг. Если Вам понравиться создавать свои надстройки и вы войдете во вкус, то это полезное и интересное занятие может еще для вас приносить неплохой доход. Надстройки можно публиковать и продавать в магазине Office Store. В данном примере мы покажем, как создать свою достройку с макросом, написанным на коде самого простого и весьма востребованного языка программирования VBA (Visual Basic for Applications).
Чтобы создать, добавить и включить свою надстройку с макросом, следует:
- Создайте новую рабочую книгу: «ФАЙЛ»-«Создать»-«Пустая книга». Или нажмите комбинацию горячих клавиш CTRL+N.
- Откройте редактор макросов: «РАЗРАБОТЧИК»-«Код»-«Visual Basic».
- Вставьте новый модуль выбрав инструмент: «Insert»-«Module».
- В окне модуля введите свой код макроса. Возьмем простейший пример макроса:
- Закройте окно редактора макросов и выберите инструмент: «ФАЙЛ»-«Сохранить как» (CTRL+S). В поле «Имя файла:» введите название для своей тестовой программы. А из выпадающего списка «Тип файла:» выберите значение «Надстройка Excel 97-2003» (*.xla). Автоматически откроеться папка для установки надстроек: C:\Documents and Settings\User_Name \AppData\Roaming\Microsoft\AddIns. И нажмите на кнопку «Сохранить».
- Перед тем как установить надстройку в Excel, закройте все открытые рабочие книги снова запустите программу Excel.
- Выберите инструмент: «ФАЙЛ»-«Параметры»-«Надстройки». Внизу из выпадающего списка «Управление:» укажите на опцию «Надстройки Excel» и нажмите на кнопку «Перейти».
- В появившемся диалоговом окне «Надстройки» нажмите на кнопку «Обзор», а после найдите и найдите свое название, на против него поставьте галочки и нажмите на кнопку «Ок». Если вы не находите названия нажмите на кнопку «Обзор», чтобы указать путь к вашему файлу с надстройкой.
Sub MyMakros()
Dim polzovatel As String
Dim data_segodnya As Date
polzovatel = Application. UserName
data_segodnya = Now
MsgBox "Макрос запустил пользователь: " & polzovatel & vbNewLine & data_segodnya
End Sub
Надстройка VBA готова! Теперь во всех открытых рабочих книгах можно будет воспользоваться макросами из вашего *.xla файла. Чтобы убедиться в этом снова откройте редактор Visual Basic (ALT+F11).
Как видно ее теперь всегда можно найти в списке проектов и использовать все ее макросы в любых других файлах.
Как удалить надстройку в Excel
Чтобы отключить вашу надстройку снова откройте окно «ФАЙЛ»-«Параметры»-«Надстройки»-«Перейти» и снимите соответственную галочку в появившемся диалоговом окне. Для полного удаления надстройки придется удалить ее файл *.xla из папки C:\Documents and Settings\User_Name \AppData\Roaming\Microsoft\AddIns.
Полезные советы по надстройкам
Внимание! В данном примере мы использовали формат рабочей книги для сохранения файла в формате «Надстройка 97-2003». Это позволяет использовать ее в разных версиях Excel. Например, файлы, сохраненные в формате *. xlam не может быть использована в версии 2007 и старше. Поэтому лучше воспользоваться старым форматом файлов надстройке *.xla.
Читайте также: скачать VBA код программы надстройки сумма прописью с копейками на русском, украинском и английском языке. Или перевод числа в текст средствами Excel.
Примечание. Если вы хотите защитить паролем доступ к своим исходным кодам макросов, тогда выберите инструмент в редакторе Visual Basic: «Tools»-«VBAProject Properties». На закладке «Protection» в поле ввода «Password:» введите пароль для защиты доступу к макросам проекта рабочей книги. В поле ввода «Confirm password:» введите пароль повторено и нажмите на кнопку ОК.
Файл MS Excel, книга Excel, расширение файла, создать файл, сохранение файла
Файл MS Excel, с точки зрения пользователя, состоит из нескольких листов, каждый лист представляет из себя таблицу с возможностями вычислений и построения различных графиков и диаграмм. Количество листов ограничено объемом доступной оперативной памяти. Часто используется термин книга Excel.
Лист, в свою очередь, состоит из прямоугольных ячеек. Вертикальный ряд ячеек называются столбцом, горизонтальный ряд ячеек называются строкой.
Расширения файлов Excel
Обычно, файлы MS Excel имеют расширение xlsx или xlsm. Книга может называться, например, бюджет.xlsx или бюджет.xlsm.
Как видим, расширения отличаются последней буквой. Чем будут отличаться сами книги с разными расширениями? Вот чем:
- Расширение xlsx — книга не содержит макросов (программ), написанных на языке VBA (Visual Basic for Applications). Visual Basic for Applications это язык программирования встроенный в MS Excel, MS Word, MS Outlook и другие продукты из пакета Microsoft Office.
- Расширение xlsm — книга может содержать макросы. Но может и не содержать макросов. Книгу без макросов можно сохранить с расширением xlsm. А файл с макросами нельзя сохранить с расширением xlsx.
Иными словами, книга c расширением xlsx точно не содержит макросов, файл с расширением xlsm может содержать макросы, а может не содержать.
Книги с расширением xlsm можно схематически представить в таком виде:
Файлы с макросами могут представлять угрозу, поэтому в настройках безопасности надо выбрать, что делать при попытке открыть файл c макросами.
Если вручную изменить расширение с xlsm на xlsx или наоборот, то при попытке открыть книгу будет выдано сообщение, что файл невозможно открыть, так как расширение не соответствует формату.
До версии 2007 оба типа файлов имели расширение xls.
Также возможны расширения xltx, xltm, xlsb, xla, xlam.
Как создать файл Excel
Создать книгу Excel можно четырьмя способами.
- Способ 1. На рабочем столе или в папке правой кнопкой мыши вызвать контекстное меню. Выбрать пункт Создать. Далее в меню Создать выбрать пункт Лист Microsoft Excel.
Будет создан файл Книга 1.xslx, состоящий из одного листа.
В предыдущих версиях Excel пункт меню Лист Microsoft Excel мог называться Книга Microsoft Excel или Файл Microsoft Excel. Создавался файл из трех листов.
- Способ 2. Щелкнуть по ярлыку (иконке) Excel
Если Excel не запущен, он запустится и будет предложено создать файл на основе одного из шаблонов из списка или открыть один из ранее открывавшихся файлов. Надо выбрать: Создать – Пустая книга.
Если Excel уже запущен (есть открытые файлы), будет создан и открыт новый документ с именем Книга 1.xlsx.
- Способ 3. Если вы уже работаете с другой книгой Excel: Выбрать вкладку Файл, далее: Создать – Пустая книга.
- Способ 4. Многие программы могут сохранять данные в формате MS Excel.
Как сохранить файл Excel
- Нажать Ctrl+S. Файл будет сохранен под своим именем.
- Нажать F12. Будет показан диалог сохранения файла. Можно изменить имя и директорию.
Посмотрите Excel таблицы
Фин.-эконом. расчетов
Инвестиции, Фин.анализ, Себестоимость,
Оценка бизнеса, Рентабельность продаж,
Платежный календарь
По теме страницы
Карта сайта — Подробное оглавление сайта.
Создать новый файл Excel с помощью VBA в Word Doc
Задавать вопрос
спросил
Изменено
1 год, 8 месяцев назад
Просмотрено
506 раз
Я пытаюсь создать новую книгу Excel, в которую буду вводить данные из сгенерированного мной массива.
Я продолжаю получать эту ошибку «Ошибка времени выполнения «424»: требуется объект»
Я использую код, который нашел в Интернете по этой ссылке.
Задать NewBook = app.Workbooks.Add С NewBook .Title = "Номера кабелей" .Subject = "Документация" 'parentFld — это путь к файлу, в котором используется предыдущий документ .SaveAs FileName:=parentFld & "CableNumbers.xlsx" Конец с
Рабочая книга даже не создается. Как я могу создать новую книгу, если мой макрос находится в текстовом документе?
Вот еще немного моего кода для справки:
Функция SelectFile() С Application.FileDialog(msoFileDialogFilePicker) ' показать диалоговое окно выбора файлов Если .Показать <> 0 Тогда SelectFile = .ВыбранныеЭлементы(1) Конец, если Конец с Конечная функция Функция PrintValue (PrintRow As Long, PrintCol As Long, ArrayName As ArrayList, ArrayIndex As Long) 'Наверное, не работает. Я хочу напечатать значение из массива в первый столбец электронной таблицы app. ActiveSheet.Cells(PrintRow, PrintCol) = ArrayName(ArrayIndex) Конечная функция Sub getFirstColumn() ' Получает первый столбец всех таблиц в заданном файле 'Объявить переменные Dim wbName как строка Dim TableCount, tableNum As Integer 'Это количество таблиц в документе минус 1, так как цикл начинается с 0' Dim dataCell как вариант Dim printRowCounter, indexCounter As Long Dim docO как документ Затемнить приложение как объект Dim fileObj, fldObj как новый FileSystemObject Установить fileObj = CreateObject("Scripting.FileSystemObject") Установите fldObj = CreateObject("Scripting.FileSystemObject") Установить приложение = СоздатьОбъект("Excel.Приложение") printRowCounter = 1 индексСчетчик = 0 'Выберите файл, из которого нужно получить данные. Это документ MS Word MsgBox "Выберите файл рабочей книги. В этом файле должна быть таблица." wbPath = ВыбратьФайл() wbName = CStr(fileObj.GetFileName(wbPath)) Документы(wbName).Активировать parentFld = fldObj.GetParentFolderName(wbPath) TableCount = ActiveDocument. Tables.Count Dim firstColArray As ArrayList Установить firstColArray = новый ArrayList Для tableNum = 1 To TableCount Количество строк = ActiveDocument.Tables(tableNum).Range.Rows.Count Для rowNum = 1 для RowCount ActiveDocument.Tables(tableNum).Cell(Row:=rowNum, Column:=1). Выберите «Для тестирования cellContent = ActiveDocument.Tables(tableNum).Cell(Row:=rowNum, Column:=1) Если ячейкаКонтент = "" Тогда Перейти Пропустить Еще dataCell = ActiveDocument.Tables(tableNum).Cell(Row:=rowNum, Column:=1) firstColArray.Добавить ячейку данных Конец, если Пропускать: Следующая строкаNum Следующая таблицаNum MsgBox "Все данные собраны." & vbNewLine & "Создание файла Excel..." 'Создание книги excel и ввод данных Установите NewBook = app.Workbooks.Add С NewBook .Title = "Числа" .Subject = "Документация" .SaveAs.Close FileName:=parentFld & "\Numbers.xlsx" Конец с app.Workbooks("Numbers.xlsx").Активировать Для каждой вещи в firstColArray app. ActiveSheet.Cells(printRowCounter, 1) = firstColArray(indexCounter) printRowCounter = printRowCounter + 1 indexCounter = indexCounter + 1 Следующая вещь Конец сабвуфера
- Excel
- vba
- ms-слово
13
Функция FileExists(FName As String) As Boolean ' Возвращает True, если файл FName существует, иначе False Дим фс Установите fs = CreateObject("Scripting.FileSystemObject") FileExists = fs.FileExists(FName) Установить фс = ничего Конечная функция Установить oxlApp = CreateObject("Excel.Приложение") excelStatus = FileExists (CStr (newExcelPath)) If excelStatus = True Then 'Если файл существует, добавить к нему excelStatus = "добавить" ElseIf excelStatus = False Then 'Если файл не существует, создайте новый файл excelStatus = "новый" Установите NewBook = oxlApp.Workbooks.Add С NewBook .Title = "Номера кабелей" .Subject = "Документация" . SaveAs имя_файла:=newExcelPath .Закрывать Конец с Конец, если Установите oxlWbk = oxlApp.Workbooks.Open(fileName:=newExcelPath) 'Открыть If excelStatus = "new" Then 'Если excel новый, выберите первый лист 'oxlWbk.ActiveWorkbook.Sheets(1).Select ElseIf excelStatus = "append" Then 'Если Excel старый, добавьте лист в конец и выберите его oxlApp.ActiveWorkbook.Sheets.Добавить после:=oxlWbk.Sheets(oxlWbk.Sheets.Count) oxlApp.ActiveWorkbook.Sheets(oxlWbk.Sheets.Count).Выбрать Конец, если
Зарегистрируйтесь или войдите в систему
Зарегистрируйтесь с помощью Google
Зарегистрироваться через Facebook
Зарегистрируйтесь, используя электронную почту и пароль
Опубликовать как гость
Электронная почта
Требуется, но никогда не отображается
Опубликовать как гость
Электронная почта
Требуется, но не отображается
Нажимая «Опубликовать свой ответ», вы соглашаетесь с нашими условиями обслуживания и подтверждаете, что прочитали и поняли нашу политику конфиденциальности и кодекс поведения.
excel — VBA Создайте новую книгу одним нажатием кнопки
Задавать вопрос
спросил
Изменено
5 лет, 6 месяцев назад
Просмотрено
43к раз
Я пытаюсь создать макрос, который создает новую книгу при нажатии кнопки в уже существующей книге. Я хотел бы сохранить вновь созданную книгу в той же папке, что и существующая книга, и дать ей новое имя? Может ли кто-нибудь помочь мне, пожалуйста?
Заранее большое спасибо!
Это код, который у меня есть до сих пор, но он не работает так, как я хочу (объект не найден и не сохраняется в той же папке):
Sub CreateNewWorkBook() 'Добавление новой книги Книги. Добавить 'Сохранение книги Имя файла ActiveWorkbook.SaveAs:=thisWb.Path & "\Test.xls" ActiveWorkbook.Close savechanges:=False Конец сабвуфера
- Excel
- ВБА
0
Попробуйте ввести следующий код:
https://msdn.microsoft.com/en-us/library/office/aa221273(v=office.11).aspx
Подпрограмма AddNew() Установить NewBook = Workbooks.Добавить С NewBook .Title = "Все продажи" 'Вы можете изменить это значение. .Subject = "Продажи" 'Вы можете изменить это значение. .SaveAs Имя файла:="Allsales.xls" Конец с Конец сабвуфера
Чтобы получить путь к файлу уже есть вопрос об этом:
Как получить путь к текущему рабочему листу в VBA?
0
Зарегистрируйтесь или войдите в систему
Зарегистрируйтесь с помощью Google
Зарегистрироваться через Facebook
Зарегистрируйтесь, используя электронную почту и пароль
Опубликовать как гость
Электронная почта
Требуется, но никогда не отображается
Опубликовать как гость
Электронная почта
Требуется, но не отображается
Нажимая «Опубликовать свой ответ», вы соглашаетесь с нашими условиями обслуживания и подтверждаете, что прочитали и поняли нашу политику конфиденциальности и кодекс поведения.