C, PHP, VB, .NET

Дневникът на Филип Петров


* Въведение във VBA за Microsoft Office

Публикувано на 26 септември 2015 в раздел Макроси VBA.

Повечето примери, които ще покажем с VBA, ще са в различни продукти на Microsoft Office. За нашия първи пример ще използваме Excel, но той би работил в която и да е Office друга програма. Преди да започнем, трябва да добавим „Developer“ менюто. Това става като отидете на File > Options > Customize Ribbon, добавете отметка на Developer и натиснете ОК. Последователността е показана с червени стрелки на следната картинка:

enable-developer-ribbon

Ще видите ново меню „Developer“ с редица контроли. Първият бутон е „Visual Basic“ – с него отваряме редактора на VBA:

vba-editor

По-бърз начин да направим това е чрез клавишната комбинация ALT+F11. Вътре в редактора ще видите, че вече има два обекта – Sheet1 и ThisWorkbook. Sheet1 очевидно е стартовата таблица в новия документ – ако добавите още таблици, те ще се появят като обекти в списъка. ThisWorkbook е обект за документа като цяло. Когато маркирате едно от тях, ще видите че под тях се появяват различни опции в „Properties“. Ако цъкнете два пъти с левия бутон на мишката върху обект, вдясно ще се отвори текстови редактор за писане на код. Ако пишете код в обекта „Sheet1“, той ще има ефект само върху таблицата Sheet1. Ако пишете код в ThisWorkbook, той ще има ефект върху всички таблици в документа.

Нека напишем нашата първа VBA програма. Отворете Sheet1 и напишете следния код:

Sub HelloWorld()
 MsgBox "Hello World!"
End Sub

За да го изпълните, натиснете триъгълника в лентата с инструменти. Алтернативно може да използвате Run > Rub Sub/UserForm от главното меню или (за най-бързо) просто натиснете F5 от клавиатурата.

hello-world-vba

Вашата първа програма ще се изпълни. В случая тя е просто един диалогов прозорец (MsgBox) с надпис „Hello World!“ и бутон OK:

message-box

Нека се върнем към кода. „Sub“ е съкратено от Subroutine или на български език „Подпрограма“. Кодът на всяка подпрограма се намира между Sub и неговия съответстващ End Sub оператор. HelloWorld е името на нашата подпрограма. Празните скоби показват, че тази подпрограма не приема никакви входни параметри – по нататък ще пишем подпрограми, които приемат такива. MsgBox „Hello World!“ е кода на нашата подпрограма, който вече знаем какво прави. Тук може да дефинирате променливи и да добавяте друг програмен код. Нека например пуснем един от елементарните примери за аритметична операция от предишната статия. Променете кода на вече написаната подпрограма по следния начин:

Sub HelloWorld()
 Dim A As Integer, B As Integer
 A = 5
 B = 6
 MsgBox A + B
End Sub

Като изпълните програмата ще видите диалогов прозорец с числото 11. Изпробвайте примерите от предишната статия, като отпечатвате резултата от тях в MsgBox.

 



Добави коментар

Адресът на електронната поща няма да се публикува


*