1. Trang chủ
  2. » Kỹ Thuật - Công Nghệ

giáo trinh vba autocad và excel

133 80 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 133
Dung lượng 2,14 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Mô hình đối tượng trong AutoCad Trong AutoCad có rất nhiều đối tượng khác nhau như: - Các đối tượng hình học như Line, Circle, Mtext, Text… - Các đối tượng phi hình học như: Layer, Line

Trang 1

PHỤ LỤC

Chương 1 8

TỔNG QUAN VỀ VBA TRONG AUTOCAD 8

1.1 Khái niệm dự án nhúng và dự án độc lập 8

1.2 Trình quản lý dự án VBA 8

1.3 Định nghĩa lệnh mới bằng Autolisp 9

Chương 2 11

HỆ THỒNG ĐỐI TƯỢNG VÀ MỘT SỐ THAO TÁC CƠ BẢN TRONG AUTOCAD 11

2.1 Mô hình đối tượng trong AutoCad 11

2.2 Một số đối tượng chính trong AutoCad 12

2.1.1 Đối tượng Application 12

2.1.2 Khái niệm tập đối tượng 12

2.1.3 Tập đối tượng Documents và đối tượng Document 12

2.2 Các thao tác cơ bản trong AutoCad 13

2.2.1 Mở bản vẽ - Phương thức Open 13

2.2.2 Tạo bản vẽ mới – Phương thức Add 13

2.2.3 Lưu bản vẽ -Phương thức Save, SaveAs 14

2.2.4 Đóng bản vẽ - Phương thức Close 15

2.2.5 Thoát khỏi chương trình AutoCad – Phương thức Quit 16

Chương 3 17

CÁC KIỂU DỮ LIỆU VÀ CÁCH KHAI BÁO BIẾN TRONG VBA 17

3.1 Những quy đinh về cú pháp trong VBA 17

3.2 Khai báo biến trong VBA 18

3.2.1 Tổng Quát 18

3.2.2 Cách thức khai báo biến 18

Trang 2

3.3 Các kiểu dữ liệu cơ bản trong VBA 19

3.3.1 Kiểu Logic – Boolean 19

3.3.2 Kiểu số nguyên – Byte/Integer/Long 20

3.3.3 Kiểu số thực – Single/Double 20

3.3.4 Kiểu Chuỗi – String 21

3.3.5 Kiểu Mảng 21

3.3.6 Kiểu Variant 23

Chương 4 24

TOÁN TỬ VÀ CÁC HÀM THÔNG DỤNG 24

4.1 Các hàm số học trong VBA 25

4.2 Các toán tử so sánh thường sử dụng trong VBA 26

4.3 Toán tử Logic thường dùng trong VBA 27

4.3.1 Toán tử AND 27

4.3.2 Toán tử OR 28

4.3.3 Toán tử NOT 29

4.4 Các hàm chuyển đồi dữ liệu 29

4.5 Các hàm xử lý chuỗi 30

4.5.1 Hàm LEFT 30

4.5.2 Hàm RIGHT 30

4.5.3 Hàm MID 30

4.5.4 Hàm LEN 31

4.5.5 Hàm UCase 31

Trang 3

4.5.9 Hàm Ltrim, RTrim 35

4.5.10 Hàm Space 36

4.5.11 Hàm Split 36

4.5.12 Hàm Replace 38

4.5.13 Hàm StrComp 39

Chương 5 41

CẤU TRÚC ĐIỀU KIỆN VÀ VÒNG LẶP 41

5.1 Cấu Trúc Điều Kiện 41

5.1.1 Cấu trúc : “If … Then …” 41

5.1.2 Cấu trúc : “If … Then… Else … End If” 42

5.1.3 Cấu trúc : “If … Then… Else … End If” mở rộng 43

5.1.4 Cấu trúc: “Select Case … Case…End Select” 44

5.2 Cấu Trúc Vòng Lặp 45

5.2.1 Cấu trúc: “For … Next” 45

5.2.2 Cấu trúc : “For Each … Next” 47

5.2.3 Cấu trúc : “Do While … Loop” 48

5.2.4 Cấu trúc : “Do … Loop While” 48

5.2.5 Cấu trúc : “Do Until … Loop” 49

5.2.6 Cấu trúc : “Do … Loop Until ” 49

Chương 6 50

CÁC HÀM NHẬP LIỆU 50

6.1 Phương thức : Prompt 51

6.2 Phương thức: GetString 52

