Excel vba code add in

excel vba examples free download

companies

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:

vba add-in code examples

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:

vba excel download

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:

excel vba add ins download

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!

vba code builder

vba code library builder

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 code tools

vba interactive tutorial

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

Money back guaranteed
TrustSpot Verified

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

Money back guaranteed
TrustSpot Verified

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

Money back guaranteed
TrustSpot Verified

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 as Workbook_Open(), Workbook_BeforeClose(Cancel As Boolean), please add your code to ThisWorkbook.
  • For other Sub or Function, you can either write in ThisWorkbook 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):

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
  • после названия функции в скобках указываются её аргументы
  • в теле функции производятся необходимые вычисления и затем результат присваивается переменной с названием функции

Также обратите внимание, что эту функцию не нужно, да и невозможно запустить как предыдущий макрос-процедуру через диалоговое окно Макросы и кнопку Выполнить. Такую макрофункцию нужно использовать как стандартную функцию листа (СУММ, ЕСЛИ, ВПР…), т.е. просто ввести в любую ячейку, указав в качестве аргумента значение суммы с НДС:

Используем созданную UDF

… или ввести через стандартное диалоговое окно вставки функции (кнопка fx в строке формул), выбрав категорию Определенные пользователем (User Defined):

Выбираем пользовательскую функцию

Единственный неприятный момент здесь — это отсутствие привычного описания функции в нижней части окна. Чтобы его добавить придется проделать следующие действия:

  1. Откройте редактор Visual Basic сочетанием клавиш Alt+F11
  2. Выделите надстройку в панели Project и нажмите клавишу F2, чтобы открыть окно Object Browser
  3. Выберите в верхней части окна в выпадающем списке свой проект надстройки
  4. Щелкните по появившейся функции правой кнопкой мыши и выберите команду Properties.
  5. Введите описание функции в окно Description
  6. Сохраните файл надстройки и перезапустите Excel.

Добавляем свое описание для UDF

После перезапуска у функции должно отобразиться описание, которое мы ввели:

Описание функции

Шаг 5. Создаем вкладку надстройки в интерфейсе

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

Информация об отображаемых вкладках по умолчанию содержится внутри книги и должна быть оформлена в виде специального XML-кода. Проще всего писать и редактировать такой код с помощью специальных программ — XML-редакторов. Одна из самых удобных (и бесплатных) — это программа Максима Новикова Ribbon XML Editor.

Алгоритм работы с ней следующий:

  1. Закройте все окна Excel, чтобы не было конфликта файлов, когда мы будем редактировать XML-код надстройки.
  2. Запустите программу Ribbon XML Editor и откройте в ней наш файл MyExcelAddin.xlam
  3. При помощи кнопки tabs в левом верхнем углу добавьте заготовку кода для новой вкладки:

    Добавляем новую вкладку для надстройки

  4. В пустые кавычки нужно вписать id нашей вкладки и группы (любые уникальные идентификаторы), а в label — названия нашей вкладки и группы кнопок на ней:

    Добавляем id и названия

  5. При помощи кнопки button на панели слева добавляем заготовку кода для кнопки и дописываем к ней теги:

    Добавляем кнопку

    — label — это текст на кнопке
    — imageMso — это условное название изображения на кнопке. Я использовал иконку с красной кнопкой, которая имеет название AnimationCustomAddExitDialog. Названия всех доступных кнопок (а их несколько сотен!) можно найти на большом количестве сайтов в интернете, если искать по ключевым словам «imageMso». Для начала можно сходить сюда.
    onAction — это имя процедуры обратного вызова — специального короткого макроса, который будет запускать наш основной макрос FormulasToValues. Назвать эту процедуру можно как угодно. Мы добавим её чуть позже.

  6. Проверить правильность всего сделанного можно с помощью кнопки с зеленой галочкой сверху на панели инструментов. Там же рядом нажмите на кнопку с дискетой для сохранения всех изменений.
  7. Закрываем Ribbon XML Editor
  8. Открываем Excel, заходим в редактор Visual Basic и добавляем к нашему макросу процедуру обратного вызова KillFormulas, чтобы она запускала наш основной макрос замены формул на значения.

    Добавляем процедуру обратного вызова

  9. Сохраняем внесенные изменения и, вернувшись в 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:

Activate excel Add-in

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 !):

Create_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.

INSTALL add in

  • 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.

replace add in

–> 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

Чтобы создать, добавить и включить свою надстройку с макросом, следует:

  1. Создайте новую рабочую книгу: «ФАЙЛ»-«Создать»-«Пустая книга». Или нажмите комбинацию горячих клавиш CTRL+N.
  2. Создать файл XLA.

  3. Откройте редактор макросов: «РАЗРАБОТЧИК»-«Код»-«Visual Basic».
  4. Редактор Visual Basic.

  5. Вставьте новый модуль выбрав инструмент: «Insert»-«Module».
  6. Код макроса.

  7. В окне модуля введите свой код макроса. Возьмем простейший пример макроса:
  8. Sub MyMakros()
    Dim polzovatel As String
    Dim data_segodnya As Date
    polzovatel = Application.UserName
    data_segodnya = Now
    MsgBox "Макрос запустил пользователь: " & polzovatel & vbNewLine & data_segodnya
    End Sub

  9. Закройте окно редактора макросов и выберите инструмент: «ФАЙЛ»-«Сохранить как» (CTRL+S). В поле «Имя файла:» введите название для своей тестовой программы. А из выпадающего списка «Тип файла:» выберите значение «Надстройка Excel 97-2003» (*.xla). Автоматически откроеться папка для установки надстроек: C:Documents and SettingsUser_Name AppDataRoamingMicrosoftAddIns. И нажмите на кнопку «Сохранить».
  10. Сохранение совместимости.

  11. Перед тем как установить надстройку в Excel, закройте все открытые рабочие книги снова запустите программу Excel.
  12. Выберите инструмент: «ФАЙЛ»-«Параметры»-«Надстройки». Внизу из выпадающего списка «Управление:» укажите на опцию «Надстройки Excel» и нажмите на кнопку «Перейти».
  13. Параметры Excel.

  14. В появившемся диалоговом окне «Надстройки» нажмите на кнопку «Обзор», а после найдите и найдите свое название, на против него поставьте галочки и нажмите на кнопку «Ок». Если вы не находите названия нажмите на кнопку «Обзор», чтобы указать путь к вашему файлу с надстройкой.

Включить.

Надстройка 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:» введите пароль повторено и нажмите на кнопку ОК.

Понравилась статья? Поделить с друзьями:
  • Excel vba cell height
  • Excel vba close savechanges true
  • Excel vba cell end
  • Excel vba close excel workbook
  • Excel vba cell change events