AutoMacro has been used by employees of these organizations. These organizations do not endorse, approve, sponsor, or otherwise have any affiliation with this website, Spreadsheet Boot Camp LLC, or ToolFive Software LLC.
About the Add-in
Our free VBA add-in installs directly into the VBA Editor (see above).
It contains 150 ready-to-use VBA Macro code examples for Excel. Simply click your desired code example and it will insert directly into your module:
Download
Click the download button to download our free VBA add-in for Excel!
Important! Read the Walkthrough below. It contains important information.
Walkthrough
The macro code examples add-in was designed entirely with VBA. This can be convenient because you don’t need to install anything, but VBA has limitations. As a result of these limitations, the add-in will stop functioning periodically (note: this happens when VBA «loses focus», often as a result of code errors).
To help, we built in a «reset» button:
To activate the reset, go to Excel and click the AutomateExcel.com Ribbon > Restore VBA Add-in.
If you find the add-in useful, you’ll love our premium VBA add-in (more information below). The premium add-in is not built with VBA and doesn’t require any resets. It has many more (better organized) code fragments, VBA code generators, the ability to save your own code, and much more….
Installation
1. Download the file above
2. Follow these directions to install an Excel Add-in.
3. If you encounter an error «Trust access to the VBA project object model is disabled» then you must update the following settings
VBA Add-in FAQs
How to download VBA For Excel?
All versions of Excel already come with VBA installed. Use shortcut ALT + F11 to open the VBA Editor.
How to install Excel Add-ins?
Make sure the Developer Ribbon is installed. Then go to Developer > Excel Add-ins > Browse to select and install your add-in.
What is the VBA Code Examples Add-in?
The VBA Code examples add-in is a free add-in for Excel / VBA that comes with 150+ ready-to-use VBA code examples & macros.
AutoMacro — The Ultimate VBA Add-in
AutoMacro is an add-in that installs directly into the Visual Basic Editor:
The add-in comes loaded with code generators, hundreds of macro code examples, the ability to create your own code library, and other time-saving tools.
Join the Hundreds of Professionals Who Use AutoMacro
«I use it almost every day. A great tool for getting things done, but also a great tool for learning how to do things! This is one purchase this year I have no regrets about.»
Galen — USA
AutoMacro Features
Code Generators
Code Generators build code from scratch via visual interfaces!
Code Library
300 Ready-to-use code examples & VBA macros.
Save your own frequently used code and share with team members.
Coding Tools
VBA Coding tools to improve the out of date Visual Basic Editor.
Speed up your workflow with tools to navigate, debug, format and more.
VBA Tutorial
Our premium VBA add-in contains a free VBA tutorial.
Just download AutoMacro and you’ll have access to the tutorial.
Beginner
1 User — 1 PC
- Interactive VBA Tutorial
- 100+ ready-to-use code examples
- Procedure, Loops, & Copy Paste Builders
- All other code generators
- Coding tools
- Create your own code library
- Transfer Activations to other PCs
- Access to new features & updates
One-time fee
Click for Alternative Payment Options
Upgrade Anytime!
Developer
1 User — 3 PCs
- Interactive VBA Tutorial
- Hundreds of ready-to-use code examples
- Procedure, Loops, & Copy Paste Builders
- All other code generators
- Coding tools
- Create your own code library
- Transfer Activations to other PCs
- Access to new features & updates
One-time fee
Click for Alternative Payment Options
Upgrade Anytime!
Developer+
1 User — 3 Transferable PCs & Updates
- Interactive VBA Tutorial
- Hundreds of ready-to-use code examples
- Procedure, Loops, & Copy Paste Builders
- All other code generators
- Coding tools
- Create your own code library
- Transfer activations to other PCs
- Access to new features & updates
One-time fee + $20 Annual
Click for Alternative Payment Options
Customer Reviews
FAQ and Other Information
What is your refund policy?
We have a 30-day, no-questions-asked, 100% money-back guarantee. If you’re unsatisfied for any reason, let us know and we will refund your order!
Can I try AutoMacro before I buy?
Can I install AutoMacro on my Work Computer?
Yes! AutoMacro works in many corporate environments. It was designed to be as unobtrusive as possible and should install without the need for «admin privileges».
Will AutoMacro work on my system?
AutoMacro is compatible with all versions of Microsoft Office for PCs.
32-bit or 64-bit
Office 2003, 2007, 2010, 2013, 2016, 2019, Office 365, etc.
All Versions of Windows
Surface Pro
AutoMacro is not compatible with Mac operating systems. However, some Mac users running Windows OS are able to use AutoMacro.
If you have doubts, please try the download link above to check.
AutoMacro is not compatible with Citrix environments.
Can I deduct this purchase on my taxes?
See this page from the IRS on Employee Business Expenses.
Can I use on more than one computer?
The Beginner version entitles you to a single-use license code valid for 1 computer. The Developer version is valid for 3 computers. The Developer+ allows you to transfer activations between PCs, so that AutoMacro can be activated on any 3 PCs at one time.
Does AutoMacro work with PowerPoint, Word, or Access?
Yes! AutoMacro functions in any program with the Visual Basic Editor.
Specific code examples were developed for Excel, Access, Outlook, Word, and PowerPoint.
Visit AutoMacro’s FAQ Page
Join the Hundreds of Professionals Who Use AutoMacro
«Great product, haven’t stopped using it since I purchased it. It doesn’t just write your code, it teaches as you go!»
Tony D — United Kingdom
Steve Rynearson:
Creator of AutoMacro
Over the years, I’ve spent countless hours searching online for example code and adapting that code to my needs.
I often found myself clicking the same links and copying the same code. I thought there has to be a better way!
AutoMacro is the ultimate VBA Code Helper! It eliminates much of the need to search online for code. Instead simply use the menus to select pre-built code or use the builders to generate code for your exact needs.
Additionally, the coding tools will save you time and help you develop more professional looking code.
For anyone coding VBA, AutoMacro is a life-saver. You’ll code much faster, develop more professional code, and learn VBA much faster (if you’re not already an expert).
An Excel Add-In is a file (usually with an .xla or .xll extension) that Excel can load when it starts up. The file contains code (VBA in the case of an .xla Add-In) that adds additional functionality to Excel, usually in the form of new functions.
Add-Ins provide an excellent way of increasing the power of Excel and they are the ideal vehicle for distributing your custom functions. Excel is shipped with a variety of Add-Ins ready for you to load and start using, and many third-party Add-Ins are available.
Setup
Open VBA Editor
Step 1. Open any Excel file
Step 2. With your new template open in Excel, on the Developer
tab, click Visual Basic
- Hot key —
Alt
+F11
- If you cannot find your
Developer
tab, follow the instructions at this page.
Step 3. Now you can work on your VBA code
- For
Sub
asWorkbook_Open()
,Workbook_BeforeClose(Cancel As Boolean)
, please add your code toThisWorkbook
. - For other
Sub
orFunction
, you can either write inThisWorkbook
or create a module to write in.
Save your add-in
Save your workbook as Microsoft Excel Add-in (*.xla
, *.xlam
) to C:WINDOWSApplication DataMicrosoftAddIns
.
Then this add-in would be automatically add to your add-in group.
Create Custom Buttons
Create your custom buttons whenever a workbook is opened.
Private Sub Workbook_Open()
Application.DisplayAlerts = False
Dim CmdBar As CommandBar
Dim CmdBarCtl As CommandBarControl
Dim cmdBarSubCtl As CommandBarControl
On Error GoTo Err_Handler
Set CmdBar = Application.CommandBars("Worksheet Menu Bar")
CmdBar.Visible = True
CmdBar.Protection = msoBarNoMove
Set CmdBarCtl = CmdBar.Controls.Add(Type:=msoControlButton)
With CmdBarCtl
.BeginGroup = True
.Caption = "Single Button"
.Style = msoButtonCaption
.OnAction = "NameOfASub"
End With
Application.DisplayAlerts = True
Exit Sub
Set CmdBarCtl = CmdBar.Controls.Add(Type:=msoControlPopup)
CmdBarCtl.Caption = "Drop Down Button"
Set cmdBarSubCtl = CmdBarCtl.Controls.Add(Type:=msoControlButton)
With cmdBarSubCtl
.Style = msoButtonIconAndCaption
.Caption = "option 1"
.FaceId = 317
.OnAction = "NameOfASub"
.Parameter = 1
.BeginGroup = True
End With
Set cmdBarSubCtl = CmdBarCtl.Controls.Add(Type:=msoControlButton)
With cmdBarSubCtl
.Style = msoButtonIconAndCaption
.Caption = "option 2"
.FaceId = 318
.OnAction = "NameOfASub"
.Parameter = 2
.BeginGroup = True
End With
Set cmdBarSubCtl = CmdBarCtl.Controls.Add(Type:=msoControlButton)
With cmdBarSubCtl
.Style = msoButtonIconAndCaption
.Caption = "option 3"
.FaceId = 224
.OnAction = "NameOfASub"
.Parameter = 3
.BeginGroup = True
End With
Err_Handler:
MsgBox "Error " & Err.Number & vbCr & Err.Description
Application.DisplayAlerts = True
Exit Sub
End Sub
Note that you can refer to this link to choose the icon you want to show in the button.
Define Actions
.OnAction = "NameOfASub"
means that a subfunction named NameOfASub
is being called as an action of a click on the certain button. That is, you need to self-defined these actions.
Public Sub NameOfASub()
MsgBox("Hello World!")
End Sub
Delete Custom Buttons Before Closed
Make sure you delete the button on closing Excel, otherwise an additional one will be added everytime you open a workbook.
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim CmdBar As CommandBar
Set CmdBar = Application.CommandBars("Worksheet Menu Bar")
CmdBar.Controls("Single Button").Delete
CmdBar.Controls("Drop Down Button").Delete
End Sub
VBA Models
For detail information, please refer to Excel VBA official Webpage
Variable Declaration
Declare a variable
Dim cmd
Declare a variable with data type
Dim cmd As String
Declare a global variable
Public path As String
Assign value to a variable
Remember to add Set
at the beginning.
Set path = "C:my_folder"
Range
Represents a cell, a row, a column, a selection of cells containing one or more contiguous blocks of cells, or a 3-D range.
Get a specific cell
Dim cell As Range
cell = ActiveSheet.Cells(1, 1)
Get a Range object that represents the used range on the specified worksheet. Read-only.
Dim range As Range
range = ActiveSheet.UsedRange
'OR
range = ActiveSheet.Range("A1").CurrentRegion
Set value/formula of a Range object
ActiveSheet.Cells(1, 1).Value = 24
ActiveSheet.Cells(2, 1).Formula = "=Sum(B1:B5)"
Get the number of rows used
Dim uTotalRows As Integer
uTotalRows = ActiveSheet.UsedRange.Rows.Count
MsgBox (uTotalRows)
Define/Call a Function
Define a function.
[Modifiers] Function FunctionName [(ParameterList)] As ReturnType
….Statements….
End Function
Function hypotenuse(ByVal side1 As Single, ByVal side2 As Single) As Single
Return Math.Sqrt((side1 ^ 2) + (side2 ^ 2))
End Function
Call your defined function.
Dim testLength, testHypotenuse As Single
testHypotenuse = hypotenuse(testLength, 10.7)
String Concatenation
To concat string str1
with string str2
, you can use the operator &
.
Dim str1 As String
Dim str2 As String
...
Dim concat_str As String
concat_str = str1 & str2
Save the current workbook
ActiveWorkbook.Save
Get path and name of current workbook/sheet
Get path of current workbook
Dim path As String
path = Application.ActiveWorkbook.path
Get full path of current workbook (include workbook name)
Dim fullpath As String
fullpath = Application.ActiveWorkbook.FullName
Get name of current workbook
Dim bookname As String
bookname = ActiveWorkbook.Name
Get name of current sheet
Dim sheetname As String
sheetname = ActiveSheet.Name
Run an executable with parameters
Method 1. Use Shell
cmd = "myApp.exe" & " " & "myParameter"
retval = Shell(cmd, vbNormalFocus)
Method 2. Use WScript
(This method allows you to wait until the execution completes and returns.)
Set wsh = VBA.CreateObject("WScript.Shell")
Dim waitOnReturn As Boolean: waitOnReturn = True
Dim windowStyle As Integer: windowStyle = 1
cmd = "myApp.exe" & " " & "myParameter"
wsh.Run cmd, windowStyle, waitOnReturn
Open up an existing workbook
Open an existing workbook (pop-up)
Dim objXLApp, objXLWb
Set objXLApp = CreateObject("Excel.Application")
objXLApp.Visible = True
Set objXLWb = objXLApp.Workbooks.Open(report)
objXLWb.Sheets(sheetname).Activate
Open an existing workbook (invisible) in read-only mode
Dim wb As Workbook
Set wb = Workbooks.Open(Path_to_WB, True, True)
Flow Control
If Else
If condition [ Then ]
[ statements ]
[ ElseIf elseifcondition [ Then ]
[ elseifstatements ] ]
[ Else
[ elsestatements ] ]
End If
For more details, please refer to VBA condition syntax
Loop
For Loop
simple example:
For i = 1 To 10
Total = Total + iArray(i)
Next i
For Loop
example with Step
:
For d = 0 To 10 Step 0.1
dTotal = dTotal + d
Next d
To break the for loop, use Exit For
:
For i = 1 To 100
If dValues(i) = dVal Then
indexVal = i
Exit For
End If
Next i
For Each
simple example:
For Each wSheet in Worksheets
MsgBox "Found Worksheet: " & wSheet.Name
Next wSheet
For more information, please refer to Excel VBA — For Loop, For Each, and Do Loop and Excel VBA Tutorial Part 6 — VBA Loops.
References
- Build an Excel Add-In
- 如何:在功能區顯示開發人員索引標籤
- Creating VBA Add-ins to Extend and Automate Microsoft Office Documents
- Excel VBA 參考
- face ID Table
- VBA condition syntax
- how to create an Excel VBA Userform
- Excel VBA Tutorial Part 6 — VBA Loops
- Excel VBA — For Loop, For Each, and Do Loop
Даже если вы не умеете программировать, то существует множество мест (книги, сайты, форумы), где можно найти готовый код макросов на VBA для огромного количества типовых задач в Excel. По моему опыту, большинство пользователей рано или поздно собирают свою личную коллекцию макросов для автоматизации рутинных процессов, будь то перевод формул в значения, вывод суммы прописью или суммирования ячеек по цвету. И тут встает проблема — код макросов на Visual Basic нужно где-то хранить, чтобы потом использовать в работе.
Самый простой вариант — сохранять код макросов прямо в рабочем файле, зайдя в редактор Visual Basic с помощью сочетания клавиш Alt+F11 и добавив новый пустой модуль через меню Insert — Module:
При таком способе возникает, однако, несколько неудобств:
- Если рабочих файлов много, а макрос нужен везде, как например макрос преобразования формул в значения, то и копировать код придется в каждую книгу.
- Нужно не забыть сохранить файл в формате с поддержкой макросов (xlsm) или в формате двоичной книги (xlsb).
- При открытии такого файла защита от макросов будет каждый раз выдавать предупреждение, которое нужно подтвердить (ну, или отключить защиту полностью, что может быть не всегда желательно).
Более изящным решением будет создание своей собственной надстройки (Excel Add-in) — отдельного файла особого формата (xlam), содержащего все ваши «любимые» макросы. Плюсы такого подхода:
- Достаточно будет один раз подключить надстройку в Excel — и можно будет использовать её VBA процедуры и функции в любом файле на этом компьютере. Пересохранять ваши рабочие файлы в xlsm- и xlsb-форматы, таким образом, не потребуется, т.к. исходный код будет храниться не в них, а в файле надстройки.
- Защита от макросов вас тоже беспокоить уже не будет, т.к. надстройки по определению входят в доверенные источники.
- Можно сделать отдельную вкладку на ленте Excel с красивыми кнопками для запуска макросов надстройки.
- Надстройка — это отдельный файл. Его легко переносить с компьютера на компьютер, делиться им с коллегами или даже продавать
Давайте рассмотрим весь процесс создания своей собственной надстройки для Microsoft Excel по шагам.
Шаг 1. Создаем файл надстройки
Открываем Microsoft Excel с пустой книгой и сохраняем ее под любым подходящим именем (например MyExcelAddin) в формате надстройки с помощью команды Файл — Сохранить как или клавиши F12, указав тип файла Надстройка Excel (Excel Add-in):
Обратите внимание, что стандартно Excel хранит надстройки в папке C:UsersВаше_имяAppDataRoamingMicrosoftAddIns, но, в приниципе, можно указать любую другую удобную вам папку.
Шаг 2. Подключаем созданную надстройку
Теперь созданную нами на прошлом шаге надстройку MyExcelAddin надо подключить к Excel. Для этого идем в меню Файл — Параметры — Надстройки (File — Options — Add-Ins), жмем на кнопку Перейти (Go) в нижней части окна. В открывшемся окне жмем кнопку Обзор (Browse) и указываем положение нашего файла надстройки.
Если вы все сделали правильно, то наша MyExcelAddin должна появиться в списке доступных надстроек:
Шаг 3. Добавляем в надстройку макросы
Наша надстройка подключена к Excel и успешно работает, но в ней нет пока ни одного макроса. Давайте её наполним. Для этого нужно открыть редактор Visual Basic сочетанием клавиш Alt+F11 или кнопкой Visual Basic на вкладке Разработчик (Developer). Если вкладки Разработчик не видно, то её можно отобразить через Файл — Параметры — Настройка ленты (File — Options — Customize Ribbon).
В левом верхнем углу редактора должно быть окно Project (если его не видно, то включите его через меню View — Project Explorer):
В этом окне отображаются все открытые книги и запущенные надстройки Microsoft Excel, в том числе и наша VBAProject (MyExcelAddin.xlam) Выделите её мышью и добавьте в неё новый модуль через меню Insert — Module. В этом модуле мы и будем хранить VBA-код наших макросов надстройки.
Код можно либо набрать «с нуля» (если вы умеете программировать), либо скопировать откуда-нибудь уже готовый (что гораздо проще). Давайте, для пробы, введем в добавленный пустой модуль код простого, но полезного макроса:
После набора кода не забудьте нажать на кнопку сохранения (дискетку) в левом верхнем углу.
Наш макрос FormulasToValues, как легко сообразить, преобразует формулы в значения в выделенном предварительно диапазоне. Иногда такие макросы называют еще процедурами. Чтобы его запустить, нужно выделить ячейки с формулами и открыть специальное диалоговое окно Макросы с вкладки Разработчик (Developer — Macros) или сочетанием клавиш Alt+F8. Обычно в этом окне отображаются доступные макросы из всех открытых книг, но макросы надстроек здесь не видны. Несмотря на это, мы можем ввести имя нашей процедуры в поле Имя макроса (Macro name), а затем нажать кнопку Выполнить (Run) — и наш макрос заработает:
Здесь же можно назначить сочетание клавиш для быстрого запуска макроса — за это отвечает кнопка Параметры (Options) в предыдущем окне Макрос:
При назначении клавиш имейте ввиду, что здесь учитывается регистр и раскладка клавиатуры. Поэтому, если вы назначите сочетание, например, Ctrl+Й, то, по факту, вам придется в будущем следить за тем, чтобы у вас была включена именно русская раскладка и жать дополнительно Shift, чтобы получить заглавную букву.
Для удобства можно добавить и кнопку для нашего макроса на панель быстрого доступа в левом верхнем углу окна. Для этого выберите Файл — Параметры — Панель быстрого доступа (File — Options — Customize Quick Access Toolbar), а затем в выпадающем списке в верхней части окна опцию Макросы. После этого наш макрос FormulasToValues можно поместить на панель кнопкой Добавить (Add) и выбрать для него значок кнопкой Изменить (Edit):
Шаг 4. Добавляем в надстройку функции
Кроме макросов-процедур, существуют еще и макросы-функции или как их еще называют UDF (User Defined Function = пользовательская функция). Давайте создадим в нашей надстройке отдельный модуль (команда меню Insert — Module) и вставим туда код такой функции:
Несложно сообразить, что эта функция нужна для извлечения НДС из суммы включающей НДС. Не бином Ньютона, конечно, но нам для примера сгодится, чтобы показать основные принципы.
Заметьте, что синтаксис функции отличается от процедуры:
- используется конструкция Function …. End Function вместо Sub … End Sub
- после названия функции в скобках указываются её аргументы
- в теле функции производятся необходимые вычисления и затем результат присваивается переменной с названием функции
Также обратите внимание, что эту функцию не нужно, да и невозможно запустить как предыдущий макрос-процедуру через диалоговое окно Макросы и кнопку Выполнить. Такую макрофункцию нужно использовать как стандартную функцию листа (СУММ, ЕСЛИ, ВПР…), т.е. просто ввести в любую ячейку, указав в качестве аргумента значение суммы с НДС:
… или ввести через стандартное диалоговое окно вставки функции (кнопка fx в строке формул), выбрав категорию Определенные пользователем (User Defined):
Единственный неприятный момент здесь — это отсутствие привычного описания функции в нижней части окна. Чтобы его добавить придется проделать следующие действия:
- Откройте редактор Visual Basic сочетанием клавиш Alt+F11
- Выделите надстройку в панели Project и нажмите клавишу F2, чтобы открыть окно Object Browser
- Выберите в верхней части окна в выпадающем списке свой проект надстройки
- Щелкните по появившейся функции правой кнопкой мыши и выберите команду Properties.
- Введите описание функции в окно Description
- Сохраните файл надстройки и перезапустите Excel.
После перезапуска у функции должно отобразиться описание, которое мы ввели:
Шаг 5. Создаем вкладку надстройки в интерфейсе
Финальным, хоть и не обязательным, но приятным штрихом будет создание отдельной вкладки с кнопкой запуска нашего макроса, которая будет появляться в интерфейсе Excel после подключения нашей надстройки.
Информация об отображаемых вкладках по умолчанию содержится внутри книги и должна быть оформлена в виде специального XML-кода. Проще всего писать и редактировать такой код с помощью специальных программ — XML-редакторов. Одна из самых удобных (и бесплатных) — это программа Максима Новикова Ribbon XML Editor.
Алгоритм работы с ней следующий:
- Закройте все окна Excel, чтобы не было конфликта файлов, когда мы будем редактировать XML-код надстройки.
- Запустите программу Ribbon XML Editor и откройте в ней наш файл MyExcelAddin.xlam
- При помощи кнопки tabs в левом верхнем углу добавьте заготовку кода для новой вкладки:
- В пустые кавычки нужно вписать id нашей вкладки и группы (любые уникальные идентификаторы), а в label — названия нашей вкладки и группы кнопок на ней:
- При помощи кнопки button на панели слева добавляем заготовку кода для кнопки и дописываем к ней теги:
— label — это текст на кнопке
— imageMso — это условное название изображения на кнопке. Я использовал иконку с красной кнопкой, которая имеет название AnimationCustomAddExitDialog. Названия всех доступных кнопок (а их несколько сотен!) можно найти на большом количестве сайтов в интернете, если искать по ключевым словам «imageMso». Для начала можно сходить сюда.
— onAction — это имя процедуры обратного вызова — специального короткого макроса, который будет запускать наш основной макрос FormulasToValues. Назвать эту процедуру можно как угодно. Мы добавим её чуть позже. - Проверить правильность всего сделанного можно с помощью кнопки с зеленой галочкой сверху на панели инструментов. Там же рядом нажмите на кнопку с дискетой для сохранения всех изменений.
- Закрываем Ribbon XML Editor
- Открываем Excel, заходим в редактор Visual Basic и добавляем к нашему макросу процедуру обратного вызова KillFormulas, чтобы она запускала наш основной макрос замены формул на значения.
- Сохраняем внесенные изменения и, вернувшись в Excel проверяем результат:
Вот и всё — надстройка готова к использованию. Наполните её своими процедурами и функциями, добавьте красивые кнопки — и использовать макросы в работе станет намного проще.
Ссылки по теме
- Что такое макросы, как их использовать в работе, где взять код макросов на Visual Basic.
- Как сделать заставку при открытии книги в Excel
- Что такое Личная Книга Макросов и как её использовать
When you create Excel Addins and distribute them to a lot of users, normally the users must copy the Add-in files into the “Addins” folder from the path: “C:Usersuser_nameAppDataRoamingMicrosoftAddIns” and after that to activate the Addin from Excel:
Because these steps take time, the users must follow them everytime when you send a new version of the Addin and sometimes they forget what to do, I created a VBA code which installs and activates automatically a specified Addin file.
How it works ?
- Create a new folder with the INSTALL.xlsm file (which can be downloaded at the end of this post) and your Addin.xlam file. (the files must be in the same folder !):
- Open the INSTALL.xlsm file and in the VBA Developer- Module1, install_add_in() procedure change the fileName variable assignment with the name of your addin file:
Sub install_add_in() Dim mypath As String, strfile As String, fileName As String mypath = ActiveWorkbook.Path fileName = "General.Tools" 'replace General.Tools with the name of your Add-in !!! strfile = "" & fileName & ".xlam" file_to_copy = mypath & strfile folder_to_copy = Environ("Appdata") & "MicrosoftAddIns" copied_file = folder_to_copy & strfile 'Check if add-in is installed If Len(Dir(copied_file)) = 0 Then 'if add-in does not exist then copy the file FileCopy file_to_copy, copied_file AddIns(fileName).Installed = True MsgBox "Add-in installed" Else 'if add-in already exists then the user will decide if will replace it or not x = MsgBox("Add-in allready exists ! Replace ?", vbYesNo) If x = vbNo Then Exit Sub ElseIf x = vbYes Then 'deactivate the add-in if it is activated If AddIns(fileName).Installed = True Then AddIns(fileName).Installed = False End If 'delete the old file Kill copied_file 'copy the new file FileCopy file_to_copy, copied_file AddIns(fileName).Installed = True MsgBox "New Add-in Installed !" End If End If End Sub
- Save the file, create a *.zip/*.rar archive with the folder and send it to all users.
- The users will now Install and activate automatically the Addin by opening the INSTALL.xlsm file and just pressing the “INSTALL ADDIN” button.
- If an old version of the Addin already exists in the Addins folder, the user will be asked to confirm if he wants to replace it with the new file.
–> Using this code the users will not have to remember where to copy the files and how to activate the Addins.
Download the INSTALL.xlsm file:
INSTALL
Надстройки Excel – это прекрасная альтернатива создания макросов доступных для использования любых других файлов рабочих книг. Если Вам понравиться создавать свои надстройки и вы войдете во вкус, то это полезное и интересное занятие может еще для вас приносить неплохой доход. Надстройки можно публиковать и продавать в магазине Office Store. В данном примере мы покажем, как создать свою достройку с макросом, написанным на коде самого простого и весьма востребованного языка программирования VBA (Visual Basic for Applications).
Как сделать и установить надстройку в Excel
Чтобы создать, добавить и включить свою надстройку с макросом, следует:
- Создайте новую рабочую книгу: «ФАЙЛ»-«Создать»-«Пустая книга». Или нажмите комбинацию горячих клавиш CTRL+N.
- Откройте редактор макросов: «РАЗРАБОТЧИК»-«Код»-«Visual Basic».
- Вставьте новый модуль выбрав инструмент: «Insert»-«Module».
- В окне модуля введите свой код макроса. Возьмем простейший пример макроса:
- Закройте окно редактора макросов и выберите инструмент: «ФАЙЛ»-«Сохранить как» (CTRL+S). В поле «Имя файла:» введите название для своей тестовой программы. А из выпадающего списка «Тип файла:» выберите значение «Надстройка Excel 97-2003» (*.xla). Автоматически откроеться папка для установки надстроек: C:Documents and SettingsUser_Name AppDataRoamingMicrosoftAddIns. И нажмите на кнопку «Сохранить».
- Перед тем как установить надстройку в 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 SettingsUser_Name AppDataRoamingMicrosoftAddIns.
Полезные советы по надстройкам
Внимание! В данном примере мы использовали формат рабочей книги для сохранения файла в формате «Надстройка 97-2003». Это позволяет использовать ее в разных версиях Excel. Например, файлы, сохраненные в формате *.xlam не может быть использована в версии 2007 и старше. Поэтому лучше воспользоваться старым форматом файлов надстройке *.xla.
Читайте также: скачать VBA код программы надстройки сумма прописью с копейками на русском, украинском и английском языке. Или перевод числа в текст средствами Excel.
Примечание. Если вы хотите защитить паролем доступ к своим исходным кодам макросов, тогда выберите инструмент в редакторе Visual Basic: «Tools»-«VBAProject Properties». На закладке «Protection» в поле ввода «Password:» введите пароль для защиты доступу к макросам проекта рабочей книги. В поле ввода «Confirm password:» введите пароль повторено и нажмите на кнопку ОК.