6.3 Phương thức : GetPoint 53

6.4 Phương thức : GetInteger và GetReal 54

Trang 4

6.5 Phương thức : GetDistance 55

6.6 Phương thức : GetKeyWord 56

6.7 Phương thức GetEntity 57

6.8 Phương thức: GetCorner 58

6.9 Phương thức : InitializeUserInput 59

Chương 7 61

TẠO MỚI ĐỐI TƯỢNG TRONG AUTOCAD 61

7.1 Xác định nơi chứa đối tượng 62

7.2 Khai báo và phương thức tạo đối tượng hình học 63

7.2.1 Tạo đường thẳng –Phương thức AddLine 63

7.2.2 Tạo đối tượng LWPolyline - Phương thức AddLightWeightPolyline 64

7.2.3 Tạo đối tượng đường tròn – Phương thức AddCircle 65

7.2.4 Tạo đối tượng cung tròn –Phương thức AddArc 66

7.2.5 Tạo đối tượng văn bản đơn - phương thức AddText 67

7.2.6 Tạo đối tượng văn bản nhiều dòng-Phương thức AddMtext 68

Chương 8 69

LÀM VIỆC VỚI ĐỐI TƯỢNG SELECTIONSET 69

8.1 Quy trình làm việc với đối tượng SelectionSet 70

8.2 Khai báo và khởi tạo đối tượng SelectionSet 70

8.3 Thêm đối tượng vào trong một SelectionSet 71

8.3.1 Phương thức AddItems 72

8.3.2 Phương thức Select 73

Trang 5

8.4.1 Lọc theo một điều kiện 77

8.4.2 Lọc theo nhiều điều kiện 78

8.5 Một số phương thức khác của đối tượng SelectionSet 80

8.5.1 Phương thức RemoveItems 80

8.5.2 Phương thức Clear 82

8.5.3 Phương thức Eraser 82

8.5.4 Phương thức Delete 82

Chương 9 84

HIỆU CHỈNH CÁC ĐỐI TƯỢNG HÌNH HỌC 84

9.1 Tổng quan về việc hiệu chỉnh các đối tượng hình học bằng VBA 85

9.2 Sao chép đối tượng – Phương thức Copy 85

9.3 Xóa đối tượng –Phương thức Delete 86

9.4 Di chuyển đối tượng – Phương thức Move 86

9.5 Lấy đối xứng – Phương thức Mirror 88

9.6 Phương thức OffSet 89

9.7 Xoay đối tượng – Phương thức Rotate 90

9.8 Thay đổi tỉ lệ đối tượng – Phương thức ScaleEntity 92

9.9 Thay đổi màu đối tượng – Thuộc tính Color 93

9.10 Thay đổi Layer cho đối tượng – Thuộc tính Layer 95

9.11 Thay đổi kiểu đường cho đối tượng – Thuộc tính LineType 96

9.12 Thay đổi bề rộng nét vẽ của đối tượng – Thuộc tính LineWeight 98

Chương 10 100

LÀM VIỆC VỚI ĐỐI TƯỢNG LAYER 100

10.1 Duyệt qua tập đối tượng Layers 101

10.2 Khai báo và khởi tạo một Layer mới – Phương thức Add 101

Trang 6

10.3 Đổi tên của Layer – Thuộc tính Name 102

10.4 Thiết lập một Layer hiện hành 103

10.5 Gán màu cho một Layer – Thuộc tính Color 103

10.6 Gán kiểu đường cho một Layer – Thuộc tính LineType 105

10.7 Gán LineWeight cho một Layer – Thuộc tính LineWeight 107

10.8 Một số thuộc tính khác của đối tượng Layer 109

10.8.1 Bật, Tắt Layer – Thuộc tính LayOn 109

10.8.2 Đông cứng, Làm tan Layer – Thuộc tính Freeze, UnFreeze 110

10.8.3 Khóa, Mở Khóa Layer – Thuộc tính Lock, UnLock 110

10.8.4 Xóa Layer – Thuộc tính Delete 111

Chương 11 112

LÀM VIỆC VỚI ĐỐI TƯỢNG BLOCK 112

11.1 Duyệt qua tập đối tượng Block 113

11.2 Khai báo và khởi tạo một Block 113

11.3 Đổi tên Block – Thuộc tính NAME 114

11.4 Xóa một Block – Thuộc tinh Delete 115

11.5 Chèn Block vào trong bản vẽ - Phương thức InsertBlock 117

