Время на прочтение
7 мин
Количество просмотров 312K
Приветствую всех.
В этом посте я расскажу, что такое VBA и как с ним работать в Microsoft Excel 2007/2010 (для более старых версий изменяется лишь интерфейс — код, скорее всего, будет таким же) для автоматизации различной рутины.
VBA (Visual Basic for Applications) — это упрощенная версия Visual Basic, встроенная в множество продуктов линейки Microsoft Office. Она позволяет писать программы прямо в файле конкретного документа. Вам не требуется устанавливать различные IDE — всё, включая отладчик, уже есть в Excel.
Еще при помощи Visual Studio Tools for Office можно писать макросы на C# и также встраивать их. Спасибо, FireStorm.
Сразу скажу — писать на других языках (C++/Delphi/PHP) также возможно, но требуется научится читать, изменять и писать файлы офиса — встраивать в документы не получится. А интерфейсы Microsoft работают через COM. Чтобы вы поняли весь ужас, вот Hello World с использованием COM.
Поэтому, увы, будем учить Visual Basic.
Чуть-чуть подготовки и постановка задачи
Итак, поехали. Открываем Excel.
Для начала давайте добавим в Ribbon панель «Разработчик». В ней находятся кнопки, текстовые поля и пр. элементы для конструирования форм.
Появилась вкладка.
Теперь давайте подумаем, на каком примере мы будем изучать VBA. Недавно мне потребовалось красиво оформить прайс-лист, выглядевший, как таблица. Идём в гугл, набираем «прайс-лист» и качаем любой, который оформлен примерно так (не сочтите за рекламу, пожалуйста):
То есть требуется, чтобы было как минимум две группы, по которым можно объединить товары (в нашем случае это будут Тип и Производитель — в таком порядке). Для того, чтобы предложенный мною алгоритм работал корректно, отсортируйте товары так, чтобы товары из одной группы стояли подряд (сначала по Типу, потом по Производителю).
Результат, которого хотим добиться, выглядит примерно так:
Разумеется, если смотреть прайс только на компьютере, то можно добавить фильтры и будет гораздо удобнее искать нужный товар. Однако мы хотим научится кодить и задача вполне подходящая, не так ли?
Кодим
Для начала требуется создать кнопку, при нажатии на которую будет вызываться наша програма. Кнопки находятся в панели «Разработчик» и появляются по кнопке «Вставить». Вам нужен компонент формы «Кнопка». Нажали, поставили на любое место в листе. Далее, если не появилось окно назначения макроса, надо нажать правой кнопкой и выбрать пункт «Назначить макрос». Назовём его FormatPrice. Важно, чтобы перед именем макроса ничего не было — иначе он создастся в отдельном модуле, а не в пространстве имен книги. В этому случае вам будет недоступно быстрое обращение к выделенному листу. Нажимаем кнопку «Новый».
И вот мы в среде разработки VB. Также её можно вызвать из контекстного меню командой «Исходный текст»/«View code».
Перед вами окно с заглушкой процедуры. Можете его развернуть. Код должен выглядеть примерно так:
Sub FormatPrice()End Sub
Напишем Hello World:
Sub FormatPrice()
MsgBox "Hello World!"
End Sub
И запустим либо щелкнув по кнопке (предварительно сняв с неё выделение), либо клавишей F5 прямо из редактора.
Тут, пожалуй, следует отвлечься на небольшой ликбез по поводу синтаксиса VB. Кто его знает — может смело пропустить этот раздел до конца. Основное отличие Visual Basic от Pascal/C/Java в том, что команды разделяются не ;, а переносом строки или двоеточием (:), если очень хочется написать несколько команд в одну строку. Чтобы понять основные правила синтаксиса, приведу абстрактный код.
Примеры синтаксиса
' Процедура. Ничего не возвращает
' Перегрузка в VBA отсутствует
Sub foo(a As String, b As String)
' Exit Sub ' Это значит "выйти из процедуры"
MsgBox a + ";" + b
End Sub' Функция. Вовращает Integer
Function LengthSqr(x As Integer, y As Integer) As Integer
' Exit Function
LengthSqr = x * x + y * y
End FunctionSub FormatPrice()
Dim s1 As String, s2 As String
s1 = "str1"
s2 = "str2"
If s1 <> s2 Then
foo "123", "456" ' Скобки при вызове процедур запрещены
End IfDim res As sTRING ' Регистр в VB не важен. Впрочем, редактор Вас поправит
Dim i As Integer
' Цикл всегда состоит из нескольких строк
For i = 1 To 10
res = res + CStr(i) ' Конвертация чего угодно в String
If i = 5 Then Exit For
Next iDim x As Double
x = Val("1.234") ' Парсинг чисел
x = x + 10
MsgBox xOn Error Resume Next ' Обработка ошибок - игнорировать все ошибки
x = 5 / 0
MsgBox xOn Error GoTo Err ' При ошибке перейти к метке Err
x = 5 / 0
MsgBox "OK!"
GoTo ne
Err:
MsgBox
"Err!"
ne:
On Error GoTo 0 ' Отключаем обработку ошибок
' Циклы бывает, какие захотите
Do While True
Exit DoLoop 'While True
Do 'Until False
Exit Do
Loop Until False
' А вот при вызове функций, от которых хотим получить значение, скобки нужны.
' Val также умеет возвращать Integer
Select Case LengthSqr(Len("abc"), Val("4"))
Case 24
MsgBox "0"
Case 25
MsgBox "1"
Case 26
MsgBox "2"
End Select' Двухмерный массив.
' Можно также менять размеры командой ReDim (Preserve) - см. google
Dim arr(1 to 10, 5 to 6) As Integer
arr(1, 6) = 8Dim coll As New Collection
Dim coll2 As Collection
coll.Add "item", "key"
Set coll2 = coll ' Все присваивания объектов должны производится командой Set
MsgBox coll2("key")
Set coll2 = New Collection
MsgBox coll2.Count
End Sub
Грабли-1. При копировании кода из IDE (в английском Excel) есь текст конвертируется в 1252 Latin-1. Поэтому, если хотите сохранить русские комментарии — надо сохранить крокозябры как Latin-1, а потом открыть в 1251.
Грабли-2. Т.к. VB позволяет использовать необъявленные переменные, я всегда в начале кода (перед всеми процедурами) ставлю строчку Option Explicit. Эта директива запрещает интерпретатору заводить переменные самостоятельно.
Грабли-3. Глобальные переменные можно объявлять только до первой функции/процедуры. Локальные — в любом месте процедуры/функции.
Еще немного дополнительных функций, которые могут пригодится: InPos, Mid, Trim, LBound, UBound. Также ответы на все вопросы по поводу работы функций/их параметров можно получить в MSDN.
Надеюсь, что этого Вам хватит, чтобы не пугаться кода и самостоятельно написать какое-нибудь домашнее задание по информатике. По ходу поста я буду ненавязчиво знакомить Вас с новыми конструкциями.
Кодим много и под Excel
В этой части мы уже начнём кодить нечто, что умеет работать с нашими листами в Excel. Для начала создадим отдельный лист с именем result (лист с данными назовём data). Теперь, наверное, нужно этот лист очистить от того, что на нём есть. Также мы «выделим» лист с данными, чтобы каждый раз не писать длинное обращение к массиву с листами.
Sub FormatPrice()
Sheets("result").Cells.Clear
Sheets("data").Activate
End Sub
Работа с диапазонами ячеек
Вся работа в Excel VBA производится с диапазонами ячеек. Они создаются функцией Range и возвращают объект типа Range. У него есть всё необходимое для работы с данными и/или оформлением. Кстати сказать, свойство Cells листа — это тоже Range.
Примеры работы с Range
Sheets("result").Activate
Dim r As Range
Set r = Range("A1")
r.Value = "123"
Set r = Range("A3,A5")
r.Font.Color = vbRed
r.Value = "456"
Set r = Range("A6:A7")
r.Value = "=A1+A3"
Теперь давайте поймем алгоритм работы нашего кода. Итак, у каждой строчки листа data, начиная со второй, есть некоторые данные, которые нас не интересуют (ID, название и цена) и есть две вложенные группы, к которым она принадлежит (тип и производитель). Более того, эти строки отсортированы. Пока мы забудем про пропуски перед началом новой группы — так будет проще. Я предлагаю такой алгоритм:
- Считали группы из очередной строки.
- Пробегаемся по всем группам в порядке приоритета (вначале более крупные)
- Если текущая группа не совпадает, вызываем процедуру AddGroup(i, name), где i — номер группы (от номера текущей до максимума), name — её имя. Несколько вызовов необходимы, чтобы создать не только наш заголовок, но и всё более мелкие.
- После отрисовки всех необходимых заголовков делаем еще одну строку и заполняем её данными.
Для упрощения работы рекомендую определить следующие функции-сокращения:
Function GetCol(Col As Integer) As String
GetCol = Chr(Asc("A") + Col)
End FunctionFunction GetCellS(Sheet As String, Col As Integer, Row As Integer) As Range
Set GetCellS = Sheets(Sheet).Range(GetCol(Col) + CStr(Row))
End FunctionFunction GetCell(Col As Integer, Row As Integer) As Range
Set GetCell = Range(GetCol(Col) + CStr(Row))
End Function
Далее определим глобальную переменную «текущая строчка»: Dim CurRow As Integer. В начале процедуры её следует сделать равной единице. Еще нам потребуется переменная-«текущая строка в data», массив с именами групп текущей предыдущей строк. Потом можно написать цикл «пока первая ячейка в строке непуста».
Глобальные переменные
Option Explicit ' про эту строчку я уже рассказывал
Dim CurRow As Integer
Const GroupsCount As Integer = 2
Const DataCount As Integer = 3
FormatPrice
Sub FormatPrice()
Dim I As Integer ' строка в data
CurRow = 1
Dim Groups(1 To GroupsCount) As String
Dim PrGroups(1 To GroupsCount) As String
Sheets(
"data").Activate
I = 2
Do While True
If GetCell(0, I).Value = "" Then Exit Do
' ...
I = I + 1
Loop
End Sub
Теперь надо заполнить массив Groups:
На месте многоточия
Dim I2 As Integer
For I2 = 1 To GroupsCount
Groups(I2) = GetCell(I2, I)
Next I2
' ...
For I2 = 1 To GroupsCount ' VB не умеет копировать массивы
PrGroups(I2) = Groups(I2)
Next I2
I = I + 1
И создать заголовки:
На месте многоточия в предыдущем куске
For I2 = 1 To GroupsCount
If Groups(I2) <> PrGroups(I2) Then
Dim I3 As Integer
For I3 = I2 To GroupsCount
AddHeader I3, Groups(I3)
Next I3
Exit For
End If
Next I2
Не забудем про процедуру AddHeader:
Перед FormatPrice
Sub AddHeader(Ty As Integer, Name As String)
GetCellS("result", 1, CurRow).Value = Name
CurRow = CurRow + 1
End Sub
Теперь надо перенести всякую информацию в result
For I2 = 0 To DataCount - 1
GetCellS("result", I2, CurRow).Value = GetCell(I2, I)
Next I2
Подогнать столбцы по ширине и выбрать лист result для показа результата
После цикла в конце FormatPrice
Sheets("Result").Activate
Columns.AutoFit
Всё. Можно любоваться первой версией.
Некрасиво, но похоже. Давайте разбираться с форматированием. Сначала изменим процедуру AddHeader:
Sub AddHeader(Ty As Integer, Name As String)
Sheets("result").Range("A" + CStr(CurRow) + ":C" + CStr(CurRow)).Merge
' Чтобы не заводить переменную и не писать каждый раз длинный вызов
' можно воспользоваться блоком With
With GetCellS("result", 0, CurRow)
.Value = Name
.Font.Italic = True
.Font.Name = "Cambria"
Select Case Ty
Case 1 ' Тип
.Font.Bold = True
.Font.Size = 16
Case 2 ' Производитель
.Font.Size = 12
End Select
.HorizontalAlignment = xlCenter
End With
CurRow = CurRow + 1
End Sub
Уже лучше:
Осталось только сделать границы. Тут уже нам требуется работать со всеми объединёнными ячейками, иначе бордюр будет только у одной:
Поэтому чуть-чуть меняем код с добавлением стиля границ:
Sub AddHeader(Ty As Integer, Name As String)
With Sheets("result").Range("A" + CStr(CurRow) + ":C" + CStr(CurRow))
.Merge
.Value = Name
.Font.Italic = True
.Font.Name = "Cambria"
.HorizontalAlignment = xlCenterSelect Case Ty
Case 1 ' Тип
.Font.Bold = True
.Font.Size = 16
.Borders(xlTop).Weight = xlThick
Case 2 ' Производитель
.Font.Size = 12
.Borders(xlTop).Weight = xlMedium
End Select
.Borders(xlBottom).Weight = xlMedium ' По убыванию: xlThick, xlMedium, xlThin, xlHairline
End With
CurRow = CurRow + 1
End Sub
Осталось лишь добится пропусков перед началом новой группы. Это легко:
В начале FormatPrice
Dim I As Integer ' строка в data
CurRow = 0 ' чтобы не было пропуска в самом начале
Dim Groups(1 To GroupsCount) As String
В цикле расстановки заголовков
If Groups(I2) <> PrGroups(I2) Then
CurRow = CurRow + 1
Dim I3 As Integer
В точности то, что и хотели.
Надеюсь, что эта статья помогла вам немного освоится с программированием для Excel на VBA. Домашнее задание — добавить заголовки «ID, Название, Цена» в результат. Подсказка: CurRow = 0 CurRow = 1.
Файл можно скачать тут (min.us) или тут (Dropbox). Не забудьте разрешить исполнение макросов. Если кто-нибудь подскажет человеческих файлохостинг, залью туда.
Спасибо за внимание.
Буду рад конструктивной критике в комментариях.
UPD: Перезалил пример на Dropbox и min.us.
UPD2: На самом деле, при вызове процедуры с одним параметром скобки можно поставить. Либо использовать конструкцию Call Foo(«bar», 1, 2, 3) — тут скобки нужны постоянно.
Introduction
This is a tutorial about writing code in Excel spreadsheets using Visual Basic for Applications (VBA).
Excel is one of Microsoft’s most popular products. In 2016, the CEO of Microsoft said «Think about a world without Excel. That’s just impossible for me.” Well, maybe the world can’t think without Excel.
- In 1996, there were over 30 million users of Microsoft Excel (source).
- Today, there are an estimated 750 million users of Microsoft Excel. That’s a little more than the population of Europe and 25x more users than there were in 1996.
We’re one big happy family!
In this tutorial, you’ll learn about VBA and how to write code in an Excel spreadsheet using Visual Basic.
Prerequisites
You don’t need any prior programming experience to understand this tutorial. However, you will need:
- Basic to intermediate familiarity with Microsoft Excel
- If you want to follow along with the VBA examples in this article, you will need access to Microsoft Excel, preferably the latest version (2019) but Excel 2016 and Excel 2013 will work just fine.
- A willingness to try new things
Learning Objectives
Over the course of this article, you will learn:
- What VBA is
- Why you would use VBA
- How to get set up in Excel to write VBA
- How to solve some real-world problems with VBA
Important Concepts
Here are some important concepts that you should be familiar with to fully understand this tutorial.
Objects: Excel is object-oriented, which means everything is an object — the Excel window, the workbook, a sheet, a chart, a cell. VBA allows users to manipulate and perform actions with objects in Excel.
If you don’t have any experience with object-oriented programming and this is a brand new concept, take a second to let that sink in!
Procedures: a procedure is a chunk of VBA code, written in the Visual Basic Editor, that accomplishes a task. Sometimes, this is also referred to as a macro (more on macros below). There are two types of procedures:
- Subroutines: a group of VBA statements that performs one or more actions
- Functions: a group of VBA statements that performs one or more actions and returns one or more values
Note: you can have functions operating inside of subroutines. You’ll see later.
Macros: If you’ve spent any time learning more advanced Excel functionality, you’ve probably encountered the concept of a “macro.” Excel users can record macros, consisting of user commands/keystrokes/clicks, and play them back at lightning speed to accomplish repetitive tasks. Recorded macros generate VBA code, which you can then examine. It’s actually quite fun to record a simple macro and then look at the VBA code.
Please keep in mind that sometimes it may be easier and faster to record a macro rather than hand-code a VBA procedure.
For example, maybe you work in project management. Once a week, you have to turn a raw exported report from your project management system into a beautifully formatted, clean report for leadership. You need to format the names of the over-budget projects in bold red text. You could record the formatting changes as a macro and run that whenever you need to make the change.
What is VBA?
Visual Basic for Applications is a programming language developed by Microsoft. Each software program in the Microsoft Office suite is bundled with the VBA language at no extra cost. VBA allows Microsoft Office users to create small programs that operate within Microsoft Office software programs.
Think of VBA like a pizza oven within a restaurant. Excel is the restaurant. The kitchen comes with standard commercial appliances, like large refrigerators, stoves, and regular ole’ ovens — those are all of Excel’s standard features.
But what if you want to make wood-fired pizza? Can’t do that in a standard commercial baking oven. VBA is the pizza oven.
Yum.
Why use VBA in Excel?
Because wood-fired pizza is the best!
But seriously.
A lot of people spend a lot of time in Excel as a part of their jobs. Time in Excel moves differently, too. Depending on the circumstances, 10 minutes in Excel can feel like eternity if you’re not able to do what you need, or 10 hours can go by very quickly if everything is going great. Which is when you should ask yourself, why on earth am I spending 10 hours in Excel?
Sometimes, those days are inevitable. But if you’re spending 8-10 hours everyday in Excel doing repetitive tasks, repeating a lot of the same processes, trying to clean up after other users of the file, or even updating other files after changes are made to the Excel file, a VBA procedure just might be the solution for you.
You should consider using VBA if you need to:
- Automate repetitive tasks
- Create easy ways for users to interact with your spreadsheets
- Manipulate large amounts of data
Getting Set Up to Write VBA in Excel
Developer Tab
To write VBA, you’ll need to add the Developer tab to the ribbon, so you’ll see the ribbon like this.
To add the Developer tab to the ribbon:
- On the File tab, go to Options > Customize Ribbon.
- Under Customize the Ribbon and under Main Tabs, select the Developer check box.
After you show the tab, the Developer tab stays visible, unless you clear the check box or have to reinstall Excel. For more information, see Microsoft help documentation.
VBA Editor
Navigate to the Developer Tab, and click the Visual Basic button. A new window will pop up — this is the Visual Basic Editor. For the purposes of this tutorial, you just need to be familiar with the Project Explorer pane and the Property Properties pane.
Excel VBA Examples
First, let’s create a file for us to play around in.
- Open a new Excel file
- Save it as a macro-enabled workbook (. xlsm)
- Select the Developer tab
- Open the VBA Editor
Let’s rock and roll with some easy examples to get you writing code in a spreadsheet using Visual Basic.
Example #1: Display a Message when Users Open the Excel Workbook
In the VBA Editor, select Insert -> New Module
Write this code in the Module window (don’t paste!):
Sub Auto_Open()
MsgBox («Welcome to the XYZ Workbook.»)
End Sub
Save, close the workbook, and reopen the workbook. This dialog should display.
Ta da!
How is it doing that?
Depending on your familiarity with programming, you may have some guesses. It’s not particularly complex, but there’s quite a lot going on:
- Sub (short for “Subroutine): remember from the beginning, “a group of VBA statements that performs one or more actions.”
- Auto_Open: this is the specific subroutine. It automatically runs your code when the Excel file opens — this is the event that triggers the procedure. Auto_Open will only run when the workbook is opened manually; it will not run if the workbook is opened via code from another workbook (Workbook_Open will do that, learn more about the difference between the two).
- By default, a subroutine’s access is public. This means any other module can use this subroutine. All examples in this tutorial will be public subroutines. If needed, you can declare subroutines as private. This may be needed in some situations. Learn more about subroutine access modifiers.
- msgBox: this is a function — a group of VBA statements that performs one or more actions and returns a value. The returned value is the message “Welcome to the XYZ Workbook.”
In short, this is a simple subroutine that contains a function.
When could I use this?
Maybe you have a very important file that is accessed infrequently (say, once a quarter), but automatically updated daily by another VBA procedure. When it is accessed, it’s by many people in multiple departments, all across the company.
- Problem: Most of the time when users access the file, they are confused about the purpose of this file (why it exists), how it is updated so often, who maintains it, and how they should interact with it. New hires always have tons of questions, and you have to field these questions over and over and over again.
- Solution: create a user message that contains a concise answer to each of these frequently answered questions.
Real World Examples
- Use the MsgBox function to display a message when there is any event: user closes an Excel workbook, user prints, a new sheet is added to the workbook, etc.
- Use the MsgBox function to display a message when a user needs to fulfill a condition before closing an Excel workbook
- Use the InputBox function to get information from the user
Example #2: Allow User to Execute another Procedure
In the VBA Editor, select Insert -> New Module
Write this code in the Module window (don’t paste!):
Sub UserReportQuery()
Dim UserInput As Long
Dim Answer As Integer
UserInput = vbYesNo
Answer = MsgBox(«Process the XYZ Report?», UserInput)
If Answer = vbYes Then ProcessReport
End Sub
Sub ProcessReport()
MsgBox («Thanks for processing the XYZ Report.»)
End Sub
Save and navigate back to the Developer tab of Excel and select the “Button” option. Click on a cell and assign the UserReportQuery macro to the button.
Now click the button. This message should display:
Click “yes” or hit Enter.
Once again, tada!
Please note that the secondary subroutine, ProcessReport, could be anything. I’ll demonstrate more possibilities in example #3. But first…
How is it doing that?
This example builds on the previous example and has quite a few new elements. Let’s go over the new stuff:
- Dim UserInput As Long: Dim is short for “dimension” and allows you to declare variable names. In this case, UserInput is the variable name and Long is the data type. In plain English, this line means “Here’s a variable called “UserInput”, and it’s a Long variable type.”
- Dim Answer As Integer: declares another variable called “Answer,” with a data type of Integer. Learn more about data types here.
- UserInput = vbYesNo: assigns a value to the variable. In this case, vbYesNo, which displays Yes and No buttons. There are many button types, learn more here.
- Answer = MsgBox(“Process the XYZ Report?”, UserInput): assigns the value of the variable Answer to be a MsgBox function and the UserInput variable. Yes, a variable within a variable.
- If Answer = vbYes Then ProcessReport: this is an “If statement,” a conditional statement, which allows us to say if x is true, then do y. In this case, if the user has selected “Yes,” then execute the ProcessReport subroutine.
When could I use this?
This could be used in many, many ways. The value and versatility of this functionality is more so defined by what the secondary subroutine does.
For example, maybe you have a file that is used to generate 3 different weekly reports. These reports are formatted in dramatically different ways.
- Problem: Each time one of these reports needs to be generated, a user opens the file and changes formatting and charts; so on and so forth. This file is being edited extensively at least 3 times per week, and it takes at least 30 minutes each time it’s edited.
- Solution: create 1 button per report type, which automatically reformats the necessary components of the reports and generates the necessary charts.
Real World Examples
- Create a dialog box for user to automatically populate certain information across multiple sheets
- Use the InputBox function to get information from the user, which is then populated across multiple sheets
Example #3: Add Numbers to a Range with a For-Next Loop
For loops are very useful if you need to perform repetitive tasks on a specific range of values — arrays or cell ranges. In plain English, a loop says “for each x, do y.”
In the VBA Editor, select Insert -> New Module
Write this code in the Module window (don’t paste!):
Sub LoopExample()
Dim X As Integer
For X = 1 To 100
Range(«A» & X).Value = X
Next X
End Sub
Save and navigate back to the Developer tab of Excel and select the Macros button. Run the LoopExample macro.
This should happen:
Etc, until the 100th row.
How is it doing that?
- Dim X As Integer: declares the variable X as a data type of Integer.
- For X = 1 To 100: this is the start of the For loop. Simply put, it tells the loop to keep repeating until X = 100. X is the counter. The loop will keep executing until X = 100, execute one last time, and then stop.
- Range(«A» & X).Value = X: this declares the range of the loop and what to put in that range. Since X = 1 initially, the first cell will be A1, at which point the loop will put X into that cell.
- Next X: this tells the loop to run again
When could I use this?
The For-Next loop is one of the most powerful functionalities of VBA; there are numerous potential use cases. This is a more complex example that would require multiple layers of logic, but it communicates the world of possibilities in For-Next loops.
Maybe you have a list of all products sold at your bakery in Column A, the type of product in Column B (cakes, donuts, or muffins), the cost of ingredients in Column C, and the market average cost of each product type in another sheet.
You need to figure out what should be the retail price of each product. You’re thinking it should be the cost of ingredients plus 20%, but also 1.2% under market average if possible. A For-Next loop would allow you to do this type of calculation.
Real World Examples
- Use a loop with a nested if statement to add specific values to a separate array only if they meet certain conditions
- Perform mathematical calculations on each value in a range, e.g. calculate additional charges and add them to the value
- Loop through each character in a string and extract all numbers
- Randomly select a number of values from an array
Conclusion
Now that we’ve talked about pizza and muffins and oh-yeah, how to write VBA code in Excel spreadsheets, let’s do a learning check. See if you can answer these questions.
- What is VBA?
- How do I get set up to start using VBA in Excel?
- Why and when would you use VBA?
- What are some problems I could solve with VBA?
If you have a fair idea of how to you could answer these questions, then this was successful.
Whether you’re an occasional user or a power user, I hope this tutorial provided useful information about what can be accomplished with just a bit of code in your Excel spreadsheets.
Happy coding!
Learning Resources
- Excel VBA Programming for Dummies, John Walkenbach
- Get Started with VBA, Microsoft Documentation
- Learning VBA in Excel, Lynda
A bit about me
I’m Chloe Tucker, an artist and developer in Portland, Oregon. As a former educator, I’m continuously searching for the intersection of learning and teaching, or technology and art. Reach out to me on Twitter @_chloetucker and check out my website at chloe.dev.
Learn to code for free. freeCodeCamp’s open source curriculum has helped more than 40,000 people get jobs as developers. Get started
Первое знакомство с редактором VBA Excel, создание процедур (подпрограмм) и написание простейшего кода, работающего с переменными и ячейками рабочего листа.
Начинаем программировать с нуля
Часть 1. Первая программа
[Часть 1] [Часть 2] [Часть 3] [Часть 4]
Эта статья предназначена для тех, кто желает научиться программировать в VBA Excel с нуля. Вы увидите, как это работает, и убедитесь, что не все так сложно, как кажется с первого взгляда. Свою первую программу вы напишите за 7 простых шагов.
- Создайте новую книгу Excel и сохраните ее как книгу с поддержкой макросов с расширением .xlsm. В старых версиях Excel по 2003 год – как обычную книгу с расширением .xls.
- Нажмите сочетание клавиш «Левая_клавиша_Alt+F11», которое откроет редактор VBA. С правой клавишей Alt такой фокус не пройдет. Также, в редактор VBA можно перейти по ссылке «Visual Basic» из панели инструментов «Разработчик» на ленте быстрого доступа. Если вкладки «Разработчик» на ленте нет, ее следует добавить в настройках параметров Excel.
В левой части редактора VBA расположен проводник проекта, в котором отображены все открытые книги Excel. Верхней строки, как на изображении, у вас скорее всего не будет, так как это – личная книга макросов. Справа расположен модуль, в который записываются процедуры (подпрограммы) с кодом VBA. На изображении открыт модуль листа, мы же далее создадим стандартный программный модуль.
- Нажмите кнопку «Module» во вкладке «Insert» главного меню. То же подменю откроется при нажатии на вторую кнопку после значка Excel на панели инструментов.
После нажатия кнопки «Module» вы увидите ссылку на него, появившуюся в проводнике слева.
Первая программа на VBA Excel
Добавляем на стандартный модуль шаблон процедуры – строки ее начала и завершения, между которыми мы и будем писать свою первую программу (процедуру, подпрограмму).
- Откройте стандартный модуль двойным кликом по его ссылке в проводнике. Поместите в него курсор и нажмите кнопку «Procedure…» во вкладке «Insert» главного меню. Та же ссылка будет доступна при нажатии на вторую кнопку после значка Excel на панели инструментов.
В результате откроется окно добавления шаблона процедуры (Sub).
- Наберите в поле «Name» имя процедуры: «Primer1», или скопируйте его отсюда и вставьте в поле «Name». Нажмите кнопку «OK», чтобы добавить в модуль первую и последнюю строки процедуры.
Имя процедуры может быть написано как на латинице, так и на кириллице, может содержать цифры и знак подчеркивания. Оно обязательно должно начинаться с буквы и не содержать пробелы, вместо которых следует использовать знак подчеркивания.
- Вставьте внутрь шаблона процедуры следующую строку:
MsgBox "Привет"
.
Функция MsgBox выводит информационное сообщение с указанным текстом. В нашем примере – это «Привет».
- Проверьте, что курсор находится внутри процедуры, и запустите ее, нажав клавишу «F5». А также, запустить процедуру на выполнение можно, нажав на треугольник (на изображении под пунктом меню «Debug») или на кнопку «Run Sub/UserForm» во вкладке «Run» главного меню редактора VBA Excel.
Если вы увидели такое сообщение, как на изображении, то, поздравляю – вы написали свою первую программу!
Работа с переменными
Чтобы использовать в процедуре переменные, их необходимо объявить с помощью ключевого слова «Dim». Если при объявлении переменных не указать типы данных, они смогут принимать любые доступные в VBA Excel значения. Комментарии в тексте процедур начинаются со знака «’» (апостроф).
Пример 2
Присвоение переменным числовых значений:
Public Sub Primer2() ‘Объявляем переменные x, y, z Dim x, y, z ‘Присваиваем значение переменной x x = 25 ‘Присваиваем значение переменной y y = 35 ‘Присваиваем переменной z сумму ‘значений переменных x и y z = x + y ‘Выводим информационное сообщение ‘со значением переменной z MsgBox z End Sub |
Пример 3
Присвоение переменным строковых значений:
Public Sub Primer3() ‘Объявляем переменные x, y, z Dim x, y, z ‘Присваиваем строку переменной x x = «Добрый» ‘Присваиваем строку переменной y y = «день!» ‘Присваиваем переменной z строку, ‘состоящую из строк x и y ‘с пробелом между ними z = x & » « & y ‘Выводим информационное сообщение ‘со значением переменной z MsgBox z End Sub |
Скопируйте примеры процедур в стандартный модуль и запустите их на выполнение.
Изменение содержимого ячеек
Для обозначения диапазонов, в том числе и отдельных ячеек, в VBA Excel имеется ключевое слово «Range». Ячейке A1 на рабочем листе будет соответствовать выражение Range("A1")
в коде VBA Excel.
Пример 4
Public Sub Primer4() ‘Объявляем переменную x Dim x ‘Присваиваем значение переменной x x = 125.61 ‘Присваиваем ячейке A1 ‘значение переменной x Range(«A1») = x ‘Присваиваем значение ячейке B1 Range(«B1») = 356.24 ‘Записываем в ячейку C1 ‘сумму ячеек A1 и B1 Range(«C1») = Range(«A1») + Range(«B1») End Sub |
Скопируйте процедуру этого примера в стандартный модуль и запустите на выполнение. Перейдите на активный рабочий лист Excel, чтобы увидеть результат.
Перейти к содержанию
На чтение 2 мин Опубликовано 11.05.2020
Данный учебник является введением в язык программирования Excel VBA (Visual Basic for Applications). Изучив VBA, Вы сможете создавать макросы и выполнять в Excel практически любые задачи. Вы очень скоро поймёте, что макросы могут сэкономить уйму времени благодаря автоматизации повторяющихся задач и обеспечить гибкое взаимодействие с другими пользователями.
Этот учебник не является исчерпывающим руководством по языку программирования Excel VBA. Его цель – помочь начинающему специалисту освоить написание макросов в Excel при помощи кода VBA. Для желающих изучить этот язык программирования более глубоко существуют отличные книги по Excel VBA. Далее приведено содержание самоучителя по Excel Visual Basic. Для начинающих программистов настоятельно рекомендуется начать с первого раздела учебника и изучать их по порядку. Те, кто имеет опыт в программировании на VBA, могут сразу же перейти к интересующим темам.
- Часть 1: Оформление кода
- Часть 2: Типы данных, переменные и константы
- Часть 3: Массивы
- Часть 4: Процедуры Function и Sub
- Часть 5: Условные операторы
- Часть 6: Циклы
- Часть 7: Операторы и встроенные функции
- Часть 8: Объектная модель Excel
- Часть 9: События в Excel
- Часть 10: Ошибки VBA
- Примеры по VBA
Более подробное описание по Excel VBA можно найти на сайте Microsoft Office.
Оцените качество статьи. Нам важно ваше мнение:
Самоучитель по Excel VBA
Смотрите также Excel. Для всех, ввода данных с для Windows, используя: Вот еще подборка: Когда-то я думал, объяснит принципы работы посетителями моего сайта. Это окно помогает в проект VBA Следует знать и аргумента в разные и рядом возникает (значение x1 записывается самых элементарных кодов. ячейка и диапазон.
в ExcelДанный учебник является введением кто владеет основами собственными экранными формами VBA.С. А. Малышев что мой запас Excel. Затем перейдёт надёжными источниками знаний. при отладке кода. для книги другие правила. В системы счисления. Например, необходимость принять то в ячейку сЗадача: написать программу, которая Данные объекты обладаютВ Excel есть встроенный в язык программирования объектно-ориентированного программирования и и с вероятностьюГарбер Г.З. — Основы — Самоучитель VBA. знаний о программе к анализу данных Мне хочется, чтобы
- Оно выполняет роль
- Book1.xlsm частности, кнопка «Добавить
- Oct выдает в
- или иное решение координатами (i,1))
- будет копировать значение
- специальной иерархией, т.е.
- редактор Visual Basic, Excel VBA (Visual
- Microsoft Office. ревизии корректности набираемых
- программирования на VBA Как это делается
- тянет на вагон
- (в том числе
на освоение программы области вывода длядобавлен объект строку» должна нажиматься
восьмеричное представление числа. в зависимости от
Cells(i, 2).Value = y
содержимое одной ячейки
подчиняются друг другу.
office-guru.ru
Самоучитель по работе с макросами в Excel
который хранит код Basic for Applications).Используемая версия MS Office значений. в Microsoft Excel в Word, Excel, и небольшую кошёлку.
при помощи диаграмм вы потратили меньше отладки выражений иModule каждый раз послеФункции форматирования. Важнейшей из какого-то условия. Не (значение y записывается и затем записыватьГлавным из них является макроса и взаимодействует
Изучив VBA, Вы не указана.Качать тут: 2007 Access (+ дискета) Оказалось, что знал и сводных таблиц). времени и средств, позволяет вычислять отдельныес названием ввода в таблицу них является Format. обойтись без них в ячейку с в другую. Application, соответствующий самой с книгой Excel.
Настройка разрешения для использования макросов в Excel
сможете создавать макросыСодержание:http://rghost.ru/42882180P.S. Тем у когоГ. Гарбер - я далеко не И на закуску чем я. выражения или выполнять
Module1 значений по каждому Она возвращает значение и в VBA
Редактор Visual Basic
координатами (i,2))Для этого: программе Excel. Затем Редактор Visual Basic и выполнять вVisual Basic for Word.Microsoft Access 2010. Разработка не качается с Основы программирования на всё. В Excel расскажет, как осилитьИтак, вот мой выстраданный строки кода по. виду деятельности. После
типа Variant с Excel. Примеры программ,i = i +открывают вкладку «Вид»;
Запись макросов
следуют Workbooks, Worksheets, выделяет ошибки в Excel практически любыеМодель объектов Word. приложений на реальном вложений: Visual Basic и есть масса хитростей. макросы.
перечень из 10 одной.Вот как можно создать занесения всех данных
Учебник Excel VBA
выражением, отформатированным согласно где дальнейший ход 1 (действует счетчик);переходят на пиктограмму «Макросы»; а также Range. синтаксисе языка программирования
задачи. Вы оченьПроцедурное программирование в Word. примере.
http://rghost.ru/42870161 VBA в Excel
О том, как
На мой взгляд, это
лучших книг по
office-guru.ru
VBA Excel: примеры программ. Макросы в Excel
Например, введите выражение « новый объект требуется нажать кнопку инструкциям, которые заданы выполнения алгоритма выбирается,x1 = x1 +жмут на «Запись макроса»; Например, для обращения и предоставляет инструменты скоро поймёте, чтоСтруктурное программирование в Word.Автор — Геннадий ГурвицРостислав Михеев — Программирование 2007 ими пользоваться, и простое и понятно Excel:?j
Что такое VBA
Userform «Закончить» и затем в описании формата. а не предопределен shag (аргумент изменяетсязаполняют открывшуюся форму. к ячейке A1
отладки для отслеживания макросы могут сэкономитьВизуальное программирование в Word.Книга Геннадия Гурвица на VBA вNovichek =) расскажет Джон Уокенбах. пособие по ExcelБыло время, когда я» и нажмите,
переключиться в окнои пр. изначально, чаще всего на величину шага);Для простоты в поле на конкретном листе работы и обнаружения уйму времени благодаряVisual Basic for Excel. посвященная Microsoft Access Microsoft Office 2003: Когда то давноКнига содержит такое количество облегчит жизнь и делал круглые глазаEnterModule «Эксель».Изучение свойств этих функций используют конструкцию IfLoop «Имя макроса» оставляют
Объекты, коллекции, свойства и методы
следует указать путь ошибок в коде, автоматизации повторяющихся задачМодель объектов Excel. 2010 поможет наВ основу книги начинал с этого подсказок, советов, трюков, студенту и офисному при слове «формула».– в результатеилиТеперь вы знаете, как
и их применение …Then (для сложныхEnd Sub. «Макрос1», а в с учетом иерархии. помогая таким образом и обеспечить гибкоеПроцедурное программирование в Excel. реальных примерах разработать положен материал учебного
файла… хитростей и приёмчиков, работнику. Но даже А услышав «VBA-макросы», будет выведено текущееClass Module решать задачи для позволит значительно расширить
случаев) If …ThenВ результате запуска данного поле «Сочетание клавиш»Что касается понятия «коллекция», разработчику при написании взаимодействие с другими
Структурное программирование в Excel. сначала простое access-приложение, курса «Программирование вМксим что удержать их если вы ни и вовсе готовился значение переменной: Excel с помощью сферу применения «Эксель». …END If. макроса в «Эксель» вставляют, например, hh то это группа
кода. пользователями.Визуальное программирование в Excel. а далее, по
Как начать
Microsoft Office для: VBA в MS все в голове тот ни другой, падать в обморок.j
В окне макросов. Умение применятьПопробуем перейти к решениюРассмотрим конкретный случай. Предположим, получаем два столбца,
- (это значит, что объектов того жеКликните эту ссылку, чтобыЭтот учебник не являетсяПрограммирование интерфейса пользователя.
- ходу прочтения книги
- пользователей», который в Office 2007 Автор: порой невозможно. Вместе
- познакомиться с Excel Жаль, тогда мне
.
Project
vba excel (примеры
более сложных задач.
необходимо создать макрос в первом из запустить программку можно класса, которая в узнать больше о исчерпывающим руководством поМеню. и профессиональное access-приложение.
течение нескольких лет А.А. Заика с тем каждый поближе стоит в не встретилось этоЧтобы открыть окновыберите рабочую книгу, программ см. выше) Например: для «Эксель», чтобы которых записаны значения будет блиц-командой «Ctrl+h»). записи имеет вид редакторе Visual Basic
Макросы в Excel
языку программирования ExcelПанели инструментов. Кроме того, книга читается сотрудникам крупнейшихБесплатная электронная версия из них стоит любом случае. Издание исчерпывающее руководство отLocals в которую нужно может понадобиться иДан бумажный документ отчета в ячейку с для x, а Нажимают Enter. ChartObjects. Ее отдельные в Excel VBA. Его цельНачальная установка интерфейса. поможет осуществить перевод
Пример 1
предприятий России. Рассмотрено учебника по ссылке: взять на заметку, Куртиса Фрая подходит Джона Уокенбаха.
, нажмите
- добавить объект, и
- для работы в
- фактического уровня издержек
- координатами (1,1) было
во втором —Теперь, когда уже запущена элементы также являютсяИнструментарий Excel для записи – помочь начинающемуЕкатерина55 разработанного программного комплекса программирование на языке http://www.intuit.ru/department/se/vbamsoffice2007/1/ — регистрируйтесь
чтобы сократить время для этого наС «Microsoft Excel 2013.Locals Window кликните по ней среде самого популярного предприятия. Требуется: записано: для y.
запись макроса, производят
- объектами. макросов – это
- специалисту освоить написание: Очень хорошй учебник
- в архитектуру «клиент-сервер» VBA с использованием и читайте на
работы над той все сто. Библия пользователя» выв меню
правой кнопкой мыши. на данный моментразработать его шаблонную часть1, если аргумент положительный;Затем по ним строится копирование содержимого какой-либоСледующее понятие — свойства. отличный способ эффективно макросов в Excel по VBA «Профессиональное и познакомит читателя возможностей объектных моделей
здоровье Мне там или иной задачей.Ещё одно пособие для освоите основные возможностиViewВ появившемся меню кликните текстового редактора «Ворд». посредством табличного процессора0, если аргумент нулевой; график способом, стандартным ячейки в другую. Они являются необходимой
выполнять простые повторяющиеся при помощи кода программирование на VBA с основами обеспечения приложений Microsoft Office. очень понравилось, что Либо улучшить качество
Пример 2
новичков, которое позволит программы. На разредактора Visual Basic.
Insert В частности, можно «Эксель»;-1, если аргумент отрицательный. для «Эксель». Возвращаются на исходную характеристикой любого объекта. задачи. Также его VBA. Для желающих в Excel» John
информационной безопасности приложения Описан синтаксис языка уроки не слишком этой самой работы. играючи управиться с плюнуть сможете обрабатывать В этом окнеи в раскрывшемся путем записи, как
составить программу VBA, котораяСоздание такого макроса дляДля реализации циклов в пиктограмму. Нажимают на Например, для Range можно использовать, как изучить этот язык
Walkenbach.
и базы данных.
VBA, основные приемы
большие и каждый
Так что для
электронными таблицами. Эта данные с помощью отображаются все переменные, меню выберите показано в самом
будет запрашивать исходные «Эксель» начинается стандартным
VBA Excel 2010, «Запись макроса». Это — это Value вспомогательное средство при
программирования более глубокоikki В книге также работы с редактором
урок снабжен примером меня книга «Excel
книга для тех, диаграмм и графиков. объявленные в текущей
Userform
начале статьи, или
данные для ее способом, через использование как и в действие означает завершение или Formula. написании более сложных существуют отличные книги: Справочная информация по
описывается применение access-приложений кода, впервые подробно (можно скачать) как
Пример 3
2013. Трюки и кто не хочет Даже попрактикуетесь в процедуре. Окно делится, через написание кода заполнения, осуществлять необходимые
«горячих» клавиш Alt других версиях, наряду программки.Методы — это команды, макросов. по Excel VBA. расширениям имен файлов в разработках готовых рассматриваются объектные модели
и просили «не советы Джона Уокенбаха» прогрызаться сквозь премудрости создании этих жутких на столбцы, вModule создавать кнопки меню, расчеты и заполнять
и F11. Далее с уже приведенной
Далее: показывающие, что требуетсяКликните эту ссылку, чтобы Далее приведено содержание XML в Office
рецептов. основных приложений Microsoft понять не возможно стала настольной. Чего Excel, и кому макросов. Одним словом,
которых содержатся имя,или благодаря которым многие
ими соответствующие ячейки записывается следующий код: конструкцией Do Whileвновь переходят на строку сделать. При написании узнать больше о самоучителя по Excel
2013Данная книга позволит Office: Word, Excel, » . Успехов. и вам желаю! достаточно всего лишь пособие научит вас значение и типClass Module операции над текстом шаблона.
Sub program() используется For.
«Макросы»;
кода в VBA записи макросов в Visual Basic. ДляSurrogate вам выйти за Access, Outlook, PowerPoint,
Sasha_SmirnovОтличное пособие для новичков разобраться с фундаментом всему, что нужно, каждой переменной, и
. можно будет осуществлятьРассмотрим один из вариантовx= Cells(1, 1).Value (эта
Рассмотрим программу, которая создаст
в списке выбирают «Макрос их необходимо отделять Excel начинающих программистов настоятельно: Понятные ВИДЕО-уроки по рамки стандартного использования Project. Материал сопровождается: Источник: Академия Специальных и специалистов в (интерфейсом, основами формул чтобы прослыть знатоком
Пример 4
эта информация обновляетсяДля каждого из описанных нажатием дежурных клавиш решения. команда присваивает x столбец. В каждой 1»; от объекта точкой.Для тех, кто только рекомендуется начать с VBA в Excel такого программного продукта, многочисленными практическими примерами. курсов по информационным Excel с готовыми и функций, форматированием Excel.
автоматически в ходе выше объектов предусмотрено или через вкладкуВсе действия осуществляются на значение содержимого ячейки его ячейке будут
нажимают «Выполнить» (то же
Например, как будет
начинает осваивать язык
первого раздела учебника для начинающих - как Microsoft Access К каждой главе технологиям решениями.
и т.д.)
Книга кишит подсказками, советами, выполнения программы. Окно специальное окно, в «Вид» и пиктограмму стандартном листе в
с координатами (1, записаны квадраты номера
действие запускается начатием показано в дальнейшем,
программирования Excel VBA,
и изучать их
http://www.excel-eto-prosto.ru/?s=sn_16511 2010 и выйти книги предусмотрены заданияПрограммирование в Microsoft Excel
Функции VBA
По признанию автора, книгаЕсли вы мечтаете, чтобы секретами и примерами.Locals котором будет создаваться «Макросы». Excel. Резервируются свободные 1)) соответствующей строки. Использование сочетания клавиш «Ctrl+hh»). очень часто при предлагаем небольшой вводный по порядку. Те,aleks_des на совершенно новый для самостоятельной работы
- для пользователей содержит 20% знаний больше никто не Так что яочень полезно при
- и храниться новыйАвтор: Наира ячейки для внесенияIf x>0 Then Cells(1, конструкции For позволитВ результате происходит действие, программировании в «Эксель»
- курс по Visual кто имеет опыт: Подскажите,хорошую литературу( самоучитель
- уровень его использования. с подробными решениями.Пособие предельно структурировано об Excel, которые посмел назвать вас обращаюсь к ней отладке кода VBA. код VBA. ПорядокВ этой главе даётся данных по месяцу, 1).Value = 1 записать ее очень которое было осуществлено используют команду Cells(1,1).Select. Basic for Applications. в программировании на или видео уроки)
- Скачиваем тут:Слепцова Л.Д. — Программирование (причем не в помогают решить 80% «профаном» или «чайником»,
- постоянно.Окно при этом такой: очень краткий обзор году, названию компании-потребителя,If x=0 Then Cells(1, коротко, без использования в процессе записи Она означает, чтоКликните эту ссылку, чтобы VBA, могут сразу на VBA вhttp://rghost.ru/43129360
- на VBA в оглавлении), а во каждодневных задач. Недурное запасайтесь этим учебникомЗнаете, о чём я
- WatchesКод, который относится к редактора Visual Basic сумме издержек, их 1).Value = 0 счетчика. макроса.
- необходимо выбрать ячейку
перейти к учебнику же перейти к Outlook.Очень мало даннойPifan
Пример 5
Microsoft Office 2010. всем курсе. Почти соотношение, не так
и чувством юмора. пожалел после покупкитакже очень помогает
- рабочей книге, должен в Excel. Если уровня, товарооборота. Так
- If xСначала нужно создать макрос,Имеет смысл увидеть, как с координатами (1,1) Excel VBA интересующим темам. литературы
: Посоветуйте пожалуйста самоучитель Самоучитель
Создание шаблона
как справочник, с ли? Оно вам пригодится! этой книги? О при отладке кода быть введён в Вы любознательный читатель как количество компанийEnd Sub. как описано выше. выглядит код. Для т.е. A1.Урок подготовлен для ВасЧасть 1: Оформление кодаsuckmyb где всё разжованноОписание: постоянными примерами. Легко
Переменные
Николай Павлов посветит васЧто может быть скучнее, том, что она VBA, так как соответствующий объект
- и хотите узнать (обществ), относительно которых
- Остается запустить макрос и Далее записываем сам этого вновь переходят
- Вместе с ней нередко командой сайта office-guru.ruЧасть 2: Типы данных,
- : поисковый запрос в и не понятьЭта книга предназначена
можно пропустить, то в тонкости форматирования, чем тягомотина с не попала в в нём можноЭтаКнига еще больше информации составляется отчет, не
Решение задачи с использованием программирования на VBA
получить в «Эксель» код. Считаем, что на строку «Макросы» используется Selection.ClearContents. ЕеИсточник: http://www.excelfunctions.net/Writing-Excel-Macros.html переменные и константы яндекс: vba outlook не возможно для всех, у
что уже знаете, редактирования, операций с тоннами отчётов? Сидеть мои руки намного
увидеть значение, тип(ThisWorkbook); о редакторе, то зафиксировано, ячейки для нужное значение для
нас интересуют значения и нажимают «Изменить» выполнение означает очисткуПеревел: Антон АндроновЧасть 3: Массивы -excel -word -accessОбсуждение литературы следует кого есть желание
не вчитываясь. Также текстом, книгами и и анализировать ситуацию раньше. Это же и контекст любого
Код, который относится к при желании без внесения значений по аргумента.
для 10 ячеек. или «Войти». В содержимого выбранной ячейки.Автор: Антон АндроновЧасть 4: Процедуры Function105 тыс. ответов вести не здесь, научиться программировать на четко структурировано описание листами. Научит отправлять или разбираться с настоящий кладезь мудрости! отслеживаемого выражения, которое рабочему листу, должен проблем найдете ресурсы итогам и ФИОКак вы уже могли
Код выглядит следующим результате оказываются вПрежде всего требуется создатьНемногие знают, что первая и SubAlex_Gur а в этой языке VBA в различных объектов, их письма прямо из деловыми задачами приходитсяДжон Уокенбах за руку задаст пользователь. Чтобы быть введён в с более подробным специалиста заранее не заметить, программировать в образом. среде VBA. Собственно, файл и сохранить версия популярного продуктаЧасть 5: Условные операторы: что-то долго ожидает теме:
среде Office 2010,
fb.ru
Редактор Visual Basic в Excel
свойств … Excel. Расскажет, как часами. Да бросьте! проведёт вас от открыть окно соответствующий объект описанием. резервируют. Рабочему листу самом известном табличномFor i = 1 сам код макроса его, присвоив имя
Запуск редактора Visual Basic
Microsoft Excel появиласьЧасть 6: Циклы проверки ? оченьОбсуждение учебников, справочников, начиная практически сAndreA SN создавать выпадающие списки. Вы серьёзно не элементарных возможностей ExcelWatchesЛистПростейший способ запустить редактор присваивается новое название. процессоре Microsoft не to 10 Next находится между строками и выбрав тип в 1985 году.Часть 7: Операторы и
Окна редактора Visual Basic
любопытно почитать эту самоучителей по VBA нуля. Она предназначена: А я купил Объяснит, как анализировать в курсе, что до мастерского владения, нажмите(Sheet); Visual Basic в Например, «Օтчет».
Окно проекта (Project)
так уж сложно.Команда переводится на «человеческий» Sub Макрос1() и «Книга Excel с С тех пор встроенные функции книгу под редакциейStephane для индивидуального обучения, книжку Excel 2010 данные и работать всё это можно функциями. Вы научитесьWatch WindowКод более общего характера Excel – нажать
- Для написания программы автоматического Особенно, если научиться язык, как «Повторять End Sub.
- поддержкой макросов». он пережил несколькоЧасть 8: Объектная модель того самого Alex_ST:
написана простым, доступным Профессиональное программирование на со сводными таблицами с легкостью делать работать с ячейкамив меню должен быть введён комбинацию клавиш заполнения шаблона, необходимо применять функции VBA. от 1 доЕсли копирование было выполнено,Затем необходимо перейти в модификаций и востребован ExcelМихеев Р. Н.VBA иЯчменев Е.Ф. Лекции по языком и рассчитана
VBA.Джон Уокенбах. С и проч. в Excel? и диапазонами, ворочатьView вAlt+F11 выбрать обозначения. Они
- Всего в этом 10 с шагом например, из ячейки приложение VB, для у миллионов пользователейЧасть 9: События в программирование в MS
- VBA. на пользователей с диском примеров(очень помогают).жалкоЕщё одно издание, котороеЭта книга научит вас огромными массивами данныхредактора Visual Basic.Module(то есть нажать будут использоваться для
языке программирования, созданном один». А1 в ячейку чего достаточно воспользоваться по всему миру. Excel Office для пользователей.
- Visual Basic для любым уровнем компьютерных в электронке только я рекомендую всегда решать любые бизнес-задачи и извлекать из
- Также окно; клавишу переменных: специально для написанияЕсли ставится задача получить
- C1, то одна комбинацией клавиш «Alt» При этом многиеЧасть 10: Ошибки VBAКнига для начинающих
- приложений (Visual Basic знаний. Книга содержит англоязычная версия! хранить под рукой. шутя! С помощью
- них нужную информацию,WatchesКод для нового объектаAltNN– номер текущей строки приложений в «Эксель»
Окно кода (Code)
столбец с квадратами, из строк кода и «F11». Далее: работают лишь сПримеры по VBA программистов в VBA, for Applications или множество практических примеров,MaxsssПособиями, которые я рекомендую Excel вы сможете обрабатывать и анализироватьбудет открыто автоматически, должен быть введён
и, удерживая её, таблицы; и Word, около например, всех нечетных будет выглядеть, какв строке меню, расположенном малой толикой возможностейБолее подробное описание по написана доступным языком,
Окно свойств (Properties)
VBA) – это а выполнение всех: VBA сам по в этой статье, вести электронную бухгалтерию, данные любого типа, если задать отслеживаемое в нажать клавишуTP и TF – 160 функций. Их чисел из диапазона Range(“C1”).Select. В переводе
Окно отладчика (Immediate)
в верхней части этого табличного процессора Excel VBA можно проста в понимании. инструмент разработки приложений. приведенных пошаговых инструкций себе самоучитель! Главное пользуюсь до сих прогнозировать и составлять и многое-многое другое. выражение.Class ModuleF11 планируемый и фактический можно разделить на от 1 до это выглядит, как окна, нажимают на и даже не найти на сайте
За полгода изучения Подобно другим средствам и практическое применение включить запись. пор. Все они бюджет, оценивать иПод конец станете такимЧтобы задать отслеживаемое выражение,;
Окно переменных (Locals)
). После этого откроется товарооборот; несколько больших групп. 11, то пишем: «Диапазон(“C1”).Выделить», иными словами иконку рядом с догадываются, как им Microsoft Office. VBA по этой разработки VBA позволяет описанных приемов работыikki принесли огромную пользу анализировать финансовый оборот, крутым спецом, что нужно:Если нужно создать диалоговое окно редактора VisualSF и SP – Это:For i = 1
Окно отслеживания (Watches)
осуществляет переход в иконкой Excel; могло бы облегчитьУрок подготовлен для Вас книги самостоятельно начал создавать полностью автоматические непосредственно при чтении: мне и обязательно предсказывать спрос на сможете создавать пользовательскиеВыделить выражение в редактируемом окно для взаимодействия Basic, как показано фактическая и планируемаяМатематические функции. Применив их to 10 step VBA Excel, ввыбирают команду Mudule; жизнь умение программирования командой сайта office-guru.ru создавать простые приложения
программные продукты. VBA книги поможет быстро
- Волков Антон. Вводный курс принесут её вам.
- продукцию, просчитывать товарный функции в VBA коде VBA. с пользователем, то на картинке ниже.
- сумма издержек; к аргументу, получают 1 Next.
ячейку С1.сохраняют, нажав на иконку в Excel.Источник: http://www.excelfunctions.net/Excel-VBA-Tutorial.html в Wорде и – уникальная среда научиться создавать собственные в Visual Basic
Безусловно, лучше обзавестись запас, управлять инвестициями,
самостоятельно. Берите и
В меню
можно использовать
office-guru.ru
10 лучших книг по Excel
Имейте ввиду, чтоIP и IF – значение косинуса, натуральногоЗдесь step — шаг.Активную часть кода завершает с изображением floppy
Программирование в Excel осуществляетсяПеревел: Антон Андронов Access и в разработки, так как программы на языке- в формате бумажными экземплярами, чтобы а также многое изучайте «Формулы вDebugUserform
окно Excel остается планируемый и фактически логарифма, целой части В данном случае команда ActiveSheet.Paste. Она disk; посредством языка программированияАвтор: Антон Андронов настоящее время работаю она встраивается в VBA. Единственное, что файла помощи CHM делать пометки и другое. К слову, Microsoft Excel 2013»редактора VBA нажать. открытым и находится уровень издержек.
и пр. он равен двум. означает запись содержанияпишут, скажем так, набросок
1. Джон Уокенбах «Microsoft Excel 2013. Библия пользователя»
Visual Basic forВозможности Excel не ограничиваются над более сложными другое приложение, расширяя действительно необходимо читателю,Интерфейс VB6 от установки оставлять закладки. Так пособие Карлберга придётся от корки доQuick Watch Двойной щелчок мышью по позади окна редактора.Обозначим теми же буквами,Финансовые функции. Благодаря их По умолчанию отсутствие выделенной ячейки (в кода. Application, который изначально набором встроенных функций. приложениями. Всю книгу его функциональные возможности, — это наличие до компиляции удобней! Вот увидите, кстати не только корки. Она того. любому объекту вВ процессе работы в |
2. Джон Уокенбах «Формулы в Microsoft Excel 2013»
но с «приставкой» наличию и используя этого слова в данном случае А1)Он выглядит следующим образом: встроен в самый При помощи написания можно не изучать позволяет использовать данные под рукой компьютераОписание большинства функций и эти книги ускорят предпринимателям, но и стоит!Нажать окне редакторе Visual Basic Itog накопление итога программирование в Excel, цикле означает, что в выделенную ячейку Sub program () известный табличный процессор макросов Вы можете достаточно досконально изучить других прикладных программ, с установленными программами процедур + примеры вашу работу с менеджерам.Финальный аккорд трилогии гуру |
3. Джон Уокенбах «Excel 2013. Профессиональное программирование на VBA»
AddProject в Excel могут по данному столбцу. можно получать эффективные шаг единичный. С1. ’Наш код от Microsoft. создавать собственные функции главы с 3 поддерживающих VBA, и Microsoft Office 2010 использования Excel и вдохнутВы ведь не собираетесь Microsoft Excel Джона. |
4. Билл Джелен и Майкл Александер «Сводные таблицы в Microsoft Excel»
открывает соответствующее окно быть открыты различные Например, ItogTP – инструменты для веденияПолученные результаты нужно сохранятьЦиклы VBA помогают создаватьEnd SubК его достоинствам специалисты для выполнения нестандартных по 6 и управлять их работой. (хотя бы одной!)ActiveX в неё новую сидеть на месте, Уокенбаха! Эта книгаКроме рассмотренных, в менюCode окна. Управление окнами касается столбца таблицы, бухгалтерского учета и в ячейки с |
5. Куртис Фрай «Microsoft Excel 2013. Шаг за шагом»
различные макросы вОбратите внимание, что строка относят сравнительную легкость задач в Excel. те главы которые Использование VBA для и искреннее стремлениеРабота с базой данных жизнь. Если вы как пресловутый камень, должна быть у редактора Visual Basic, предназначенное для ввода осуществляется в меню озаглавленного, как «планируемый осуществления финансовых расчетов. номером (i,1). Тогда Excel. «’Наш код» будет освоения. Как показываетНапример, самостоятельно написанный макрос вам нужны в решения прикладных задач научиться программировать наWin32 API так не считаете, который вода обходит |
6. Грег Харвей «Microsoft Excel 2013 для чайников»
каждого, кто всерьёз в Excel существует кода VBA с View, которое находится товарооборот».Функции обработки массивов. К при каждом запускеЦиклы VBA помогают создавать выделена другим цветом практика, азами VBA можно привязать к какой среде будите удобно потому, что языке VBA.Полезные советы и др. с удовольствием поспорю стороной? Нет? Тогда нацелен развиваться на ещё множество параметров клавиатуры. На одном |
7. Конрад Карлберг «Бизнес анализ с использованием Excel»
в верхней частиИспользуя введенные обозначения, получаем ним относятся Array, цикла с увеличением различные макросы. Предположим, (зеленым). Причина в могут овладеть даже иконке и вывести создавать приложения. На его поддерживает множествоКнига вполне можетИсточник: http://mslog.ru/Справочник команд с вами в берите «Бизнес анализ поприще электронных таблиц. и команд, используемых из приведённых выше окна редактора VBA. формулы для отклонений. IsArray; LBound; UBound. i на величину что имеется функция апострофе, поставленном в пользователи, которые не на Ленту меню. все вопросы книга прикладных программ, в стать настольным справочником, VBA.Для продвинутых пользователей: комментариях! =) с использованием Excel»,Хотите подробно изучить язык при создании, выполнении рисунков показано окно Ниже дано описание Если требуется осуществитьФункции VBA Excel для |
8. Шимон Беннинг «Основы финансов с примерами в Excel»
шага автоматически будет y=x + x2 начале строки, который имеют навыков профессионального Либо Вы можете конечно не ответит, том числе и полезным в сложнойVBA 7.1 LanguageУрок подготовлен для Вас учитесь и развивайтесь! программирования VBA? Сооружать и отладке кода кода для отдельных окон. расчет в % строки. Это достаточно расти и номер + 3×3 – обозначает, что далее программирования. К особенностям создать пользовательскую функцию но общее понимание все программы популярного или непонятной ситуации. Reference командой сайта office-guru.ruЛюбопытный факт: почти все надстройки для Excel VBA.Module1Окно имеем (F – многочисленная группа. В |
9. Джон Уокенбах «Excel 2013. Трюки и советы Джона Уокенбаха»
у строки. Таким cos(x). Требуется создать следует комментарий. VBA относится выполнение (UDF) и использовать и первоначальный навык пакета Microsoft Office. Лаконичное и одновременно(с новшествами офисаАвтор: Антон Андронов авторы пособий по собственными силами? НаучитьсяУрок подготовлен для Вас .Project P) / P нее входят, например, образом, произойдет оптимизация макрос для полученияТеперь вы можете написать скрипта в среде ее точно так программирования даст даст,Содержание: исчерпывающее описание существующих 2013).Джон Уокенбах MicrosoftАвтор: Антон Андронов финансам в своих писать приложения в командой сайта office-guru.ruПо мере ввода кодаоткрывается в левой * 100, а |
10. Николай Павлов «Microsoft Excel. Готовые решения — бери и пользуйся!»
функции Space для кода. ее графика. Сделать любой код и офисных приложений. же, как и и в дальнейшемПроекты VBA. Интегрированная среда в языке VBA Excel 2010 ПрофессиональноеPifan книгах пренебрегают Excel. программе? Одним словом,Источник: http://www.excelfunctions.net/Visual-Basic-Editor.html VBA в окно части редактора VBA в сумме — создания строки сВ целом код будет это можно только, создать для себяНедостатком программы являются проблемы, остальные встроенные функции будет вам служить разработки VBA. средств и методов |
программирование на VBA.: Посоветуйте пожалуйста самоучитель И очень зря. освоить 1000 иПеревел: Антон АндроновCode (показано на картинке (F – P). числом пробелов, равных выглядеть, как: используя циклы VBA. новый инструмент в связанные с совместимостью Excel. хорошим справочником поПонятия процедуры и функции. работы с нимиhttp://litvik.ru/2/13/uchebniki_manu…na-vba-cd.html где всё разжованно Ведь сейчас большинство 1 приём крутого
Автор: Антон Андронов, редактор Visual Basic
выше). В этом
Результаты этих вычислений можно
office-guru.ru
Учебники, справочники, самоучители
целочисленному аргументу, илиSub program()За начальное и конечное VBA Excel (примеры различных версий. Они
Макрос — это компьютерный VBA, а далееВведение в объектно-ориентированное программирование. позволит вам найти
Я с этой и не понять
компаний выполняют расчёты VBA-программиста? Вооружайтесь творениемОсвоить Excel легко!
следит за правильностью окне для каждой лучше всего сразу Asc для переводаFor i = 1
значение аргумента функции программ см. далее).
обусловлены тем, что код, написанный для справка в редактореЭлементы языка Visual Basic здесь ответы на
книжкой много чего не возможно именно в этой
Уокенбаха и вперёдЕсли вы придерживаетесь
ввода, ищет ошибки открытой рабочей книги
внести в соответствующие символов в код To 10 Step берут x1=0 и Конечно, тем, кто
код программы VBA Excel на языке VBA и переводчик для приложений. любые вопросы, которые
понял.Информации не много,Обсуждение литературы следует программе. Шимон Беннинг одолевать высший пилотаж!
противоположного мнения, вам в коде и создаётся проект VBA ячейки таблицы «Эксель».
ANSI. Все они 1 (можно записать x2=10. Кроме того, знаком с азами обращается к функциональным программирования Visual Basic в помощь, аОписание и использование переменных, могут возникнуть в но про переменные, вести не здесь, заметил эту оплошностьКому не хочется поднять
не попадалось классное выделяет код, который (VBA Project). ПроектДля итогов по факту
имеют широкое применение просто For i
необходимо ввести константу Visual Basic, будет возможностям, которые присутствуют for Applications (VBA). также разделы этого констант и массивов. практике программирования офисных типы данных VBA, а в этой и выпустил «Основы производительность работы? В пособие для изучения
требует исправления. VBA – это и прогнозу получают и позволяют работать = 1 To — значение для намного проще. Однако в новой версии
Базовые понятия языка форума.Инструкции языка Visual Basic приложений.
управляющие структуры в теме: финансов с примерами разы сократить затраты программы.В окне
- набор всех объектов по формулам ItogP=ItogP
- со строками в 10) шага изменения аргумента
- даже те, кто
- продукта, но отсутствуют
- программирования VBA рассматриваются
- Хоть книга написана
для приложений.Качать тут:
VBA, некоторые другиеОбсуждение учебников, справочников,
в Excel». времени на зануднуюЯ и сам когда-тоProperties
и модулей VBA,
+ P и «Эксель», создавая приложения,Cells(i, 1).Value = i и начальное значение их не имеет, в старой. Также на нашем сайте под 2003 Офис
Стандартные функции ввода-вывода данных.
http://rghost.ru/42881990 вещи можно почитать.
самоучителей по VBA
В книге вы найдёте отчётность? Почти мгновенно хватался за всеперечислены свойства объекта, привязанных к текущей ItogF=ItogF+ F. значительно облегчающие работу ^ 2 (т.е. для счетчика. при желании смогут к минусам относят в Учебнике по
это не чутьИспользование объекта Range вП. Эйткен — Интенсивный(для начинающих)Sasha_Smirnov не только практические оценивать и анализировать учебники подряд. Глотал который в момент книге. Изначально вДля отклонений используют =
с этими таблицами. в ячейку (i,1)Все примеры макросов VBA освоиться достаточно быстро. и чрезмерно высокую VBA. Однако прежде не мешало мне
Microsoft Excel. курс программирования вon-line-teaching.comКаммингс С. VBA: О, если б примеры, но и данные? А как информацию в надежде создания (не в него входят: (ItogF – ItogP)Функции преобразования типа данных. записывается значение квадрата Excel создаются поЗа таким названием скрываются открытость кода для чем приступить к программировать в 2010dmivlge Excel за выходные. для «чайников», 2000г. такой был! почерпнёте важные знания насчёт урезать длинный хоть немного подтянуть процессе выполнения программы)Объект / ItogP * Например, CVar возвращает i) той же процедуре,
программы, написанные на изменения посторонним лицом. написанию кода VBA, офисе.: Еще интересная книжка!Возможности Microsoft ExcelАннотация (не моя):Я пользовался справкой о том, как запутанный отчёт до знания по Excel. выделен в окнеЭтаКнига 100, если расчет значение аргумента Expression,Next (в некотором смысле которая представлена выше. языке Visual Basic Тем не менее рекомендуем познакомиться сРекомендую всем начинающим! Всем читать обязательно! не ограничиваются толькоОбсуждаемые приемы программирования Word 97 (она строить финансовые модели, лаконичного и понятного? Признаться, перебрал десятки проекта. Эти свойства(ThisWorkbook), привязанный к ведется в процентах, преобразовав его в играет роль счетчика В данном конкретном
for Application. Таким Microsoft Office, а уроками, в которыхhttp://litvik.ru/2/13/uchebniki_manu…zovateley.htmlЗа вечер поисков Я фигни не работой с таблицами иллюстрируются примерами, которые русская) и Стив оценивать активы, принимать Сложно? Ничуть! Со книг. И понял, могут быть различными книге Excel; а в случае тип данных Variant.
и означает еще случае код выглядит, образом, программирование в также IBM Lotus рассматривается безопасность макросов
бесплатных видеоуроков без выкладываю … данных. За средствами можно сразу же Каммингс — VBA финансовые решения в сводными таблицами в что справляются со в зависимости отОбъекты суммарной величины —Функции работы с датами. один запуск цикла) как: Excel — это Symphony позволяют пользователю Excel и редактор смс нашел толькоИ так начнем: обработки электронных таблиц опробовать на практике. для «чайников» нестандартных условиях и
Microsoft Excel все своей задачей лишь типа выделенного объектаЛист (ItogF – ItogP).
Они значительно расширяют
End Sub.Sub programm() создание макросов с применять шифрование начального Visual Basic. это http://rutracker.org/forum/viewtopic.php?t=5023592.Водовозов В.М. Управление документами прячется сильный язык Полученные знания выmorgen84 так далее. эти фокусы – единицы. (лист, книга, модуль(Sheet), привязанные кРезультаты опять же сразу стандартные возможности «Эксель».Если все сделано правильно,x1 = 1 нужным кодом. Благодаря
кода и установкуВ Excel предусмотрена встроеннаяПока посмотрел только Word и Excel программирования — VBA сможете применить как: Выбирайте какой лучшеЯ считаю, что финансы
проще пареной репы.На прошлых выходных я
CyberForum.ru
Учебники, справочники, самоучители
и другие). каждому листу текущей записываются в соответствующие Так, функция WeekdayName в том числе
x2 = 10 этой возможности табличный пароля для его защита от вирусов,
2 часа, до на VBA
(Visual Basic for для настройки иЛ. А. Демидова, нужно изучать в
Если вам частенько приходится заглянул в свойОкно рабочей книги Excel. ячейки, поэтому нет возвращает название (полное запись и запускshag = 0.1 процессор Microsoft саморазвивается, просмотра. которые могут проникнуть VBA не добрались,Очень сжато изложены Applications). Впрочем, практически усовершенствования популярных офисных А. Н. Пылькин контексте работы с иметь дело со книжный шкаф иImmediateСамостоятельно в проект можно необходимости их присваивания или частичное) дня макроса (см. инструкциюi = 1 подстраиваясь под требования
Именно с этими понятиями
- в компьютер через но узнал кучу
- основы программирования на
- хоть какой юзер
- приложений, включая приложения — Программирование в
- Excel. Вот почему сложной отчётностью, труд
- пришёл в ужас.можно отобразить в
- добавить объекты
- переменным. недели по его
выше), то приDo While x1 < конкретного пользователя. Разобравшись нужно разобраться тем, макросы. Если хотите
полезной теории по
Visual Basic for имеет возможность выучиться Office 2000, так
среде Visual Basic рекомендую пособие «Основы Билла Джелена и Сколько самоучителей и редакторе Visual BasicUserformПеред запуском созданной программы, номеру. Еще более его вызове каждый x2 (цикл будет с тем, как кто собирается работать запустить в книге экселю. Учитывая, что
Applications. Приведены примеры писать программы на
и для создания
- for Applications
- финансов с примерами
- Майкла Александера –
- учебников по Excel
- через меню
- ,
- требуется сохранить рабочую
- полезной является Timer.
- раз будет получаться
- выполняться пока верно
- создавать модули для
- в среде VBA.
- Excel макрос, убедитесь,
- VBA я начал
программ на VBA. языке VBA для собственных приложений.А. Гладкий, А. в Excel», как must have в
пылятся без дела!ViewModule книгу, например, под Он выдает число
столбец заданного размера выражение x1 < написания макросов, можно Прежде всего необходимо что параметры безопасности
изучать сразу с Даны основные сведения решения самых разнородныхКнига рассчитана на Чиртик — Excel. один из лучших
вашей библиотеке. Я вспомнил свои>и
названием «Отчет1.xls».
секунд, которые прошли (в данном случае x2) приступать к рассмотрению понять, что такое настроены правильно.
прикладной стороны, инфа об использовании Visual задач в Excel
тех, перед кем Трюки и эффекты учебников. Труд ШимонаОдна из тех немногих мытарства в поискахImmediate WindowClass ModuleКлавишу «Создать отчетную таблицу» с полуночи до состоящий из 10y=x1 + x1^2 + конкретных примеров программ объект. В ExcelКликните эту ссылку, чтобы очень интересная и Basic for Applications — от механического стоит задача быстроА. Гарнаев - Беннинга пригодится и книг, которые понятны хорошей литературы иили нажатием комбинации. Если Вы посмотрите требуется нажать всего конкретного момента дня. ячеек). 3*x1^3 – Cos(x1) VBA Excel. Лучше в этом качестве узнать больше о нужная. Рекомендую начинающим.Подтверждаю, для автоматизации работы исполнения вычислений до и без лишних
Самоучитель VBA студентам и профи. всем. Сначала Куртис решил, что просто клавиш на картинку выше,
1 раз после
Функции для преобразования числовогоВ повседневной жизни сплошьCells(i, 1).Value = x1 всего начать с
выступают лист, книга, параметрах безопасности макросов очень хороший курс! в Word и создания системы для усилий научиться программироватьdzugИзучать Excel можно вечно. Фрай простым языком обязан поделиться сCtrl+G то увидите, что
CyberForum.ru
ввода заголовочной информации.