6
Еxcel&VBA.. Хамгийн өргөн ашиглагддаг хэрэглээний програмуудын нэг билээ. Сая сая хэрэглэгч Excel-ийг бүртгэл, тооцоололд ашиглахаас гадна төрөл бүрийн маягт, анкет мэтийн бичиг баримтын загвар боловсруулах, график байгуулах зэрэг олон зориулалтаар ашигласаар ирсэн. Excel нь Macro, Visual basic, Control toolbox, Form гэх мэт томоохон контентуудыг өөртөө агуулж байдаг бөгөөд маш өргөн боломж бололцоог хэрэглэгчдэд олгодог гэдгийг зарим хэрэглэгчид мэддэггүй. Excel-ийг бүрэн хүчин чадлаар нь ашиглахын тулд та эдгээр контентуудын талаар ойлголттой байх шаардлагатай. CONTROL TOOLBOX Хэрэв таны дэлгэцнээ Control Toolbox хэрэгслүүд харагдахгүй байгаа бол View | Toolbars | Control Toolbox командаар гаргаж болно. • Label Энэ хэрэгсэл нь аливаа формд текст оруулж өгнө. Label нь гарчиг эсвэл тайлбар тэмдэглэгээг харуулахад ихэвчлэн ашигладаг. Label-ийн шинж чанарыг өөрчилснөөр өнгө, фонт, байрлал зэргийг тодорхойлж болно. • Textbox Энэ хэрэгсэл нь ерөнхийдөө Label-тай адил боловч формыг ашиглагчдад өөрчлөлт хийх боломж олгодгоороо ялгаатай юм. • Combobox ComboBox нь урьдчилан оруулж өгсөн текстүүдийн жагсаалт бүхий сонголтын хэрэгсэл. • Listbox Энэ хэрэгсэл нь Combox-ийн адил сонголт хийх зориулалттай боловч бүх сонголт нэг дор харагддагаараа ялгаатай. • CommandButton Энэ хэрэгсэл нь формын хувьд хамгийн өргөн хэрэглэгддэг элемэнт юм. Аливаа програмын Ok болон Cancel товч нь CommandButton-ны жишээ юм. • Frame Frame нь бүлэг хэрэгслүүдэд гарчиг өгөх, бусад хэрэгслүүдээс тусгаарлах үүрэгтэй. Аливаа формд Frame-ийг ашиглахдаа бусад хэрэгслүүдээс өмнө оруулж өгөх шаардлагатай. • Image Энэ хэрэгслийг ашиглан формд зураг оруулах боломжтой.

001 vba

Embed Size (px)

Citation preview

Еxcel&VBA..

Хамгийн өргөн ашиглагддаг хэрэглээний програмуудын нэг билээ. Сая сая

хэрэглэгч Excel-ийг бүртгэл, тооцоололд ашиглахаас гадна төрөл бүрийн маягт,

анкет мэтийн бичиг баримтын загвар боловсруулах, график байгуулах зэрэг олон

зориулалтаар ашигласаар ирсэн. Excel нь Macro, Visual basic, Control toolbox, Form

гэх мэт томоохон контентуудыг өөртөө агуулж байдаг бөгөөд маш өргөн боломж

бололцоог хэрэглэгчдэд олгодог гэдгийг зарим хэрэглэгчид мэддэггүй. Excel-ийг

бүрэн хүчин чадлаар нь ашиглахын тулд та эдгээр контентуудын талаар ойлголттой

байх шаардлагатай.

CONTROL TOOLBOX

Хэрэв таны дэлгэцнээ Control Toolbox хэрэгслүүд харагдахгүй байгаа бол View | Toolbars |

Control Toolbox командаар гаргаж болно.

• Label

Энэ хэрэгсэл нь аливаа формд текст оруулж өгнө. Label нь гарчиг эсвэл тайлбар

тэмдэглэгээг харуулахад ихэвчлэн ашигладаг. Label-ийн шинж чанарыг өөрчилснөөр өнгө, фонт,

байрлал зэргийг тодорхойлж болно.

• Textbox

Энэ хэрэгсэл нь ерөнхийдөө Label-тай адил боловч формыг ашиглагчдад өөрчлөлт хийх

боломж олгодгоороо ялгаатай юм.

• Combobox

ComboBox нь урьдчилан оруулж өгсөн текстүүдийн жагсаалт бүхий сонголтын хэрэгсэл.

• Listbox

Энэ хэрэгсэл нь Combox-ийн адил сонголт хийх зориулалттай боловч бүх сонголт нэг дор

харагддагаараа ялгаатай.

• CommandButton

Энэ хэрэгсэл нь формын хувьд хамгийн өргөн хэрэглэгддэг элемэнт юм. Аливаа програмын

Ok болон Cancel товч нь CommandButton-ны жишээ юм.

• Frame

Frame нь бүлэг хэрэгслүүдэд гарчиг өгөх, бусад хэрэгслүүдээс тусгаарлах үүрэгтэй. Аливаа