11.6 Phá vỡ một Block – Phương thức Explode 120

11.7 Block chứa thuộc tính – Attributes 122

11.7.1 Tạo thuộc tính cho Block –Phương thức AddAttribute 122

11.7.2 Thao tác với thuộc tính – Phương thức GetAttributes 125

11.8 Làm việc với bản vẽ tham khảo ngoài – External References 127

Trang 7

11.8.3 Tải lại tham chiếu ngoài – Phương thức Reload 130

11.8.4 Loại bỏ tham chiếu ngoài ra khỏi bản vẽ - Phương thức Unload 131

11.8.5 Ràng buộc tham chiếu ngoài – Phương thức Bind 132

TÀI LIỆU THAM KHẢO 133

Trang 8

Chương 1 TỔNG QUAN VỀ VBA TRONG AUTOCAD 1.1 Khái niệm dự án nhúng và dự án độc lập

 Những chức năng được lập trình trong dự án VBA nhúng chỉ có hiệu lực đối với bản vẽ chứa nó do đó muốn sử dụng những chứa năng này cho những bản vẽ khác người dùng buộc phải sao chép dự án VBA đó

Trong Autocad việc quản lý dự án VBA được thực hiện dễ dàng = thông qua trình quản lý dự

án – VBA Manager.Để hiển thị VBA Manager chọn Tool -> Macros -> VBA Manager (Hoặc đánh lệnh VBAMAN)

Trang 9

Ý nghĩa một số thành phần trong trình quản lý dự án

 New : Tạo mới dự án VBA (Mặc định là dự án độc lập)

 Save As : Lưu dự án VBA

 Load : Tải dự án VBA vào trong VBAIDE.Người dùng được yêu cầu chọn tệp dự án

VBA (*.dvb) để Load vào

 Macros : Hiển thị trình quản lý Macros

 Visual Basic Editor : Hiển thị môi trường VBAIDE, đây là môi trường thực hiện viết mã

lệnh và thiết kế giao diện chương trình

1.3 Định nghĩa lệnh mới bằng Autolisp

Việc định nghĩa lệnh mới bằng Autolisp sẽ làm cho quá trình thực thi Macro đơn giản đi rất nhiều Autolisp chính là chiếc cầu nối tạo sự liên kết giữa dòng lệnh của AutoCad với các Macro trong dự án VBA

Để các lệnh mới có hiệu lực ngay khi AutoCad khởi động thì người lập trình cần lưu dự án VBA thành tệp có tên là ACAD.DVB và tệp Autolisp có tên là ACAD.LSP và cả hai tệp này

phải được lưu vào thư mục Support của AutoCad.Hai tệp này sẽ tự động được tải lên ngay

sau khi AutoCad khởi động và người dùng có thể sử dụng các lệnh tự định nghĩa

Trang 10

Cách tạo file Autolisp

 Tại một thư mục bất kỳ, nhấn chuột phải, chọn New -> Text Document

 Đổi tên file vừa tạo thành tên file ta muốn với phần mở rộng LSP (thay vì txt)

 Trong trường hợp Window của bạn đang bỏ chế độ hiển thị đuôi mở rộng, hãy Open file Text vừa tạo, Save As file thành dạng “Tên_file.LSP” Chú ý2 dấu “” để đảm bảo file sẽ chuyển thành đuôi mở rộng LSP

Cách thức định nghĩa lệnh mới bằng AutoLisp

Trang 11

Chương 2

HỆ THỒNG ĐỐI TƯỢNG VÀ MỘT SỐ THAO TÁC CƠ BẢN TRONG AUTOCAD 2.1 Mô hình đối tượng trong AutoCad

Trong AutoCad có rất nhiều đối tượng khác nhau như:

- Các đối tượng hình học như Line, Circle, Mtext, Text…

- Các đối tượng phi hình học như: Layer, Linetype, Dimension …

- Và ngay cả bản vẽ, bản thân chương trình AutoCad cũng là một đối tượng (Đối tượng Application)

Mỗi đối tượng trong Autocad đều có những thuộc tính và các phương thức đặc trưng của nó

Trang 12

2.2 Một số đối tượng chính trong AutoCad

2.1.1 Đối tượng Application

Đối tượng Application là đối tượng gốc trong mô hình đối tượng của AutoCad.Từ đối tượng này ta có thể truy xuất đến bất kỳ đối tượng nào.Đối tượng Application là một đối tượng toàn cục nghiã là mọi phương thức và thuộc tính của nó đều có hiệu lực trong môi trương VBAIDE