формд Frame-ийг ашиглахдаа бусад хэрэгслүүдээс өмнө оруулж өгөх шаардлагатай.

• Image

Энэ хэрэгслийг ашиглан формд зураг оруулах боломжтой.

Аль ч хэрэгслүүдийн хувьд шинж чанарыг нь тодорхойлж өгснөөр та өөрийн хэрэгцээ

шаардлагадаа тохируулан ашиглах боломжтой юм. Гэвч хэрэгсэл тус бүр нь өөр хоорондоо

ялгаатай шинж чанартай байдаг. Зарим хэрэгсэлд байгаа шинж чанар бусад хэрэгсэлд байхгүй

байж болдог.

MACRO

Хэрэв та Excel-ийг их ашигладаг бол хавтас, нүдтэй хэрхэн ажиллах, өгөгдөл, томьѐо

оруулах зэрэг ерөнхий ажиллагааг сайн мэдэх байх. Магадгүй та макро бичиж үзсэн ч байж

болох юм. Макрог ашигласнаар та Excel-ийг хэрэглэгчдийн шаардлагыг бүрэн хангасан ямар

хүчирхэг програм болохыг улам бүр мэдрэх болно. Макро нь VBA (Visual Basic for Applications)

програмчлалын хэл дээр бичигдсэн нэгэн төрлийн жижиг програмчлал юм. Macro-VBA-г ашиглан

хийх үйлдлээ програмчлан хялбарчлах, хурдасгах бүр цаашилбал шинээр функц, команд үүсгэх

боломжтой юм.

Excel дээр макро үүсгэх хоѐр арга зам бий:

1. Автоматаар

2. Кодоор

Эхний аргаар макро бичихэд та заавал програм бичих талаар мэргэжлийн мэдлэгтэй байх

шаардлагагүй юм. Харин кодоор макро бичихийн тулд VBA програмчлалын хэлний талаар

тодорхой хэмжээний ойлголттой байх хэрэгтэй.

Автоматаар макро бичих. Office-ийн сүүлийн хувилбарууд болох Office 97-2003

хувилбарууд дээр хэрэглэгчийн хийсэн үйлдэл бүрийг автоматаар бичих замаар макро үүсгэж

болдог болсон. Ингэж макрог автоматаар үүсгэхийн тулд Tools | Macro | Record New Macro

командыг сонгоно (Зураг 2). Нээгдэх Record Macro харилцах цонхны Macro Name талбарт

шинээр үүсгэх макроны нэрийг өгөх ба Description хэсэгт тухайн макрог товч тодорхойлон бичих

эсвэл багахан хэмжээний тодотгол хийж болно. Нэгэн хялбар макро бичиж үзэцгээе.

Зураг 2. Автоматаар макро бичих

Жишээ 1. Дурын 10 тоо үүсгэж тэдгээрийг өсөх эрэмбээр байрлуулдаг макро бичье.

1. Tools | Macro | Record New Macro командыг сонгоно

2. Бичих гэж буй макродоо RandTenNum гэж нэрлэж Macro Name талбарт оруулж өгнө.

3. ОК товчлуурыг дарна. Үүний дараа Excel таны хийсэн бүх үйлдлийг автоматаар бичих

болно. Яг л камераар зураг авахтай адил...

4. Бичилт явагдаж эхэлсний дараа хийгдэх эхний үйлдэл бол тоонуудаа үүсгэх явдал юм.

Үүний тулд A1 нүдийг сонгож =rand() гэсэн томьѐог оруулна. Энэ томьѐо нь санамсаргүйгээр 0-

ээс 1-ийн хооронд тоог үүсгэдэг.

5. A2:A10 нүдэнд дээрх томьѐог хуулна. Ингэснээр санамсаргүйгээр үүсгэсэн 10 тоо бэлэн

болно.

6. A1:A10 мужийг сонгож Data | Sort командаар өсөх (Ascending) эрэмбээр эрэмбэлнэ.

7. Дээрх үйлдлүүдийг хийж гүйцэтгэсний дараа Stop товчлуурыг дарж макро бичилтийг

зогсооно.

Кодоор макро бичих. VBA кодоор маш өргөн цар хүрээ бүхий макро бичиж болдог.

Ингэхийн өмнө макро хаана бичигддэг болон хадгалагддаг болохыг мэдэх хэрэгтэй. Бичигдэж

буй бүх макро нь VBA project-д агуулагддаг бөгөөд Visual Basic Editor-оор дамжин ажилладаг.

Visual Basic Editor-ыг нээхийн тулд Alt+F11 дарах эсвэл Tools | Macro | Visual Basic Editor

командыг ашиглана (Зураг 3).

Зураг 3. Visual Basic цонх

Кодоо бичихийн тулд Visual basic цонхны Insert | Module командыг сонгоно. Шинээр

нээгдэх цонхонд макро командын кодыг оруулж өгнө.

Жишээ 2. Хялбархан боловч автоматаар бичих боломжгүй нэгэн макрог кодоор бичье.

1. Tools | Macro | Visual Basic Editor командыг сонгоно.