Một số phương thức thường dùng của đối tượng Application:

Phương thức Update – Phương thức này cập nhật lại các thay đổi

 Phương thức Zoom như ZoomAll, ZoomExtents…

Phương thức Quit – Thoát khỏi chương trình AutoCad

2.1.2 Khái niệm tập đối tượng

Trong Autocad các đôi tượng được tổ chức hầu hết trong Tập đối tượng.Ví dụ các đối

tượng hình học được quản lý trong tập đối tượng ModelSpace, PaperSpace hoặc

Blocks.Các đối tượng phi hình học như Layer, DimStyle, TextStyle được quản lý trong các tập đối tượng tương ứng như Layers, DimStyles, TextStyles…

2.1.3 Tập đối tượng Documents và đối tượng Document

Tập đối tượng Documents là một tập chứa tất cả các bản vẽ đang được mở

Một số phương thức của tập đối tượng Documents :

Phương thức Add : Sử dụng để tạo một bản vẽ mới

Phương thức Open : Sử dụng để mở một bản vẽ có sẵn

Phương thức Close : Sử dụng để đóng tất cả các bản vẽ đang được mở

Đối tượng Document, thực chất là một bản vẽ AutoCAD đang được mở thuộc tập đối

tượng Documents.Đối tượng này chứa tất cả các đối tượng hình học và phi hình học trong một bản vẽ AutoCAD cũng như chứa hầu hết các đối tượng khác của bản vẽ như

Trang 13

2.2 Các thao tác cơ bản trong AutoCad

2.2.1 Mở bản vẽ - Phương thức Open

Để mở một bản vẽ ta sử dụng phương thức OPEN có trong tập đối tượng Documents.Bản

vẽ vừa được mở sẽ trở thành bản vẽ hiện hành

2.2.2 Tạo bản vẽ mới – Phương thức Add

Để tạo bản vẽ mới sử dụng phương thức ADD có trong tập đối tượng Documents

 Cú pháp

Set DocObj = Documents.Add ([TemplateName])

Trang 14

 Ví dụ

2.2.3 Lưu bản vẽ -Phương thức Save, SaveAs

Để lưu bản bản vẽ ta dùng phương thức SAVE (lưu với tên hiện hành) hoặc phương thức SAVEAS (lưu với tên khác) có trong đối tượng Thisdrawing

 Cú pháp

Thisdrawing.Save Thisdrawing.SaveAs FileName [, FileType]

FileType

Tham số tùy chọn – Xác định kiểu bản vẽ sẽ được lưu

 acR14_DWG : Tệp AutoCAD Release14/LT97 DWG (*.dwg)

 acR14_DXF : Tệp AutoCAD Release14/LT97 DXF (*.dxf)

 acR15_DWG: Tệp AutoCAD 2000 DWG (*.dwg)

 acR15_DXF: Tệp AutoCAD 2000 DXF (*.dxf)

 acR15_Template : Tệp AutoCAD 2000 Drawing Template File

Trang 15

FileName

Tham số tùy chọn, kiểu String –Chuỗi thể hiện tên bản vẽ (bao gồm đường dẫn và phần mở rộng) trong trường hợp bản vẽ chưa lưu lần nào

 Ví dụ

Trang 16

2.2.5 Thoát khỏi chương trình AutoCad – Phương thức Quit

Để thoát khỏi AutoCad chúng ta sử dụng phương thức Quit có trong đối tượng

Application.Nếu có bản vẽ hoặc dự án nào chưa được lưu AutoCad sẽ nhắc người dùng lưu sau đó mới thoát

 Cú pháp

Application.Quit

Trang 17

Chương 3 CÁC KIỂU DỮ LIỆU VÀ CÁCH KHAI BÁO BIẾN TRONG VBA

3.1 Những quy đinh về cú pháp trong VBA

- Những câu lệnh là những dòng riêng biệt.Nếu có nhiều câu lệnh trên cùng một dòng thì các câu lệnh ngăn cách nhau bằng dấu hai chấm (:),nếu dòng lệnh quá dài thì muốn ngắt xuống

dòng thì ta dùng “khoảng trắng + _”

- Nếu muốn chèn thêm dòng chú thích thì ta dùng dấu nháy đơn (‘)

- Quy tắc đặt tên biến

 Ký tự đầu tiên bắt buộc phải là chữ cái

 Không chứa khoảng trắng, dấu chấm (.), dấu chấm than(!), hoặc các ký tự đặc biệt như