2. Visual basic цонхны Insert | Module командыг сонгоно.

3. Дараах кодыг бичнэ:

Sub First_Macro()

MsgBox “Hello”

End Sub

4. Save команд эсвэл Ctrl+S товчийг дарж хадгална.

Макрог ажиллуулах ба засварлах. Макрог автоматаар эсвэл кодоор бичсэн эсэхээс үл

хамааран ажиллуулах болон засварлах горим нь ижил юм. Макрог Excel ба Visual Basic-ын

алинаас нь ч ажиллуулж болно. Visual Basic дээр макрог ажиллуулахдаа play эсвэл F5 товчийг

ашиглана. Харин Excel дээр:

1. Tools | Macro | Macros командыг сонгоно.

2. Нээгдэх Macros харилцах цонхны Macro name талбараас ажиллуулах макрогийн нэрийг

сонгоно.

3. Run товчлуур дээр дарна.

4. Хэрэв засварлах бол Edit товчлуур дээр дарна.

Одоо өргөн ашиглагдаж болох зарим жишээг авч үзэцгээе. Хэрэв та VB-ийн талаар

мэдлэггүй бол кодыг шууд хуулахыг зөвлөж байна. Бидний гол зорилго бол код биш харин

түүний эцсийн үр дүн юм. Дараах жишээгээр Excel дээр VB ашиглан хэрхэн шинэ томьѐо үүсгэж

болохыг харъя.

Хэн үүнийг хийсэн бэ?

Excel нь мэдээллийн шинж чанартай олон функцуудыг агуулж байдаг. Жишээ нь CELL,

INFO… г.м. Гэвч тухайн файлыг хэн, хэзээ бэлтгэсэн талаар мэдээллийг харуулдаг функц

байдаггүй. Мэдээж та File | Properties командаар хэн энэ файлыг үүсгэсэн талаар мэдээллийг авч

болно. Бидний зорилго VBA ашиглан хэрхэн томьѐо шинээр үүсгэх гэдгийг дээр дурьдсан.

Нээлттэй байгаа файлыг хэн хэзээ үүсгэснийг илэрхийлдэг WHO хэмээх функцийг VBA код

ашиглан шинээр үүсгэе. Үүний тулд VB дээр дараах кодыг оруулж өгнө.

Function WHO()

temp = “Created by “

Dim Workbook As Workbook

Set Workbook = Application.ActiveWorkbook

For Each property In Workbook.BuiltinDocumentProperties

On Error Resume Next

If property.Name = “Author” Then temp = temp & property.Value

If property.Name = “Creation date” Then temp = temp & “ on “ & property.Value

Next property

WHO = temp

End Function

Аливаа холбоос болж буй үгний хоѐр талд зай авахаа мартаж болохгүй. Дээрх жишээний

хувьд “on” гэсэн үг холбоос болж байна. Кодоо бичсэний дараа дурын нүдэнд =WHO() гэсэн

функцийг оруулж өгөхөд бидний хүсэж буй мэдээлэл гарч ирнэ.

Нүдийг хэрхэн анивчдаг болгох вэ?

Хэрэв та хэн нэгэнд зориулан файл бэлтгэх үед хэрэглэгчийн анхаарлыг зарим нүд, муж

дээр илүү их хандуулах шаардлага гарч болох юм. Microsoft word дээр нь энэ нь тун энгийн

байдаг (Format>Font>Text Effect). Харин Microsoft Excel дээр VBA ашиглах шаардлагатай болно.

Үүний тулд:

1. Tools > Macro > Visual Basic Editor –г сонгоно.

2. Visual Basic Editor-ийн Insert цэснээс Module командыг сонгоно

3. Гарч ирэх талбарт дараах кодыг хуулж бичнэ..

Public NextFlash As Double

Public Const FR As String = “Sheet1!A1”

Sub StartFlashing()

If Range(FR).Interior.ColorIndex = 3 Then

Range(FR).Interior.ColorIndex = xlColorIndexNone

Else

Range(FR).Interior.ColorIndex = 3

End If

NextFlash = Now + TimeSerial(0, 0, 1)

Application.OnTime NextFlash, “StartFlashing”, , True

End Sub

Sub StopFlashing()

Range(FR).Interior.ColorIndex = xlColorIndexNone

Application.OnTime NextFlash, “StartFlashing”, , False

End Sub

Кодны 2 дахь мөрөнд анивчих нүдний хаягийг зааж өгсөн. Хэрэв та өөр нүд анивчуулахыг

хүсвэл хаягийг нь солиход хангалттай.

Visual Basic ба Excel-ийг хослуулан ашиглах талаар илүү гүнзгийрүүлэн үзэхийг хүсвэл

дараах эх сурвалж (Resource) -уудыг ашиглахыг зөвлөж байна

1. Microsoft Visual Basic Help

2. http://www.j-walk.com (John Walkenbach-ийн хувийн сайт)

3. http://www.excel-vba-access.com/

4. http://www.lacher.com/toc.htm

5. http://office.microsoft.com