@, #, &, $

 Tên biến không dài quá 255 ký tự

 Tên biến không trùng với các từ khóa trong VBA (Xem danh sách một số từ khóa

thường sử dụng trong VBA)

 Trong một SUB không được đặt tên biến trùng nhau

- Một số từ khóa thường sử dụng trong VBA

Trang 18

3.2 Khai báo biến trong VBA

 Biến toàn cục : Phạm vi hoạt động của biến là toàn bộ dự án, bất kỳ nơi đâu trong dự án

(bất kể Modul, UserForm ) cũng có thể sử dụng được biến này

 Nếu một biến được khai báo với từ khóa DIM thì mặc định biến đó là biến cục bộ.Phạm

vi hoạt động của biến này được giới hạn trong SUB

 Nếu một biến được khai báo với từ khóa PRIVATE thì phạm vi hoạt động của biến là

trong nội bộ Modul đó thôi, tất cả các SUB thuộc Modul đó đều sử dụng được nhưng không thể truy cập từ một Modul hay UserForm khác

 Nếu một biến được khai báo với từ khóa PUBLIC thì phạm vi hoạt động của biến là

trong toàn bộ dự án nghĩa là bất kỳ trong Modul, UserForm nào cũng có thể sử dụng

được biến này

Chú ý : Không dùng từ khóa PRIVATE, PUBLIC cho việc khai báo biến nằm bên trong một SUB

3.2.2 Cách thức khai báo biến

 Khai báo hằng số

Hằng số là một loại biến đặc biệt mà giá trị của nó được xác định ngay lúc khai báo và luôn không thay đổi.Cách này thường được sử dụng cho những hằng số hay dùng trong chương trình như π = 3.141596254

Trang 19

 Cú pháp

[Public/Private] Const <Tên_Hằng> = <Giá trị hằng số>

 Ví dụ

Public Const Pi = 3.141592654

 Khai báo biến

[Dim/Public/Private] <Tên_biến> As <Kiểu dữ liệu>

 Khai báo mảng tĩnh

[Dim/Public/Private] <Tên mảng> (thông số về chiều) As <Kiểu dữ liệu>

 Khai báo mảng động

[Dim/Public/Private] <Tên mảng> () As <Kiểu dữ liệu>

3.3 Các kiểu dữ liệu cơ bản trong VBA

3.3.1 Kiểu Logic – Boolean

Biến kiểu Boolean chỉ chứa hai giá trị TRUE và FALSE Giá trị mặc định ban đầu của biến kiểu Boolean là FALSE

Trang 20

3.3.2 Kiểu số nguyên – Byte/Integer/Long

 Cú pháp

[Dim/Public/Private] <Tên_Biến> As [Byte/Integer/Long]

Byte, Integer, Long đều là các từ khóa khai báo kiểu số nguyên nhưngchúng chỉ khác nhau

về giới hạn giá trị mà biến có thể nhận được

 Ví dụ

Dim lngA as Long

Dim intB as Integer

Trang 21

3.3.4 Kiểu Chuỗi – String

Chuỗi là một hàng các ký tự liên tục nhau, số lượng ký tự trong chuỗi rất lớn.Trong VBA chuỗi được đặt trong dấu ngoặc kép “”.Giá trị mặc định ban đầu cho biến kiểu chuỗi là một

chuỗi rỗng

 Cú pháp

[Dim/Public/Private] <Tên_Biến> As String

 Ví dụ

Dim strA as String

strA = “VBA for AutoCad”

Đây là loại mảng có số phần tử không thay đổi trong suốt quá trình hoạt động của

mảng.Mảng này thường được sử dụng khi biết trước số lượng phần tử của mảng

 Cú pháp

Dim <Tên_Mảng>(Thông số mảng) As <Kiểu dữ liệu>

 Ví dụ

Dim Myarray(10) as Double ‘Mảng có 11 phần tử (Từ 0 tới 10)

Dim MyArray(1 to 10) as Double ‘Mảng có 10 phần tử

Dim MyArray(1 to 5,1 to 5) as Double ‘Mảng có 25 phần tử

Dim MyArray(1 to n,1 to m) as Variant ‘Mảng có n hàng và m cột

Trang 22

- Mảng Động

Đây là mảng có số lượng phần tử có thể thay đổi được trong lúc chương trình hoạt

động.Với mảng động người lập trình không cần biết số lượng phần tử của mảng nó sẽ được thiết lại tùy theo yêu cầu cụ thể của bài toán

 Cú pháp

Dim <Tên_Mảng>() As <Kiểu dữ liệu>

Để thay đổi số lượng phần tử của mảng chúng ta sử dụng từ khóa REDIM

 Cú pháp

ReDim <Tên_Mảng> (Thông số mảng) As <Kiểu dữ liệu>

 Ví dụ

Dim MyArray () as Long ‘Khai báo mảng MyArray là mảng động

ReDim MyArray(1 to 4) as Long >Xác định lại kích thước cho mảng

Với một mảng động mà các phần tử đã được gán giá trị khi thay đổi số lượng phần tử sẽ có hai trường hợp xảy ra

 Toàn bộ giá trị của các phần tử (thuộc mảng trước khi thay đổi) sẽ bị xóa bỏ và các phần tử của mảng mới sẽ nhận giá trị mặc định

 Toàn bộ giá trị của các phần tử (thuộc mảng trước khi thay đổi) sẽ được giữ lại nếu thỏa mãn 2 điều kiện sau

o Sử dụng từ khóa ReDim Preserve

o Sự thay đổi kích thước của mảng chỉ được thực hiện ở biên trên của chiều cuối cùng của mảng nghĩa là các phần tử cần giữa lại giá trị có chỉ số không đổi khi mảng được thiết lập lại

Trang 23

 Ví dụ

Dim MyArray () as Long ‘Khai báo mảng MyArray là mảng động

ReDim MyArray(1 to 4) as Long ‘Xác định lại kích thước cho mảng

MyArray(1) = 10: MyArray(2) = 20 ‘Gán giá trị cho các phần tử mảng

MyArray(3) = 30: MyArray(4) = 40

ReDim Preserve MyArray(1 to 5) as Long ‘Thay đổi kích thước mảng

MyArray(5) = 50 ‘Gán giá trị cho phần tử mới

Trang 24

Chương 4 TOÁN TỬ VÀ CÁC HÀM THÔNG DỤNG

Nội dung chương :

- Các hàm số học trong VBA

- Các toán tử so sánh thường dùng trong VBA

- Các tóa tử Logic thường dùng trong VBA

- Các hàm chuyển đổi thườngdùng trong VBA

- Các hàm xử lý chuỗi thường dùng trong VBA

Trang 25

Fix(x) Lấy phần nguyên trước dấu phẩy

Fix(99.8) Fix(-99.2) Fix(-99.8)

99 -99 -99

Int(x)

Lấy phần nguyên đã được làm

tròn

Int(99.2) Int(-99.2) Int(-99.8)

99 -100 -100

Sin(π/6) Cos(π/3) Tan(π/4)

½

½

1

Trang 26

Ví dụ : Dùng hàm Atn để tính giá trị của số Pi

Dim Pi as double

Pi = 4*Atn(1)

Ví dụ : Ví dụ này sẽ tạo một hàm dùng để chuyển đổi đơn vị Degree ra Radian

4.2 Các toán tử so sánh thường sử dụng trong VBA

Sử dụng toán tử so sánh trong biểu thức để so sánh hai hoặc nhiều số, chuỗi Text, các biến hoặc kết quả của các hàm

- Nếu câu lệnh Đúng -> Kết quả của công thức được trả về giá trị True

- Nếu câu lệnh Sai -> Kết quả của công thức được trả về giá trị False

Trang 27

4.3 Toán tử Logic thường dùng trong VBA

4.3.1 Toán tử AND

Sử dụng toán tử And để kiểm tra xem hai toán hạng kiểu Boolean có là True hoặc False hay

không

Bảng giá trị của toán tử AND

Mycheck = (A>B) And (B > C) -> Mycheck = True

Mycheck = (A>B) And (B < C) -> Mycheck = False

Mycheck = (A<B) And (B < C) -> Mycheck = False

Trang 28

4.3.2 Toán tử OR

Sử dụng toán tử OR để kiểm tra hai toán hạng kiểu Boolean xem một trong hai toán hạng là True hoặc là False

Bảng giá trị của toán tử OR

Dim Mycheck as Boolean

‘Gán giá trị ban đầu cho các biến

A = 10:B=8:C=6

Mycheck = (A>B) Or (B > C) -> Mycheck = True

Trang 29

4.3.3 Toán tử NOT

Toán tử NOT sẽ trả về giá trị phủ định của một toán hạng

Bảng giá trị của toán tử NOT

Mycheck = Not(A > B) -> Mycheck = False

Mycheck = Not(B < C) -> Mycheck = True

4.4 Các hàm chuyển đồi dữ liệu

Chuyển đổi dữ liệu là một nhu cầu cần thiết trong khi lập trình,điều này làm cho các biến có kiểu dữ liệu rõ ràng,tránh được việc phát sinh lỗi sau này

Một số hàm chuyển đổi thông dụng

CBool(Expression) Chuyển đổi dữ liệu sang kiểu Logic (Boolean)

Cbyte(Expression) Chuyển đổi dữ liệu sang kiểu Byte

CInt(Expression) Chuyển đổi dữ liệu sang kiểu Integer CLng(Expression) Chuyển đổi dữ liệu sang kiểu Long

CDblxpression) Chuyển đổi dữ liệu sang kiểu Double CSng(Expression) Chuyển đổi dữ liệu sang kiểu Single

CStr(Expression) Chuyển đổi dữ liệu sang kiểu String

Val(String) Chuyển đổi dữ liệu String sang kiểu Double

Trang 30

Dim strA, strB as String

strA = “VBA for AutoCad”

strB = Left(strA, 7) ->strB = “VBA for”

Dim strA, strB as String

strA = “VBA for AutoCad”

strB = Right(strA, 7) ->strB = “AutoCad”

4.5.3 Hàm MID

 Cú pháp

Trang 31

 Công dụng

Hàm này trích Number ký tự bắt đầu từ ký tự Start của chuỗi String.Nếu không có giá trị Number thì sẽ trích một chuỗi bắt đầu từ ký tự Start đến ký tự cuối cùng

 Ví dụ

Dim strA, strB as String

strA = “VBA for AutoCad”

Trang 32

 Ví dụ

Dim strA, strB as String

strA = “VBA for AutoCad”

strB = UCase(strA) ->strB = “VBA FOR AUTOCAD”

Dim strA, strB as String

strA = “VBA for AutoCad”

strB = UCase(strA) ->strB = “vba for autocad”

Trang 33

 Giải thích

Start

Kiểu Integer/Long – Tham số tùy chọn, là vị trí bắt đầu tìm

kiếm.Giá trị mặc định bằng 1.Nếu tham số Compare được sử dụng thì tham số Start bắt buộc phải được sử dụng

String_1 Kiểu String – “Chuỗi bị tìm kiếm”

String_2 Kiểu String – “Chuỗi tìm kiếm”

Compare Tham số tùy chọn - Hằng số so sánh

 Hằng số so sánh (Chúng ta quan tâm 2 hằng số sau)

Dim strA, strB as String

Dim intC as Integer

strA = “VBA for AutoCad”

strB = “a”

intC = InStr(1 ,strA ,strB,vbTextCompare) ->intC = 3

intC = InStr(1 ,strA ,strB,vbBinaryCompare) ->intC = 14

intC = InStr(strA ,strB) ->intC = 14

Trang 34

 Giải thích

String_1 Kiểu String – “Chuỗi bị tìm kiếm”

String_2 Kiểu String – “Chuỗi tìm kiếm”

Compare Tham số tùy chọn - Hằng số so sánh (Xem bảng hằng số so sánh)

Start Tham số tùy chọn ,Kiểu Integer/Long – Là vị trí bắt đầu tìm

kiếm.Giá trị mặc định của tham số là bắt đầu từ cuối chuỗi String_1

 Hằng số so sánh (Chúng ta quan tâm 2 hằng số sau)

Trang 35

 Ví dụ

Dim strA, strB as String

Dim intC as Integer

strA = “VBA for AutoCad”

strB = “a”

intC = InStr(1 ,strA ,strB,vbTextCompare) ->intC = 3

intC = InStr(1 ,strA ,strB,vbBinaryCompare) ->intC = 14

intC = InStr(strA ,strB) ->intC = 14

4.5.9 Hàm Ltrim, RTrim

 Cú pháp

LTrim(String) RTrim(String) Trim(String)

 Công dụng

Hàm LTrim xóa các khoảng trắng ở đầu một chuỗi, hàm RTrim xóa các khoảng trắng ở cuối chuỗi, hàm Trim xóa khoảng trắng ở cả đầu và cuỗi chuỗi

 Ví dụ

Dim strA, strB as String

strA = “ VBA for AutoCad”

strB = LTrim(strA) ->strB = “VBA for AutoCad”

strA = “ VBA for AutoCad ”

strB = RTrim(strA) ->strB = “VBA for AutoCad”

strA = “ VBA for AutoCad ”

strB = Trim(strA) ->strB = “VBA for AutoCad”

Trang 36

Dim strA, strB, strC as String

strA = “VBA for AutoCad”

strB = “Example Space function”

strC = strA & Space(3) & strB > strC “VBA for AutoCad Example Space function”

4.5.11 Hàm Split

 Cú pháp

Split(String [, Delimiter] [, limit] [, Compare])

 Công dụng

Hàm này tách một chuỗi dài thành một mảng gồm nhiều chuỗi nhỏ bằng ký tự khóa

Delimiter Nếu ký tự khóa Delimiter là một chuỗi rỗng thì mảng trả về là toàn bộ chuỗi String

Chú ý : Hàm này sẽ trả về một MẢNG gồm nhiều chuỗi nhỏ nên kiểu của biến trả về sẽ

là Mảng Động kiểu String hoặc Mảng Tĩnh kiểu String nếu tham số Limit được xác định hoặc kiểu Variant

Trang 37

 Giải thích

String Kiểu String – Chuỗi sẽ được tách

Delimiter Tham số tùy chọn, kiểu String – Chuỗi chứa giá trị làm giới hạn

chia (Mặc định sử dụng khoảng trắng làm giới hạn chia)

Limit Tham số tùy chọn - Số lượng chuỗi cho phép trả về.Mặc định giá trị

này sẽ trả về tất cả các chuỗi được chia

Compare

Tham số tùy chọn – Xác đinh kiểu so sánh

 vbBinaryCompare – Phân biệt chữ Hoa và chữ Thường (Giá trị mặc định)

 vbTextCompare – Không phân biệt chữ Hoa và chữ Thường

 Ví dụ

Dim strA as String

Dim varB as Variant

strA = “VBA for AutoCad”

varB = Split(strA) -> varB(0) = “VBA”:varB(1) = “for” : varB(2) = “AutoCad” varB = Split(strA,“A”) -> varB(0) = “VB”:varB(1) = “ for ” : varB(2) = “utoCad” varB = Split(strA,“A”, ,vbTextCompare) -> varB(0) = “VB”:varB(1) = “ for ” : varB(2) = “utoC”:varB(3) = “d”

varB = Split(strA,“A”,2) -> varB(0) = “VB”:varB(1) = “ for AutoCad”

Trang 38

Start Tham số tùy chọn, kiểu Integer/Long – Vị trí bắt đầu thay thế, chuỗi

mới sẽ bắt đầu từ vị trí này.Giá trị mặc định bằng 1

Count Tham số tùy chọn, kiểu Integer/Long – Số lần thay thế.Giá trị mặc

định là tất cả các vị trí sẽ được thay thế

Compare

Tham số tùy chọn – Xác đinh kiểu so sánh

 vbBinaryCompare – Phân biệt chữ Hoa và chữ Thường (Giá trị mặc định)

 vbTextCompare – Không phân biệt chữ Hoa và chữ Thường

Trang 39

 Ví dụ

Dim strA, strB as String

strA = “VBA for AutoCad”

strB = Replace(strA, “AutoCad”, “Excel”) -> strB = “VBA for Excel”

strB = Repleca(strA,“A”, “B”, 5) -> strB = “for ButoCad”

strB = Split(strA,“A”, “B”, 5, 3 ,vbTextCompare) -> var = “for ButoCbd”

varB = Split(strA,“A”,2) -> varB(0) = “VB”:varB(1) = “ for AutoCad”

Tham số tùy chọn – Xác đinh kiểu so sánh

 vbBinaryCompare – Phân biệt chữ Hoa và chữ Thường (Giá trị mặc định)

 vbTextCompare – Không phân biệt chữ Hoa và chữ Thường

Trang 40

 Giá trị trả về của hàm StrComp

 Ví dụ

Dim strA, strB,StrC as String

strA = “VBA for AutoCad”

strB = “VBA for AutoCad”

strC = “VBA for Autocad”

Dim returnValue as Integer

returnValue = StrComp(strA, strB) > returnValue = 0

returnValue = StrComp(strA, strC) > returnValue = -1

returnValue = StrComp(strA, strC, vbTextCompare) > returnValue = 0

Ngày đăng: 31/01/2020, 20:21

TỪ KHÓA LIÊN QUAN

w